Двойная точность с плавающей точкой в ​​CUDA - PullRequest
14 голосов
/ 12 мая 2010

Поддерживает ли CUDA числа с плавающей запятой двойной точности?

Кроме того, каковы причины того же самого?

Ответы [ 4 ]

13 голосов
/ 12 мая 2010

Если ваш графический процессор имеет вычислительную способность 1,3 , то вы можете сделать двойную точность. Однако следует помнить, что аппаратное обеспечение 1.3 имеет только один модуль FP двойной точности на MP, который должен совместно использоваться всеми потоками на этом MP, тогда как имеется 8 FPU одинарной точности, поэтому каждый активный поток имеет свой собственный FPU одинарной точности. Другими словами, вы можете увидеть 8-кратную худшую производительность с двойной точностью, чем с одинарной точностью.

11 голосов
/ 31 августа 2010

Как совет:

Если вы хотите использовать двойную точность, вам нужно установить архитектуру GPU на sm_13 (если ваш GPU поддерживает это).

В противном случае он все равно конвертирует все двойные числа в числа с плавающей запятой и выдает только предупреждение (как видно из сообщения Фая). (Очень раздражает, если вы получаете ошибку из-за этого :-))

Флаг: -arch=sm_13

9 голосов
/ 12 мая 2010

Следуя комментариям Пола Р., устройства Compute Capability 2.0 (также известные как Fermi) значительно улучшили поддержку двойной точности, с производительностью только вдвое меньше, чем у одинарной.

Эта техническая документация Fermi содержит более подробную информацию о двойной производительности новых устройств.

2 голосов
/ 02 августа 2013

Как уже упоминалось, старые карты CUDA не поддерживают тип double. Но если вам нужна более высокая точность, чем та, которую обеспечивает ваш старый графический процессор, вы можете использовать решение float-float , которое похоже на метод double-double . Для получения дополнительной информации об этой технике читайте

Конечно, на современных графических процессорах вы также можете использовать double-double для достижения точности больше, чем double. double-double также используется для long double на PowerPC

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...