文档首页/ AI开发平台ModelArts/ 故障排除/ Lite Server/ GPU A系列裸金属服务器使用CUDA cudaGetDeviceCount()提示CUDA initializat失败
更新时间:2024-09-07 GMT+08:00
分享

GPU A系列裸金属服务器使用CUDA cudaGetDeviceCount()提示CUDA initializat失败

问题现象

在A系列GPU裸金属服务器上,系统环境是ubuntu20.04+nvidia515+cuda11.7,使用Pytorch2.0时出现如下错误:

CUDA initialization: Unexpected error from cudaGetDeviceCount()

原因分析

经过对裸金属服务器排查,发现nvidia-drvier和cuda都已安装,并且正常运行。nvidia-fabricmanager服务可以使单节点GPU卡间互联,在多卡GPU机器上,出现这种问题可能是nvidia-fabricmanger异常导致。

  1. 执行以下命令,查看NVIDIA和CUDA的版本,以及nvidia-fabricmanager的状态。
    systemctl status nvidia-fabricmanager
  2. 发现nvidia-fabricmanager的服务为failed状态,尝试重新启动nvidia-fabricmanager失败,且提示以下信息:
    nvidia-fabricmanager.service failed because the control process exited with error code
  3. 通过命令查看nvidia-fabricmanager的版本,发现nvidia-fabricmanager版本与当前NVIDIA驱动版本不一致。
    dpkg -l | grep nvidia-fabricmanager
  4. 卸载并重新安装正确版本的nvidia-fabricmanager,验证CUDA成功。

处理方法

  1. 查看nvidia-fabricmanager的版本,若nvidia-fabricmanager版本与当前NVIDIA驱动版本不一致则执行下述命令卸载nvidia-fabricmanager。
    dpkg -l | grep nvidia-fabricmanager
    # 若有nvidia-fabricmanager软件,将其卸载
    # 若无nvidia-fabricmanager软件,请跳过此命令
    sudo apt-get autoremove --purge nvidia-fabricmanager-版本
  2. 安装与NVIDIA驱动版本号相等的nvidia-fabricmanager(以515.105.01举例)。
    version=515.105.01
    main_version=$(echo $version | awk -F '.' '{print $1}')
    apt-get update
    apt-get -y install nvidia-fabricmanager-${main_version}=${version}-*
  3. 启动nvidia-fabricmanager,确保其服务状态为RUNNING。
    systemctl enable nvidia-fabricmanager
    systemctl start nvidia-fabricmanager
    systemctl status nvidia-fabricmanager
  4. 重新验证cuda状态, 输出为True。
    import torch
    print(torch.cuda.is_available())

相关文档