我想计算图形硬件的理论峰值性能。好吧,实际上我想了解这个计算。
AMD Radeon HD 6670的示例: AMD加速并行处理编程指南(http://developer.amd.com/download/AMD_Accelerated_Parallel_Processing_OpenCL_Programming_Guide.pdf)告诉我在第6-42页的中间部分获取流核心数(96),将其乘以每个流核心的每个周期的操作数(让我们)采用单精度ADD,这将是5)并乘以核心时钟(800 MHz)。结果是:
96 * 5 FLOPS * 800MHz = 384,000 MFLOPS = 384 GFLOPS
同一文件在第D-4页告诉我,这个特定设备的峰值吞吐量为768 GFLOPS,是我刚刚计算的两倍。维基百科和AMD主页的状态相同。
所以我的问题是:我在哪里错过了两个因素?
答案 0 :(得分:3)
我不确定AMD的硬件,但我记得NVIDIA将MAD(乘法加)运算计为两个触发器。由于MAD在一个周期内执行,理论性能乘以2。
答案 1 :(得分:1)
480个处理单元*每个周期2个操作(单个加法管道+每个元素单个乘法管道)* 800MHz = 768 GFLOPS
当代码具有太多的分支级别时,每个计算单元下降到1-4个着色器,这意味着它们中的6-24个,这意味着低至10-40个GFlops,甚至比单个cpu核心更慢。