答案1
负载因子显示的是可以完成多少相同的计算,而不是芯片的总处理能力中有多少用于该计算。
例如,92% 表示 GPU 平均每 100 万个时钟周期中有 92 万个周期在执行某些操作。这并不意味着每个着色器处理器的每个电路中 92% 都处于活动状态,更不用说整个主板上每个电路(VRAM 控制器、DAC、着色器和光栅单元、分支预测器和纹理查找单元等)中 92% 都处于活动状态。
如果您只利用了少数 GPU 功能,那么您可能会以这些功能的 100% 吞吐量运行,同时让一半芯片处于休眠状态。但休眠的那一半根本无法用于此类工作。
答案2
通常,这意味着您的 CUDA 程序不是最优的。我现在正在优化我的 CUDA 程序。我编写了几个迭代,每次迭代都提高了性能。令人惊讶的是,在每次迭代中,它都报告了 100% 的 GPU 负载。但每次迭代的功耗都不同。在最新的迭代中,随着功耗从 40% 增加到 70%,我的程序在计算我需要的内容所需的挂钟时间方面已经提高了 7 倍(!!!)。
GPU 大多在内存操作上停滞。我优化了缓存(即更少的全局内存命中),并得到了以下传感器变化:
- Gpu 负载:保持在 100%
- 内存控制器负载:从20%增加到25%
- 功耗:从40%增加到70%
- 执行计算的时间:减少了 7 倍
不幸的是,源代码是专有的,所以我不能给你自己尝试。但是,你可以了解一下我的程序中的瓶颈是什么:它是一个循环,从数组(i
第项)读取一个内存,进行加法和乘法,并赋值float
。
答案3
250 瓦是此显卡型号的最大功耗,而不是此特定显卡的最大功耗。除非您拥有此显卡型号有史以来最差的实例,否则您永远不会使用 250 瓦。