如何计算GPGPU硬件中的峰值FLOPS?

时间:2013-09-15 14:28:30

标签: opencl gpu gpgpu amd-processor

我想计算图形硬件的理论峰值性能。好吧,实际上我想了解这个计算。

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主页的状态相同。

所以我的问题是:我在哪里错过了两个因素?

2 个答案:

答案 0 :(得分:3)

我不确定AMD的硬件,但我记得NVIDIA将MAD(乘法加)运算计为两个触发器。由于MAD在一个周期内执行,理论性能乘以2。

答案 1 :(得分:1)

480个处理单元*每个周期2个操作(单个加法管道+每个元素单个乘法管道)* 800MHz = 768 GFLOPS

当代码具有太多的分支级别时,每个计算单元下降到1-4个着色器,这意味着它们中的6-24个,这意味着低至10-40个GFlops,甚至比单个cpu核心更慢。