FLOPS назначены для sqrt в GPU для измерения производительности и глобальной эффективности - PullRequest
2 голосов
/ 09 мая 2011

В реализации GPU нам нужно оценить его производительность в терминах GLOPS. Код очень простой, но моя проблема в том, сколько FLOPS я должен дать операциям «sqrt» или «mad», 1 или больше.

Кроме того, я получаю 50 GFLOPS для моего кода, если я скажу 1 FLOP для этих операций, в то время как теоретический максимум для этого GPU составляет 500GFLOPS. Если я выражаю это в процентах, я получаю 10%. С точки зрения ускорения я получаю 100 раз. Так что я думаю, что это здорово, но 10% - это немного низкая доходность, как вы думаете?

Спасибо

1 Ответ

1 голос
/ 09 мая 2011

Правильный ответ, вероятно, "это зависит".

Для чистой сравнительной производительности кода, выполняемого на разных платформах, я обычно считаю трансцендентальные значения, sqrt, mads одной операцией. В такой ситуации ключевой показатель производительности - это время выполнения кода. Сравнение практически невозможно сделать каким-либо другим способом - как бы вы сравнили счетчик «FLOP» аппаратной инструкции для трансцендентного, для выхода на который требуется 25 циклов, с математической библиотекой, сгенерированной строфой инструкций fmad, которая также занимает 25 циклы для завершения? Подсчет инструкций или FLOPs становится бессмысленным в таком случае, поскольку оба выполняли желаемую операцию за одинаковое количество тактов, несмотря на различное кажущееся число FLOP.

С другой стороны, для профилирования и настройки производительности фрагмента кода на данном оборудовании может быть полезен показатель FLOP. В графических процессорах нормально смотреть на количество FLOP или IOP и использование полосы пропускания памяти, чтобы определить, где находится узкое место производительности данного кода. Наличие этих цифр может указать вам на полезную оптимизацию.

...