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

举报
modelarts-dev-server 发表于 2023/06/12 11:07:22 2023/06/12
【摘要】 笔者在A系列GPU裸金属服务器上,系统环境是ubuntu20.04+nvidia515+cuda11.7,  使用Pytorch2.0时出现如下错误:CUDA initialization: Unexpected error from cudaGetDeviceCount(), 经定位是nvidia-fabricmanager异常导致。

0. 问题描述

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

CUDA initialization: Unexpected error from cudaGetDeviceCount()

1. 分析原因

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

(1) 执行以下命令,查看NVIDIA和CUDA的版本,以及nvidia-fabricmanager的状态

systemctl status nvidia-fabricmanager

发现nvidia-fabricmanager的服务为failed状态,尝试重新启动nvidia-fabricmanager失败,且提示以下信息

nvidia-fabricmanager.service failed because the control process exited with error code

通过命令查看nvidia-fabricmanager的版本,发现nvidia-fabricmanager版本与当前NVIDIA驱动版本不一致

dpkg -l | grep nvidia-fabricmanager

卸载并重新安装正确版本的nvidia-fabricmanager,验证CUDA成功.

2. 解决方案

(1) 查看nvidia-fabricmanager是否安装,若已安装,则查看其服务状态是否为RUNNING,若未安装请直接跳到1.3进行安装

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}-*

启动nvidia-fabricmanager,确保其服务状态为RUNNING

systemctl enable nvidia-fabricmanager
systemctl start nvidia-fabricmanager
systemctl status nvidia-fabricmanager

(3) 重新验证cuda状态, 输出为True

import torch
print(torch.cuda.is_available())

 

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。