Я хочу, чтобы оценить максимальную производительность моих архивов ядра.
Скажем, у меня есть NVIDIA Tesla C1060, у которого есть пик GFLOPS 622.08 (~ = 240Cores * 1300MHz * 2). Теперь в моем ядре я подсчитал для каждого потока 16000 флоп (4000 x (2 вычитания, 1 умножение и 1 sqrt)). Поэтому, когда у меня есть 1 000 000 потоков, я бы придумал 16GFLOP. И поскольку ядро занимает 0,1 секунды, я бы архивировал 160GFLOPS, что было бы четвертью максимальной производительности. Теперь мои вопросы:
- Правильно ли этот подход?
- Что относительно сравнений (
if(a>b) then....
)? Должен ли я также учитывать их? - Могу ли я использовать профилировщик CUDA для более простых и точных результатов? Я попробовал счетчик
instructions
, но я не мог понять, что означает цифра.
вопрос с сестрой: Как рассчитать достигнутую пропускную способность ядра CUDA