Fra*_*ter 6 benchmarking cuda gpgpu
在书中Programming Massively Parallel Processors,gflops的数量用于比较不同矩阵乘法核的效率.我如何在自己的机器上为自己的内核计算这个?
在NVIDIA论坛的某个地方,我找到了这个"算法",但我不知道它是多么有效或两次来自何处.
NumOps = 2 * pow(MatrixSize,3)
gflops = 1.0e-9 * NumOps / ExecutionTime
Run Code Online (Sandbox Code Playgroud)
ps请随意更改标签...
您可以通过运行具有大输入的算法并测量执行时间来测量GFLOP.然后将执行时间和矩阵大小放入该公式中.对于足够大的矩阵大小以保持整个机器繁忙,FLOP仅微弱地依赖于矩阵大小.
GPU矩阵乘法算法执行与朴素算法相同数量的浮点运算.
for (i = 0; i < MatrixSize; i++)
for (j = 0; j < MatrixSize; j++)
for (k = 0; k < MatrixSize; k++)
C[j][i] += A[j][k] * B[k][i];
Run Code Online (Sandbox Code Playgroud)
循环体中有2个浮点运算,以及循环体的MatrixSize * MatrixSize * MatrixSize迭代,它为您提供NumOps的公式.GFLOPs只是每秒的操作次数除以10 ^ 9('千兆').
| 归档时间: |
|
| 查看次数: |
3791 次 |
| 最近记录: |