Van*_*nns 4 core intel-graphics nvidia-graphics-card
我们知道,如果CPU有4核,那么最大利用率为400%,如果总利用率为200%,则分析为4核中2核已用完。
那么在GPU的情况下,最大利用率是100%,如果总利用率是80%,那么如何分析使用了多少核呢?
对于 nvidia 图形,可以使用 nvidia-smi 来查看 nvidia GPU 利用率。
对于英特尔显卡,可以使用 intel_gpu_time/intel-gpu-top 查看 iGPU 利用率。
但是它们都没有显示正在使用的 GPU 内核数量。有没有办法做到这一点?
我正在使用 Linux。Ubuntu 14.04 和 Centos 7.2
小智 5
在 GPU 上,100% 的利用率意味着所有内核基本上都在执行指令。当所有这些指令都是融合乘加运算时a = a + b * c,它以最高性能运行:,大多数当前的 GPU 只能使用一条指令来完成。
当您编写在 GPU 上执行计算的程序(使用 CUDA 或 OpenCL)时,您将工作分配在所谓的线程块网格(CUDA 术语)中。由 GPU 来安排所有这些线程(在 32 个线程的“扭曲”中)以保持所有 GPU 内核忙碌。我不知道你对这个主题有多熟悉,但这篇介绍可能是一个有趣的阅读。
一个例子解释了这与利用率的关系。假设他们的 GPU 处于空闲状态,然后您启动一个应用程序,该应用程序仅为单个线程块启动内核,但在该块内有足够的计算。GPU 会将线程块调度到 GPU 上的流式多处理器(SM = 128 个内核组)上。例如,对于具有 20 个 SM 的 Nvidia GTX 1080,这将导致利用率仅为 (1/20 * 100%) = 5%。
鉴于 GPU 计算的基本知识,您可以通过Nvidia Visual Profiler(用于 CUDA 应用程序)或通过 CodeXL(用于 OpenCL 应用程序)运行它,以查看应用程序用于推理 GPU 利用率的任何内核的线程配置. 但这还不是全部,该工具对于准确了解 GPU 正在执行的操作类型(以及效率如何)非常有用。
| 归档时间: |
|
| 查看次数: |
14109 次 |
| 最近记录: |