Я сравнил простую программу 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? Возможно, некоторые мотивы кэша ...
Ограниченная полоса пропускания памяти? Я сомневаюсь, что FFT имеет в любом случае достаточно FLOP на транзакцию памяти для достижения максимальной арифметической пропускной способности. – talonmies
Как указывает talonmies, распространенное заблуждение - думать, что все коды ограничены вычислительными числами. Фактически, большинство существующих кодов HPC ограничены пропускной способностью. Поэтому предельный результат для графического процессора является релевантным только как предиктор производительности для кодов, которые вычисляются. Если код связан с памятью, то коэффициент пропускной способности памяти двух графических процессоров будет более релевантным. И если код иногда вычисляется как связанный, а иногда и с памятью, то фактический предиктор может быть ратиометрической комбинацией предела пропускной способности и предельного значения для рассматриваемых графических процессоров. –
@RobertCrovella: Я бы предположил, что GTX780 ограничен арифметикой с двойной точностью, а K40 ограничена пропускной способностью памяти (их пропускная способность памяти примерно такая же, без учета того, что ECC делает с K40, если он включен) – talonmies