当前位置 : 主页 > 网络安全 > 测试自动化 >

如何评估CUDA性能?

来源:互联网 收集:自由互联 发布时间:2021-06-22
我自己编写了CUDA内核. 与CPU代码相比,我的内核代码比CPU快10倍. 但我对我的实验有疑问. 我的程序是否完全使用所有GPU内核,适当的共享内存使用,足够的寄存器数量,足够的占用率进行优化
我自己编写了CUDA内核.
与CPU代码相比,我的内核代码比CPU快10倍.

但我对我的实验有疑问.

我的程序是否完全使用所有GPU内核,适当的共享内存使用,足够的寄存器数量,足够的占用率进行优化?

如何评估内核代码的性能?

如何从理论上计算出CUDA的最大吞吐量?

我是对的比较CPU的GFLOPS和GPU的GFLOPS和GFLOPS率之间的透明理论性能吗?

提前致谢.

Does my program fully be optimized using all GPU cores, proper shared memory use, adequate register count, enough occupancy?

要找到它,请使用其中一个CUDA分析器.见How Do You Profile & Optimize CUDA Kernels?

How can I calcuate CUDA’s maximum throughput theoretically?

这个数学有点牵扯,每个架构都有所不同,容易出错.最好查看芯片规格中的数字.维基百科上有表格,例如this one, for the GTX500 cards.例如,您可以从表中看到GTX580的理论峰值带宽为192.4GB / s,计算吞吐量为1581.1GFLOP.

Am I right that compare between CPU’s GFLOPS and GPU’s GFLOPS and GFLOPS rate is transparent theoretical performance of them?

如果我理解正确的话,你问的是GPU上的理论峰值GFLOP数量是否可以直接与CPU上的相应数字进行比较.比较这些数字时需要考虑一些事项:

>较旧的GPU不支持双精度(DP)浮点,仅支持单精度(SP).>与SP相比,支持DP的GPU会显着降低性能.我上面引用的GFLOP数字是SP.另一方面,CPU引用的数字通常用于DP,并且CPU上SP和DP的性能差异较小.> CPU报价可以是仅在使用SIMD(单指令,多数据)矢量化指令时可实现的速率,并且通常很难编写可接近理论最大值的算法(并且它们可能必须在汇编中写入).有时,CPU引用是通过不同类型的指令可用的所有计算资源的组合,并且通常几乎不可能编写可以同时利用它们的程序.> GPU引用的速率假设您有足够的并行工作来使GPU饱和,并且您的算法不受带宽限制.

网友评论