You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为何系统有可用GPU时nvmlDeviceGetCount返回0台设备?

NVML返回设备数为0的排查方案

以下是针对你遇到的nvmlDeviceGetCount_v2返回0,但nvidia-smi和CUDA内核正常工作问题的可能原因及解决步骤:

  • 库加载路径异常
    你的程序可能加载了不匹配的NVML库。用ldd 你的可执行文件名检查链接的libnvidia-ml.so路径,确认是否指向CUDA 12.6.68安装目录下的对应文件。如果系统存在旧驱动残留的库,可能会被优先加载,导致设备识别失败。可以通过设置LD_LIBRARY_PATH=/usr/local/cuda-12.6/lib64:$LD_LIBRARY_PATH再运行程序验证。

  • NVML初始化未正确执行
    调用nvmlDeviceGetCount_v2前必须先调用nvmlInit_v2(),且要检查返回值是否为NVML_SUCCESS。如果跳过初始化或初始化失败未处理,后续获取设备数的调用会返回0且无明确错误提示。务必确保初始化流程正确。

  • 权限不足
    即使nvidia-smi能运行,你的程序可能没有访问GPU硬件的权限。尝试以root身份运行程序,或者检查当前用户是否属于video用户组(Devuan中默认需要该组权限访问GPU设备),若不在组内,用usermod -aG video 你的用户名添加后重新登录。

  • 内核模块与用户态库版本不匹配
    用nvidia-smi -q查看当前驱动版本,对比CUDA 12.6.68捆绑的驱动版本是否完全一致。若存在版本差异,重新安装CUDA捆绑的驱动包,确保内核模块和用户态NVML库版本同步。

  • Devuan系统的udev规则问题
    检查/dev/nvidia0、/dev/nvidia1等设备文件是否存在,且权限是否允许当前用户读写。如果设备文件缺失,可尝试重新加载nvidia内核模块:rmmod nvidia && modprobe nvidia,或者手动触发udev规则更新。

内容的提问来源于stack exchange,提问作者einpoklum

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.15 16:40:00