目录
可随意转载Update2024.11.10
一、背景
在多智能体强化学习平台SMAC上,需要用Linux运行环境并且需要驱动显卡来跑星际争霸2的QMIX算法。为了满足需求,需要制作Win10+Ubuntu18.04 双系统。
二、操作系统安装
- 安装Win10,预留一块空磁盘给Ubuntu
- 从网易镜像站下载Ubuntu18.04的iso
- 制作启动U盘,注意:用默认MBR方式
- 安装Ubuntu,注意:选择与windows共存方式
- 安装Ubuntu中文输入法
三、Ubuntu中GPU安装
1. 安装30系列显卡驱动
1.修改python版本到3:/usr/bin/python软链接到python3:
sudo ln -s python3.7 python
2.可选步骤:
sudo apt-get install python3-distutils
3.下载最新版pip:
$ curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py # 下载安装脚本
$ sudo python get-pip.py # 运行安装脚本
使用阿里云的pip源。
安装最新显卡驱动
# 卸载当前驱动
sudo apt purge *nvidia*
# 重启!!!
# 安装新驱动
sudo apt install nvidia-driver-xxx
注意:显卡驱动版本跟cuda版本没有严格对应关系,可以安装高版本驱动。
注意:ubuntu18.04推荐的显卡驱动版本号:470 有严重问题,如果不慎安装了这个版本,它会安装一个新的Linux内核,导致ubuntu18.04无法联网。解决方法:操作系统启动时进入GRUB高级选项,选中之前的Linux内核版本启动,然后彻底卸载有问题的Linux内核和470版本的显卡驱动,升级到更高的显卡驱动版本。
2. 安装CUDA
执行下面命令安装cuda11.2,强制下一步,不安装显卡驱动
wget https://developer.download.nvidia.com/compute/cuda/11.2/Prod/local_installers/cuda_11.2.xxx_linux.run
sudo sh cuda_11.2.xxx_linux.run
安装结果日志如下:
# 不装驱动,直接装cuda11.2
ouyang@ouyang-ubuntu:~/software$ sudo sh cuda_11.2.xxx_linux.run
[sudo] password for ouyang:
===========
= Summary =
===========
Driver: Not Selected
Toolkit: Installed in /usr/local/cuda-11.2/
Samples: Installed in /home/ouyang/, but missing recommended libraries
Please make sure that
- PATH includes /usr/local/cuda-11.2/bin
- LD_LIBRARY_PATH includes /usr/local/cuda-11.2/lib64, or, add /usr/local/cuda-11.2/lib64 to /etc/ld.so.conf and run ldconfig as root
To uninstall the CUDA Toolkit, run cuda-uninstaller in /usr/local/cuda-11.2/bin
Please see CUDA_Installation_Guide_Linux.pdf in /usr/local/cuda-11.2/doc/pdf for detailed information on setting up CUDA.
***WARNING: Incomplete installation! This installation did not install the CUDA Driver. A driver of version at least 460.00 is required for CUDA 11.2 functionality to work.
To install the driver using this installer, run the following command, replacing <CudaInstaller> with the name of this run file:
sudo <CudaInstaller>.run --silent --driver
3.安装cudnn
安装cuda11.2对应的cudnn版本8.x,可加速显卡的计算速度。
sudo cp cuda/include/cudnn.h /usr/local/cuda/include/
sudo cp cuda/lib64/libcudnn* /usr/local/cuda/lib64/
按第5步日志信息配置PATH和LD_LIBRARY_PATH
注意:如果报collections_abc错误,请pip卸载包six再重新安装。
3.1 安装多版本cuda
有时候我们会依赖(学习)别人的项目,这个时候为了避免麻烦最好安装别人指定的版本。
多版本安装建议
删除 /usr/local/cuda 的软链接,避免影响先安装的cuda版本(注意环境变量一律依赖软链接)
在官网找到cuda10.2并下载它和它的补丁文件
执行命令安装cuda10.2, 注意取消显卡驱动选项(不安装显卡驱动)
重新建立软链接/usr/local/cuda到cuda10.2上
执行命令安装cuda10.2 的补丁
安装cudnn :解压缩并复制到cuda相应的目录
动态配置
# 在/user/local/ 下面根据情况建立软链cuda,指向不同的cuda版本
# 修改/etc/ld.so.conf.d
ouyang@ouyang-ubuntu:/etc/ld.so.conf.d$ cat cuda.conf
/usr/local/cuda/targets/x86_64-linux/lib
# sudo ldconfig
这样配置的话,当前版本是软链指向的版本,切换起来相当方便。
四、Ubuntu 升级
Ubuntu18.04 版本太旧了,可以直接升级到20.04。
4.1 查看当前ubuntu版本
cat /etc/lsb-release
# DISTRIB_ID=Ubuntu
# DISTRIB_RELEASE=18.04
# DISTRIB_CODENAME=bionic
# DISTRIB_DESCRIPTION="Ubuntu 18.04.6 LTS"
备份自己的数据。
4.2 更新ubuntu18.04所有软件源和库
sudo apt upgrade
sudo apt dist-upgrade
sudo apt full-upgrade
sudo apt update
查看安装的第三方软件,只有全部更新成功后方可升级系统
sudo apt list --upgradable
如果升级不了,先卸载减少升级的麻烦。
4.3 下载系统更新管理器
sudo apt install update-manager
检查更新
# 这个命令只是检查,不会真的更新
sudo do-release-upgrade -c
4.4 执行更新
# 需要20分钟
# 依赖python和python3,所以它们要弄好,还原成原装系统的版本,比如把ubuntu18.04的默认python恢复成python3.6
sudo do-release-upgrade
执行下面命令,检查更新是否成功
cat /etc/lsb-release
五、安装PaddlePaddle
安装PaddlePaddle,并运行下面的命令检查安装:
paddle.utils.run_check()
8. parl有可能会报不能用GPU版本,其实没问题。请看issue。
六、疑难问题
显卡驱动安装不了怎么办?
桌面系统如:XServer,KDM,lightdm可能会导致最新的显卡驱动安装失败,可以通过下面两个日志定位
vim /var/log/cuda-installer.log
vim /var/log/nvidia-installer.log
如果发生上述情况,请切换到Ubuntu18.04的命令行,执行 sh cuda_11.7.0_515.43.04_linux.run 即可。
pytorch安装总是安装CPU版本,即使强制写了cuxx也不行,有多种原因的解决办法
- 如果是conda安装方式,先conda uninstall pytorch-mutex再conda安装pytorch
2. 是因为清华源配置问题。解决方法是先安装好环境,最后再安装GPU版本的PyTorch。
3. 还有一种简单的办法就是不用清华源(不一定有效)
安装xformers会更新torch版本
xformers对在小显存上训练模型尤为重要,但是安装xformers会更新当前环境的torch版本,这不能接受。解决方案是本地编译。编译过程中遇到的问题有:
- ninja包没有安装
2. 设置环境变量MAX_JOBS的值(调低)
docker怎么配置代理?
越来越多的机器学习算法依赖docker镜像快速部署,以下链接详细讲解了如何配置docker的proxy。