Mat*_* So 11 python gpu google-colaboratory
我有一个在 Google Colab 上运行的程序,我需要在它运行时监控 GPU 的使用情况。我知道您通常会nvidia-smi在命令行中使用来显示 GPU 使用情况,但由于 Colab 只允许一次运行一个单元格,因此这不是一种选择。目前,我使用GPUtil和监控GPU和显存的使用情况与GPUtil.getGPUs()[0].load和GPUtil.getGPUs()[0].memoryUsed,但我不能找到这些代码件在同一时间,我的代码的其余部分执行的方式,因此使用数字比实际应该要低得多是。有没有办法在其他代码运行时打印 GPU 使用情况?
Mat*_* So 15
用于wandb记录系统指标:
!pip install wandb
import wandb
wandb.init()
Run Code Online (Sandbox Code Playgroud)
它输出一个 URL,您可以在其中查看不同系统指标的各种图表。
cli*_*est 13
如果您有 Colab Pro,可以打开位于左侧的终端,用黑色背景表示为“>_”。
即使某些单元正在运行,您也可以从那里运行命令
编写命令以实时查看 GPU 使用情况:
watch nvidia-smi
Vin*_*rma 10
更清楚一点的解释。
Run Code Online (Sandbox Code Playgroud)!pip install wandb import wandb wandb.init()
您可以在后台运行脚本来跟踪 GPU 使用情况。
步骤 1:创建一个文件来监控 jupyter 单元中的 GPU 使用情况。
%%writefile gpu_usage.sh
#! /bin/bash
#comment: run for 10 seconds, change it as per your use
end=$((SECONDS+10))
while [ $SECONDS -lt $end ]; do
nvidia-smi --format=csv --query-gpu=power.draw,utilization.gpu,memory.used,memory.free,fan.speed,temperature.gpu >> gpu.log
#comment: or use below command and comment above using #
#nvidia-smi dmon -i 0 -s mu -d 1 -o TD >> gpu.log
done
Run Code Online (Sandbox Code Playgroud)
步骤2:在另一个单元格的后台执行上述脚本。
%%bash --bg
bash gpu_usage.sh
Run Code Online (Sandbox Code Playgroud)
第 3 步:运行推理。
请注意,该脚本将记录前 10 秒的 GPU 使用情况,根据您的模型运行时间更改它。
GPU 利用率结果将保存在gpu.log文件中。