首页/AI/大模型部署与运维速查/CUDA_VISIBLE_DEVICES:指定进程可见的 GPU
推理环境与 GPU50 条

CUDA_VISIBLE_DEVICES:指定进程可见的 GPU

通过环境变量控制进程可见的 GPU 集合与编号重排:适合单机多卡隔离、指定卡跑任务、容器内只暴露部分卡的场景;用 GPU UUID 可以避免序号变化带来的映射漂移。

常用写法

常用写法
CUDA_VISIBLE_DEVICES=2 nvidia-smi                 # 只看物理 2 号卡
CUDA_VISIBLE_DEVICES=0,3 python run.py           # 物理 0/3 映射为逻辑 0/1
CUDA_VISIBLE_DEVICES=GPU-xxxx python run.py      # 按 UUID 固定映射

获取 UUID 并核对

获取 UUID 并核对
nvidia-smi -L      # 输出形如 GPU 0: ... (UUID: GPU-xxxx)
CUDA_VISIBLE_DEVICES=1 python -c "import torch; print(torch.cuda.device_count())"
变量在进程启动时读取,运行中修改无效;子进程会继承父进程的可见集合,在目标执行环境里用 nvidia-smi -L 核对更直接。

易错点

  • 按序号指定卡:驱动重置或换卡后序号可能变化,长期运行的编排建议用 UUID 固定

数据来源与参考

  • NVIDIA CUDA 编程指南:CUDA_VISIBLE_DEVICES(docs.nvidia.com/cuda)
  • NVIDIA Container Toolkit 文档(docs.nvidia.com/datacenter/cloud-native)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌