Ubuntu配置CUDA:
也不知道是谁说的Ubuntu配置CUDA比win10容易, 反正我前前后后整了2天, 裂开了
这里记录一下详细的步骤
前言:
本地环境为ubuntu18.04.5 LTS
这里使用新装的系统, 所以操作会有点粗犷, 使用暴力指令等, 效仿者请注意
本文为经典事后烟,可能存有大量疏漏, 效仿者请注意
操作过程全部使用SSH远程链接
这里给出老黄官方CUDA Toolkit 的安装教程, 有啥步骤不明确以这个为准
https://docs.nvidia.com/cuda/cuda-installation-guide-linux/index.html
确认显卡支持CUDA:
这个不用多说了吧, 只要不是上古显卡和隔壁苏妈的货, 基本都支持CUDA
上古显卡也别整CUDA开发了, 先下点血本搞硬件吧
直接照搬官方的教程:
To verify that your GPU is CUDA-capable, go to your distribution’s equivalent of System Properties, or, from the command line, enter:
$ lspci | grep -i nvidia
If you do not see any settings, update the PCI hardware database that Linux maintains by entering update-pciids (generally found in /sbin) at the command line and rerun the previous lspci command.
If your graphics card is from NVIDIA and it is listed in https://developer.nvidia.com/cuda-gpus, your GPU is CUDA-capable.
The Release Notes for the CUDA Toolkit also contain a list of supported products.
确认CUDA版本对应的内核版本:
这一步很关键
之前就有看到其他教程上来就sudo apt-get upgrade
的
殊不知nvidia的驱动极其专一, 每一版的CUDA都有对应的Linux内核
这里打算装CUDA 10.0 去官网找到对应的内核版本:
CUDA Toolkit Documentation官网:
https://docs.nvidia.com/cuda/archive/
可以看到CUDA 10.0版本不支持Ubuntu18.04.5 LTS, 所以直接换, 不用考虑的
而CUDA最新的版本CUDA11.2.1支持, 这里直接选择上11.2.1
ubuntu内核降级:
基本参考这个资料, 就能完成所有工作
https://www.cnblogs.com/minseo/p/13065321.html
安装指定版本的GCC:
第一次安装以为很简单, 直接跑了波安装包, 结果炸了, 原因就是gcc
官网教程是这样说的:
The gcc compiler is required for development using the CUDA Toolkit. It is not required for running CUDA applications. It is generally installed as part of the Linux installation, and in most cases the version of gcc installed with a supported version of Linux will work correctly.
To verify the version of gcc installed on your system, type the following on the command line:
$ gcc --version
If an error message displays, you need to install the development tools from your Linux distribution or obtain a version of gcc and its accompanying toolchain from the Web.
然而ubuntu18.04的默认gcc版本是7.x, 和上头表格中推荐的版本不一样
也不知道版本不对的gcc能不能用, 这里直接将原gcc替换为gcc8.2.0
操作有点繁琐, 耗时很久, 不想搞的小伙伴可以试试直接用默认的gcc, 我也不知道支不支持
详细操作过程可以看我的另一篇博客:
https://blog.csdn.net/qq_42683011/article/details/114271908
验证系统是否安装了正确的头文件 & 开发包
sudo apt-get install linux-headers-$(uname -r)
我这里已经安装过了:
删除原系统显卡驱动:
由于是虚拟机ubuntu + 直通的K80显卡, 所以没有显卡驱动
但是之前看了很多不懂装懂的垃圾教程, 导致我总共装了5次显卡驱动, 进而熟练的掌握了卸载显卡驱动的方法
To remove CUDA Toolkit:
$ sudo apt-get --purge remove "*cublas*" "cuda*"
To remove NVIDIA Drivers:
$ sudo apt-get --purge remove "nvidia*" # 这个指令可能导致有些东西卸不掉
$ sudo apt-get --purge remove "*nvidia*" # 然后后头就找到了这个指令, 吧之前卸不掉的都砍干净了
此时使用:
dpkg -l | grep nvidia
检测有没有残留, 如果有残留, 则使用以下删除剩余的所有关联:
sudo apt-get autoremove
注意, 这个指令慎用
由于本地环境是刚安装的新ubunt, 所以爷毫无畏惧
但是由于完全不知道这个命令会移除一些什么奇怪的东西, 很大可能会移除一些不想移除的东西, 导致环境被破坏东西开不起来等, 恢复非常麻烦
参考资料:
https://zhuanlan.zhihu.com/p/160926980
本地环境中按照以上一波操作, 在dpkg -l | grep nvidia
中以找不到任何nvidia的玩意儿
常规操作:
之后的常规操作参考这篇博客:
https://blog.csdn.net/weixin_40554881/article/details/86489977?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.control&dist_request_id=2a0b8cd7-7fbd-4c97-aba0-028ddb61a946&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.control
百度搜出来的很多教程操作都和这篇大同小异
本部分大致总结一下操作过程
禁用nouvea显卡驱动
nouvea是ubuntu默认为显卡安装的一个开源驱动
首先查看nouvea是否在运行:
lsmod | grep nouveau
如果没有任何输出, 则证明nouveau没运行
否则需要禁用nouveau显卡驱动:
-
在/etc/modprobe.d/文件夹下创建blacklist-nouveau.conf文件
-
在文件中添加内容为
blacklist nouveau options nouveau modeset=0
-
再更新一下内核
sudo update-initramfs -u
-
输入reboot命令重启系统,强力保证blacklist生效。
-
输入lsmod | grep nouveau查看是否vouveau真的被干掉了
如果,没有任何内容出现, 即证明成功除掉了nouveau驱动。
关闭图形界面:
显卡驱动这玩意最好还是关闭图形界面安装
关闭图形界面:
sudo systemctl set-default multi-user.target
sudo reboot
打开图形界面
sudo systemctl set-default graphical.target
sudo reboot
下载CUDA安装包:
直接在官网上挑一个想要的版本:
https://developer.nvidia.com/cuda-toolkit-archive
注意这里要选runfile
版本, 其他的可能会出现玄学错误
这里要挂梯子才下的快
安装CUDA:
进入到文件所在目录, 按照官方的命令行开始安装:
sudo sh cuda_11.2.1_460.32.03_linux.run
而后一路看命令行提示, 根据需求选择
这里没啥难度, 不慌, 如果出问题了也不是这里选错了
安装如果成功会显示个这:
看到三个installed
, 我放心了
添加系统路径:
PATH=/usr/local/cuda-11.2/bin:$PATH
LD_LIBRARY_PATH=/usr/local/cuda-11.2/lib64:$LD_LIBRARY_PATH
export PATH
export LD_LIBRARY_PATH
sudo su #切换到root账户
echo "/usr/local/cuda/lib64" > /etc/ld.so.conf.d/cuda.conf
测试:
然而
怎么还是不行?
我已经找了几乎所有能找到的资料了
还不行, 那👴🏼去继续用win10开发了………
时间来到2021-4-5:
之后发现win10 CentOS都打不上驱动, 一番研究之后发现是主板设置与虚拟机设置问题, 与安装驱动的步骤没有关系
在重新配置了主板BIOS与虚拟机配置后, 能正常安装驱动了