2015-12-16 3 views
1

Я сравнил простую программу 3D cuFFT как на GTX 780, так и на Tesla K40 в режиме двойной точности.Почему cuFFT «медленный» на K40?

На GTX 780 я измерил около 85 Gflops, в то время как на K40 я измерил около 160 Gflops. Эти результаты сбивали меня с толку: GTX 780 ha 166 Gflops с максимальной теоретической эффективностью, в то время как K40 имеет 1,4 Tflops.

Тот факт, что эффективная производительность cuFFT на K40 настолько далека от теоретической пиковой производительности, также исходит из графиков, созданных Nvidia, по адресу this link.

Может кто-нибудь объяснить мне, почему это происходит? Существует ли ограничение для библиотеки cuFFT? Возможно, некоторые мотивы кэша ...

+4

Ограниченная полоса пропускания памяти? Я сомневаюсь, что FFT имеет в любом случае достаточно FLOP на транзакцию памяти для достижения максимальной арифметической пропускной способности. – talonmies

+7

Как указывает talonmies, распространенное заблуждение - думать, что все коды ограничены вычислительными числами. Фактически, большинство существующих кодов HPC ограничены пропускной способностью. Поэтому предельный результат для графического процессора является релевантным только как предиктор производительности для кодов, которые вычисляются. Если код связан с памятью, то коэффициент пропускной способности памяти двух графических процессоров будет более релевантным. И если код иногда вычисляется как связанный, а иногда и с памятью, то фактический предиктор может быть ратиометрической комбинацией предела пропускной способности и предельного значения для рассматриваемых графических процессоров. –

+0

@RobertCrovella: Я бы предположил, что GTX780 ограничен арифметикой с двойной точностью, а K40 ограничена пропускной способностью памяти (их пропускная способность памяти примерно такая же, без учета того, что ECC делает с K40, если он включен) – talonmies

ответ

1

Очень короткий ответ заключается в том, что двойная точность FFT на GTX 780, скорее всего, ограничена арифметической инструкцией, но одна и та же операция FFT - это пропускная способность памяти, ограниченная на Tesla K40.

Немного более длинный ответ состоит в том, что K40 имеет пропускную способность пиковой памяти около 288 Гбит/с, что составляет 36 Г/с для 8-байтового типа, такого как IEEE 754 float64. Арифметическая пропускная способность БПФ будет ограничена количеством FLOP, которое он может выполнить для этой пропускной способности памяти. Для достижения максимального пикового значения FLOP/s потребуется примерно 40 операций двойной точности для транзакции с памятью. Очевидно, что БПФ не достаточно арифметически достаточно, и в результате получается более низкая максимальная арифметическая пропускная способность.

На GTX 780, который имеет примерно такую ​​же полосу памяти, что и K40, но с пропускной способностью в два раза меньше максимальной двойной точности, кажется, что можно приблизиться к арифметическому пику на доступной полосе памяти.

Смежные вопросы