cod*_*key 4 gpu machine-learning deep-learning pytorch
我最近开始在 PyTorch 脚本中使用wandb模块,以确保 GPU 高效运行。然而,我不确定这些图表到底表明了什么。
我一直在关注此链接中的教程,https://lambdalabs.com/blog/weights-and-bias-gpu-cpu-utilization/,并对这个图感到困惑:
我不确定 GPU % 和 GPU 内存访问 % 图表。博客中的描述如下:
GPU %:这张图可能是最重要的一张。它跟踪过去采样期间一个或多个内核在 GPU 上执行的时间百分比。基本上,您希望该值接近 100%,这意味着 GPU 一直忙于数据处理。上图有两条曲线。这是因为有两个 GPU,并且只有其中一个(蓝色)用于实验。蓝色 GPU 的繁忙程度约为 90%,这意味着它还不错,但仍有一些改进的空间。这种利用率次优的原因是我们在本实验中使用的小批量大小 (4)。GPU 经常从内存中获取少量数据,并且不能使内存总线或 CUDA 核心饱和。稍后我们将看到仅通过增加批量大小就可以增加这个数字。
GPU 内存访问百分比:这是一个有趣的问题。它测量过去采样周期内 GPU 内存被读取或写入的时间百分比。我们应该保持这个百分比较低,因为您希望 GPU 将大部分时间花在计算上,而不是从内存中获取数据。在上图中,繁忙的 GPU 有大约 85% 的正常运行时间访问内存。这是非常高的并且导致了一些性能问题。降低百分比的一种方法是增加批处理大小,以便数据获取变得更加高效。
我有以下问题:
如果硬件按顺序执行这两个过程,则 GPU 利用率和 GPU 内存访问加起来应为 100%。但现代硬件不执行这样的操作。GPU 将在访问内存的同时忙于计算数字。
W&B 允许您监控这两个指标并根据它们做出决策。最近我使用 实现了一个数据管道tf.data.Dataset。GPU 利用率接近 0%,而内存访问也接近 0%。我正在阅读三个不同的图像文件并将它们堆叠起来。这里CPU是瓶颈。为了解决这个问题,我通过堆叠图像创建了一个数据集。ETA 从每个周期 1 小时缩短为 3 分钟。
从图中可以看出,当 GPU 利用率接近 100% 时,GPU 的内存访问量有所增加。CPU 利用率下降,这是瓶颈。
| 归档时间: | 
 | 
| 查看次数: | 3362 次 | 
| 最近记录: |