Какая новая версия или альтернатива Cuda Occupancy Calculator? - PullRequest
0 голосов
/ 02 июля 2019

Я работаю с Tesla P100, который имеет вычислительные возможности 6.0. Я хотел бы найти инструмент, который автоматически дает мне лучшие размеры сетки и блока по сравнению с моим кодом ядра.

Недавно я обнаружил Калькулятор занятости CUDA (таблица .xls). Но когда я скачал это, я понял, что это немного устарело, так как Возможность была до 2.1.

  • Я пытался найти более новую версию этой таблицы, которая позволяет рассчитывать более высокие значения C.C., но ничего не показывалось.

  • Итак, я попытался найти альтернативу и обнаружил, что начиная с CUDA 6.5 и далее были введены Occupancy APIs . Это более новая альтернатива электронной таблице?

  • Кроме того, я обнаружил, что инструмент с GitHub. Это хороший инструмент? Могу ли я считать это альтернативой? Или лучше использовать вышеупомянутые API Occupancy?

Я тоже спрашивал себя: могут ли профилировщики CUDA ( nvprof или Nsight ) сделать некоторые оценки занятости и дать какой-то оптимальный размер блока / сетки?

Я немного не разбираюсь в этих инструментах, поэтому прошу прощения, если я задаю тривиальные вопросы.

1 Ответ

4 голосов
/ 02 июля 2019

Обновленная версия электронной таблицы калькулятора занятости CUDA поставляется с инструментарием CUDA, поэтому при установке инструментария CUDA электронная таблица Excel также устанавливается на вашем компьютере. Возможно, проще всего использовать утилиту поиска файлов для вашей ОС, чтобы найти ее.

API-интерфейс CUDA позволяет выполнять те же вычисления во время выполнения.

Профилировщики NVIDIA предлагают некоторые возможности для проверки достигнутой загруженности. Например, nvvp может отображать достигнутую занятость, и есть метрика для достигнутой занятости , которую можно собрать с помощью nvprof. Вы можете просто поискать в профилировщике документов по слову "размещение". Эти инструменты не позволяют оценить оптимальные размеры блоков и сеток, но они могут дать представление о том, может ли занятость ограничивать производительность для вашего приложения. Эти инструменты также могут сообщать о фактических размерах блоков и сетки для каждого запуска ядра.

...