CUDA_VISIBLE_DEVICES与nvidia-smi显卡序号不一致的问题

CUDA_VISIBLE_DEVICES与nvidia-smi显卡序号不一致的问题

情况描述:

物理插槽从上到下:RTX5090、RTX3090、RTX5090
nvidia-smi顺序:RTX5090、RTX3090、RTX5090
CUDA_VISIBLE_DEVICES实测顺序:RTX5090、RTX5090RTX3090

导致使用CUDA_VISIBLE_DEVICES限制程序运行的显卡时,发现实际情况与预期不符。

原因分析:CUDA 的默认排序机制

在默认情况下,CUDA 驱动程序(以及 PyTorch/TensorFlow 等框架)倾向于按照计算能力(Performance/Fastest First) 来给 GPU 排序,而不是按照物理插槽(PCI Bus ID)的顺序。

解决方法:使用环境变量,要求CUDA强制按照物理插槽顺序进行排序

bash 复制代码
CUDA_DEVICE_ORDER=PCI_BUS_ID

例如在systemd的service脚本中写:

bash 复制代码
Environment="CUDA_DEVICE_ORDER=PCI_BUS_ID"
Environment="CUDA_VISIBLE_DEVICES=1"
相关推荐
echome8887 小时前
Python 生成器与 yield 关键字实战:5 个节省内存的高级用法与性能优化技巧
开发语言·python
码界筑梦坊7 小时前
112-基于Flask的游戏行业销售数据可视化分析系统
开发语言·python·游戏·信息可视化·flask·毕业设计·echarts
handsomestWei7 小时前
RAGFlow0.25版本更新与记忆工作流简介
ai·知识库·工作流·rag·智能体·ragflow·记忆
时空系7 小时前
第12篇:文档操作——文件读写 python中文编程
开发语言·python·ai编程
謓泽7 小时前
【Trae IDE】核心功能详解与使用教程
ide·ai·trea
可视化运维管理爱好者7 小时前
rg完整中文操作指南
linux·运维·服务器·ai
是Dream呀7 小时前
从零到一:Triton实现CELU激活函数优化之路
ai·vllm·openclaw
2501_901006477 小时前
Golang map底层实现原理_Golang map哈希表原理教程【收藏】
jvm·数据库·python
keineahnung23457 小时前
為什麼這個 Tensor 算 dense?PyTorch _eval_is_non_overlapping_and_dense 深入解析
人工智能·pytorch·python·深度学习