ubuntu22.04服务器 英伟达 tesla A40安装深度学习环境

一、安装步骤

首先看看不错的博客,看完有初步的心得,参考博客如下:
Ubuntu基本环境配置,这个算是服务器环境搭建全指导;
Ubuntu22.04配置深度学习环境,这个是系统版本一致的博客。
大致步骤为
① 查看GPU型号,确认是否安装GPU。

lspci | grep -i nvidia

sudo dpkg --list | grep nvidia-*  # 查看NVIDIA驱动版本

② 输入命令 nvidia-smi ,确认装系统时是否顺便装了英伟达驱动,如果装了这步可以不用看了。如果没装,则通过下面命令安装。(具体细节可看看问题1)

sudo ubuntu-drivers autoinstall  

上面的命令会自动安装能兼容的最高驱动版本,所以不用担心兼容问题。一些博主建议自行上官网下载驱动,这样也可以,但是驱动版本没上面命令那么新,也比较费事,见仁见智吧。

③ 驱动装好,cuda、cudnn包都通过conda来安装。一些博主建议官网下载cudatoolkit包来安装cuda、cudnn,我没采纳,因为conda里面可以一起安装,区别的话见这篇博客。而且以后conda环境不要了,直接连环境一起删除就是了,省心省力。
还有一点重要的是,GPU的算力要与pytorchcuda版本兼容,具体看下面的问题7,简单概括就是尽量装新的吧。
这种方式具体有什么隐患,还没发现,以后遇见了再补充吧。

conda环境创建好之后,进入当前环境,安装pytorch等包,这个具体见问题3、问题5。pytorch包装好后,进入环境,输入以下命令,确认安装成功:

# 验证 cuda 是否安装成功
torch.cuda.is_available()  # 返回 True 则可用, 返回 False 则不可用

torch.zeros(1).cuda()  # 这步很重要,验证 cuda 是否可用

# 下面的命令可输可不输
# 返回gpu数量
torch.cuda.device_count()  # 返回值就是 GPU 数目

# 返回gpu名字,设备索引默认从0开始
torch.cuda.get_device_name(index)  # index 是索引, 默认从 0 开始

二、疑问

问题1:服务器重启之后,英伟达驱动消失了

NVIDIA-SMI has failed because it couldn‘t communicate with the NVIDIA driver.

先用这博客里的方法1,发现不管用,出现了方法1一样的问题。由于内核太敏感,所以上面博客的方法2没用。而是先卸载驱动(博客里的切换集成显卡我没照做,因为看了下服务器设置信息,显示已经是集成显卡,之前的英伟达显卡信息已经没看见了),然后再用下面命令安装,就好了。

sudo ubuntu-drivers autoinstall

注意:用这种方式安装驱动后,不用特意去禁用nouveau,官方的run文件也不用再去下载。
另外,有网友表示上面方法会吃网卡驱动,他建议使用sudo apt install nvidia-xxx方式安装,也有网友成功解决网卡驱动的问题,见博客

如果没有英伟达驱动,服务器无法使用独显生成桌面,系统会调用cpu上的集显。但是装完英伟达驱动后,系统也不会切换,要重启才能切换。

装好后,输入nvidia-smi命令,有输出就是OK的。输出结果右上角的CUDA version是当前驱动程序版本对应的最高cuda版本,实际装的版本可以比它低,但不能比它高。

问题2:添加新用户,并赋以root权限
首先博客看详细版,赋权限建议用方法2。密码要有英文大小写+数字才能通过。不要台式机的数字小键盘,用字母上面一排数字按键输入密码。

问题3:conda切换环境失败的
安装miniconda见最上面第二个博客,这里要说的是,新建好conda的环境后,要切换到新环境里,有建议用conda activate 环境名,但是发现不行,具体见参考博客,该博客里建议:

# conda安装好之后,会存在 conda命令没有加入环境路径的情况
# 此时需要将 conda 所在的 bin目录加入环境变量
# cd到conda所在的 bin目录,然后
# conda bin目录/conda init bash
# 然后再 source ~/.bashrc 就可以了,不用专门去添加环境变量

激活环境: source activate xxx
退出环境: source deactivate 
上面这个命令不行可以用 conda deactivate

conda环境新建好了后,上pytorch官网下载 pytorch、cuda、cudnn
可以看一下pip和conda的区别,今后安装python库,一定要先用conda命令下载,如果conda里面没有,再用pip,以免环境混乱。

问题4:新用户用ssh远程登录服务器设置
添加新用户后,将其加入ssh配置文件中,使其可以用ssh远程登录。

sudo vim /etc/ssh/sshd_config  # 在最后一行添加新用户名

sudo /etc/init.d/ssh restart  # 配置修改完,然后重启

之后在本地cmd里面输入: ssh 用户名@服务器IP 。看能否登录,如果不能,则需要在服务器防火墙里添加新用户电脑的IP网段。

sudo ufw status  # 查看防火墙状态及可用端口名称

sudo ufw allow from 192.168.0.0/24 to any port 22  # 允许指定的IP段访问特定端口

注意: 
192.168.0.0/24 是新用户电脑的IP,但是格式为 : 新用户IP前三组数字.0/24

22端口则是通过第一条命令,看哪个端口可用。

详细命令可参考博客

问题5:服务器anaconda共享
先介绍个博客,看完就明白的七七八八了。
再说说我与博客里不一样的地方,首先我安装目录没和博客里一致,因为公司服务器不同组有对应区域,不能乱装,但是安装原则还是遵循了。另外,我安装anaconda的用户是自己新建的,它有root权限,本质上也算是root用户。

这个做完,还需要再做一件事,就是把自动登录base环境的设置关掉。

vim ~/.condarc  # 打开当前用户的conda配置文件

# 往配置文件中写入以下内容
auto_activate_base: false

后面就好了。

问题6:没网怎么创建conda环境
直接复制现有环境
博客1
博客2
博客3.

问题7:GPU的算力与CUDA支持的算力不匹配
报错为:

CUDA error: no kernel image is available for execution on the device

先看博客吧,里面有些表格,可以参考,但不能完全照搬,毕竟这种数据只是网友们试出来的。
博客1
博客2.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值