深色模式
gpu-pick:共享服务器选卡
在课题组的共享 GPU 服务器上看清每张卡被谁占着,选出空闲的卡并设置好 CUDA_VISIBLE_DEVICES,提醒占着显存却不计算的进程。
能做什么
共享服务器上最常见的冲突:没看就用了别人正在用的卡,两边都 OOM;或者开着 Jupyter 占着显存一整天。这个技能让 Agent 在启动 GPU 任务之前先看一眼:
- 列出每张卡的显存、利用率、温度,以及占用它的进程和用户;
- 按条件(显存、利用率、没有进程、最少空闲显存)选出空闲的卡;
- 输出
CUDA_VISIBLE_DEVICES,同时设置CUDA_DEVICE_ORDER=PCI_BUS_ID,让程序里的编号和nvidia-smi一致; - 提醒“占着显存但几乎不计算”的卡,多半是忘了关的 Jupyter 或调试进程;
- 说明书里写了共享服务器的使用规范,Agent 在服务器上帮你跑任务时也会遵守。
安装
装到当前项目(.claude/skills/),macOS / Linux
curl -LO https://skills.bnuai.com/download/skills/gpu-pick.zip && mkdir -p .claude/skills && unzip -o gpu-pick.zip -d .claude/skills装到个人目录,所有项目都能用,macOS / Linux
curl -LO https://skills.bnuai.com/download/skills/gpu-pick.zip && mkdir -p ~/.claude/skills && unzip -o gpu-pick.zip -d ~/.claude/skills装到当前项目,Windows PowerShell
Invoke-WebRequest https://skills.bnuai.com/download/skills/gpu-pick.zip -OutFile gpu-pick.zip; Expand-Archive gpu-pick.zip -DestinationPath .claude\skills -Force压缩包从本站下载,不需要 Node.js 或 GitHub。带脚本的技能需要 Python 3.9 以上。更新时重新下载解压、覆盖原文件夹即可。
怎么用
text
帮我在这台服务器上找两张空闲的卡,跑 train.py。
现在哪张卡空着?示例
text
| GPU | 型号 | 显存(已用/总量 MiB) | 利用率 | 温度 | 进程(用户 PID 显存) | |
|---|---|---|---|---|---|---|
| 0 | NVIDIA A800-SXM4-80GB | 71234/81920 | 97% | 63°C | alice 12345 71000MiB | |
| 1 | NVIDIA A800-SXM4-80GB | 4/81920 | 0% | 31°C | - | ✅ 选中 |
| 2 | NVIDIA A800-SXM4-80GB | 30512/81920 | 0% | 35°C | bob 23456 30500MiB | |
| 3 | NVIDIA A800-SXM4-80GB | 2/81920 | 0% | 30°C | - | ✅ 选中 |
在运行实验的终端里执行:
export CUDA_DEVICE_ORDER=PCI_BUS_ID
export CUDA_VISIBLE_DEVICES=1,3
提示:2 号卡占着显存但几乎没有计算,可能是忘了关的 Jupyter 或调试进程,可以提醒对应的同学。(示例数据。)
直接运行脚本
bash
python3 skills/gpu-pick/scripts/gpupick.py -n 2 --min-free 40000
eval "$(python3 skills/gpu-pick/scripts/gpupick.py -n 1 --export)" && python train.py权限说明
只读:运行 nvidia-smi 查询显卡,运行 ps 查看进程属于哪个用户。不会结束任何进程。
局限
只看当前时刻。别人的任务可能正处在加载阶段、显存还没涨上来,有组内预约表时以预约为准。