Ash*_*ppa 10 double performance cuda gpu
我的CUDA程序只使用float,int,short和char在它的计算类型.输入或输出数组都没有类型的成员double.并且double在计算过程中没有内核在其中创建任何类型.
该程序是使用NSight Eclipse在发布模式下使用CUDA SDK 5.5编译的.典型的编译行如下所示:
nvcc -O3 -gencode arch=compute_35,code=sm_35 -M -o "src/foo.d" "../src/foo.cu"
Run Code Online (Sandbox Code Playgroud)
我在Linux上的GTX Titan上运行这个程序.令我惊讶的是,当我在Titan上启用全速FP64模式时,我注意到该程序的运行速度提高了10%.这可以通过在NVIDIA X Server Settings程序中启用CUDA Double Precision选项来完成.
虽然我很高兴获得这个免费速度奖金,但我想了解为什么CUDA浮动程序在FP64模式下可以更快的原因?
Titan 卡默认情况下对 FP64 实现进行“限制”,这主要是由于电源效率和时钟速度的原因。
NVIDIA 特意选择默认不启用此功能,而是让您通过将 FP64 设置为全速 (1/3 FP32) 或减速 (1/24 FP32) 来控制行为。
参考文献:http://www.anandtech.com/show/6760/nvidias-geforce-gtx-titan-part-1/4
| 归档时间: |
|
| 查看次数: |
1108 次 |
| 最近记录: |