我有一个提供峰值GFLOPS规格的设备,我想测量我的程序离它有多远。由于我使用的所有数据都是双精度的,我是否应该将操作次数乘以2以获得GLOPS值并进行比较?
No。1双精度浮点运算仍然是一个浮点运算。
大多数gpu处理双精度数据的速度比单精度数据慢,所以应该有两个规格的峰值GFLOPS。一个峰值单精度GFLOPS规格,一个峰值双精度GFLOPS规格。有时会进一步打破,以便(例如)将峰值除法性能与峰值加法性能分开列出。
"……,我是否应该将操作数乘以2以获得GLOPS值并进行比较?"
不,这些卡片中没有一张(只有一张):http://www.geeks3d.com/20140305/amd-radeon-and-nvidia-geforce-fp32-fp64-gflops-table-computing/.
请注意,在大多数情况下,比例从1/24到1/3变化,还请注意"工作站显卡"的比例为1/2 -它是专门为提高DP性能而设计的。
您需要阅读卡中硬件的规格,并确定从SP切换到DP的性能影响。将有少量额外的开销来加载额外的精度到寄存器(硬件将执行操作的内存),并在每次操作后检索额外的精度。