Как рассчитать гигафлопс ядра

Я хочу измерить, какую пиковую производительность сохраняет мое ядро.

Скажем, у меня NVIDIA Tesla C1060 с пиковым значением GFLOPS 622,08 (~ = 240 ядер * 1300 МГц * 2). Теперь в моем ядре я насчитал для каждого потока 16000 флоп (4000 x (2 вычитания, 1 умножение и 1 sqrt)). Итак, когда у меня будет 1000000 потоков, я получу 16GFLOP. И поскольку ядро ​​занимает 0,1 секунды, я бы архивировал 160 ГФЛОПС, что было бы четвертью максимальной производительности. Теперь мои вопросы:

  • Правильный ли этот подход?
  • А как насчет сравнений ( if (a> b) then .... )? Должен ли я их также учитывать?
  • Могу ли я использовать профилировщик CUDA для более простых и точных результатов? Я попробовал счетчик инструкций , но не смог понять, что означает цифра.

родственный вопрос: Как рассчитать достигнутую пропускную способность ядра CUDA

14
задан Community 23 May 2017 в 12:17
поделиться