AI之 NVIDAI:Operator、Cuda、CNI、Device、Device plugin环境变量使用

Operator、CNI、Device、Device plugin环境变量使用

Posted by 董江 on Monday, April 14, 2025

NVIDAI GPU 相关环境变量

1. nvidia-container-runtime OCI规范

环境变量 参数说明 描述
NVIDIA_VISIBLE_DEVICES 0,1,2或者GPU-fef8089b,GPU-edab347b或者all或者none 此变量控制哪些 GPU 可在容器内访问
NVIDIA_DRIVER_CAPABILITIES 容器所需的驱动程序功能的逗号分隔列表: computecompat32, graphics, utility, video, display 或者 all; 哪些特性可以被使用, 默认值:utility,compute
NVIDIA_REQUIRE_CUDA cuda>=11.0 对 CUDA 驱动程序版本的限制
NVIDIA_REQUIRE_DRIVER driver>=450 对驱动程序版本的限制
NVIDIA_REQUIRE_ARCH arch=amd64 arch=arm64 对所选 GPU 的计算架构的约束
NVIDIA_REQUIRE_BRAND GeForce、Tesla、GRID 对所选 GPU 品牌的限制
NVIDIA_DISABLE_REQUIRE true or false 关闭所有限制

2. NVIDIA Device plugin 规范

2.1 k8s-device-plugin 配置

环境变量 参数说明 描述
MIG_STRATEGY none,single, mixed 在支持 MIG 的 GPU 上公开 MIG 设备所需的策略. 默认值none
FAIL_ON_INIT_ERROR truefalse 如果初始化过程中遇到错误,则插件失败,无限期阻止. 默认值 true
NVIDIA_DRIVER_ROOT /run/nvidia/driver NVIDIA 驱动程序安装的根路径. 默认值 /
PASS_DEVICE_SPECS truefalse 允许设备插件与CPUManagerKubernetes 中的 进行互操作. 默认值 false
DEVICE_LIST_STRATEGY envvar环境变量, volume-mounts卷mount, cdi-annotations CDI容器, cdi-criCRI 字段用于选择需要注入的 CDI 设备 将设备列表传递给底层runtime所需的策略。默认值 envvar
DEVICE_ID_STRATEGY uuid 或者 index 将设备 ID 传递到底层runtime所需的策略. 默认值 uuid
CONFIG_FILE "" 将插件指向配置文件,而不是依赖命令行标志或环境变量. 设置参数优先顺序为 (1) 命令行标志、(2) 环境变量、(3) 配置文件。

2.2 Config-Manager 配置

环境变量 参数说明 描述
ONESHOT true持续获取 或 false只获取一次 获取node label资源; 默认值 false
NODE_LABEL nvidia.com/device-plugin.config 获取node 特定资源key; 默认值 nvidia.com/device-plugin.config
DEFAULT_CONFIG "" 默认配置,默认值:""

2.3 Hami-core 配置

环境变量 参数说明 描述
CUDA_DEVICE_MEMORY_LIMIT 1g 或者 512Mi 用于指定设备内存的上限
CUDA_DEVICE_SM_LIMIT 0-100的百分比 用于指定每个设备的 SM 利用率百分比
LIBCUDA_LOG_LEVEL 0错误信息;1和2info信息;3waring信息;4debug信息 来设置日志的可见性
LD_PRELOAD "" 优先加载的动态链接库

3. Operator

3.1 vGPU manager

环境变量 参数说明 描述
OPERATOR_NAMESPACE "" Operator 命名空间 默认值:“default”
ENABLE_GPU_POD_EVICTION true or false 尝试节点耗尽之前仅尝试从节点中驱逐 GPU Pod. 默认值true
ENABLE_AUTO_DRAIN true or false . 默认值 true
DRAIN_USE_FORCE true or false 驱逐未由任何复制控制器(例如部署、守护进程集、有状态集和副本集)管理的 GPU 容器。 默认值false
DRAIN_POD_SELECTOR_LABEL "" 按标签驱逐. 默认值""
DRAIN_TIMEOUT_SECONDS “0s"无超时 驱逐超时时间. 默认值0s
DRAIN_DELETE_EMPTYDIR_DATA true or false 必须启用环境变量才能删除使用类型卷的 GPU容器. 默认值false

4. cuda

环境变量 参数说明 描述
CUDA_VISIBLE_DEVICES MIG-// GPU 标识符以整数索引或 UUID 字符串形式给出。
CUDA_MANAGED_FORCE_DEVICE_ALLOC 01(默认为 0 强制驱动程序将所有托管分配放置在设备内存中
CUDA_DEVICE_ORDER FASTEST_FIRSTPCI_BUS_ID(默认为FASTEST_FIRST FASTEST_FIRST 使 CUDA 使用简单的启发式算法,按从快到慢的顺序枚举可用设备。PCI_BUS_ID 按 PCI 总线 ID 升序排列设备
CUDA_CACHE_DISABLE 0 或 1(默认为 0) 禁用缓存
CUDA_CACHE_PATH "” 指定即时编译器缓存二进制代码的文件夹;默认值~/.nv/ComputeCache
CUDA_CACHE_MAXSIZE 整数(默认值为 268435456(256 MiB),最大值为 4294967296(4 GiB)) 即时编译器使用的缓存大小(以字节为单位)
CUDA_FORCE_PTX_JIT 0 或 1(默认为 0) 设置为 1 时,强制设备驱动程序忽略应用程序中嵌入的任何二进制代码
CUDA_DISABLE_PTX_JIT 0 或 1(默认为 0) 禁用嵌入式 PTX 代码的即时编译
CUDA_DEVICE_MAX_CONNECTIONS 1 到 32(默认为 8) 设置从主机到每个计算能力 3.5 及以上的设备的计算和复制引擎并发连接(工作队列)的数量。
CUDA_DEVICE_DEFAULT_PERSISTING_L2_CACHE_PERCENTAGE_LIMIT 0-100 使用 CUDA MPS 服务时,只能在启动 CUDA MPS 控制守护进程之前使用此环境变量来控制预留大小。应在运行以下命令之前设置环境变量: nvidia-cuda-mps-control -d

其他:

「如果这篇文章对你有用,请随意打赏」

Kubeservice博客

如果这篇文章对你有用,请随意打赏

使用微信扫描二维码完成支付