gpt4 book ai didi

performance - 如何评估CUDA性能?

转载 作者:行者123 更新时间:2023-12-04 17:53:34 25 4
gpt4 key购买 nike

我自己编写了 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.1GFLOPs。

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 不支持 double (DP) 浮点,仅支持单精度 (SP)。
  • 与 SP 相比,支持 DP 的 GPU 会显着降低性能。我上面引用的 GFLOP 数是针对 SP 的。另一方面,CPU 引用的数字通常是 DP,SP 和 DP 在 CPU 上的性能差异较小。
  • CPU 报价可用于仅在使用 SIMD(单指令、多数据)矢量化指令时可实现的速率,并且通常很难编写接近理论最大值的算法(并且它们可能必须以汇编语言编写)。有时,CPU 报价是针对通过不同类型指令可用的所有计算资源的组合,并且通常几乎不可能编写可以同时利用它们的程序。
  • 为 GPU 引用的费率假设您有足够的并行工作来使 GPU 饱和,并且您的算法不受带宽限制。
  • 关于performance - 如何评估CUDA性能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11912703/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com