Плавающая точка двойной точности в CUDA

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

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

14
задан Peter Mortensen 17 November 2017 в 23:30
поделиться

3 ответа

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

13
ответ дан 1 December 2019 в 07:39
поделиться

В продолжение комментариев Paul R, устройства Compute Capability 2.0 (они же Fermi) имеют значительно улучшенную поддержку двойной точности, при этом их производительность лишь вдвое ниже, чем у одинарной точности.

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

9
ответ дан 1 December 2019 в 07:39
поделиться

Совет:

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

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

Флаг: -arch=sm_13

11
ответ дан 1 December 2019 в 07:39
поделиться
Другие вопросы по тегам:

Похожие вопросы: