【ubantu系统环境配置NVIIDIA+cuda】给入门小白提供参考

Ubuntu系统安装NVIDIA+CUDA全攻略
本文详细介绍了在Ubuntu系统中卸载、安装双系统、安装NVIDIA驱动、CUDA和cuDNN的步骤,包括解决各种常见报错问题,如CUDA库文件找不到、动态库加载错误等。此外,还提供了网络连接问题和Grub启动黑屏的解决方案。

双系统win10+ubantu系统

卸载ubantu

首先应知道自己的电脑分区格式(自行百度GBT和MBR分区)。
如果电脑是GPT分区,则下载EasyUEFI按照教程进行删除(直接打开软件就可以看到引导项,直接删除即可);
如果是MBR分区,则下载EasyBCD按照教程进行设置和删除。

安装双系统

安装ubantu系统时,双系统安装ubantu需要在BIOS中设置secure boot为Disable。且注意:boot引导必须选择UEFI模式!!!
(因为选择lagency模式重装,开机一直出现grub,修复也修复不好折磨了几天)
如果用U盘安装:安装时选择“try ubuntu without installation”模式安装;分区时第一个分区给/boot分区,且/boot分区为primary主分区、其他swap、/和/home分区为logical逻辑分区;
install时候Device for boot loader installation一定要选择boot所在分区。
win10的“快速启动”会影响Grub开机引导过程,可能出现无法载入Ubuntu的状况,关闭掉“快速启动”。

NVIDIA驱动安装

1.首先卸載掉此前安裝的驱动 :

 sudo sh ./NVIDIA-Linux-x86_64-410.93.run  --uninstall

或者

sudo apt-get remove nvidia-* 
sudo apt-get remove --purge nvidia*

2.再禁用自带驱动

输入命令:

sudo gedit /etc/modprobe.d/blacklist.conf

在文件后添加
blacklist nouveau
options nouveau modeset=0

保存文件后执行配置生效

sudo update-initramfs -u

重启生效
检查:

lsmod | grep nouveau 

若无提示则被可以ji xu安装

3.安装驱动(台式机不需要进入tty也可以安装)
进入tty的方法:先执行

sudo service lightdm stop

黑屏后出现字符后同时按住ctrl+Alt+F1,

回到桌面的方法:
sudo service lightdm start

在安装驱动之前需要安装gcc和相应的依赖:

sudo apt-get install build-essential 
sudo apt-get install cmake

首先官网上下载对应版本驱动,然后赋予权限:

sudo chmod a+x  ./NVIDIA-Linux-x86_64-410.93.run

安装:

sudo ./418.run --no-opengl-files  --no-x-check  --no-nouveau-check  

安装中提示Install NVIDIA Accelerated Graphics Driver for Linux-x86_64 361.62?是否安装NVIDIA选择no。
提示你nvidia-xconfig时,就视自己的电脑情况而定,如果电脑是双显卡(双独显、集显和独显)就选择不安装,如果只有一个显卡就选择安装
若提示是否安装opengl文件时,一定选择no不要安装!!!
如果提示 :

在这里插入图片描述这里选择:NO

注意:如果出现以下提示,说明由于系统的 BIOS 启用了 Secure Boot,这可能会导致内核加载失败。此时,您需要进入 BIOS 设置中禁用 Secure Boot.
在这里插入图片描述

安装完后记得重启!(若不成功可能需要开机引导bios中设置)
如果重启后黑屏,可以运行:sudo ./Nvidia-xxxx.run --uninstall

安装cuda和cudnn

(有种说法是anaconda自带cuda和cudnn,或者安装tensorflow的GPU版本后【原理也是通过canda安装而不是pip安装】,不需要安装cuda,也尝试过没有成功)
当前能成功的是用pip安装的tensorflow和cuda用官网下载的版本,需要注意的是,cuda和cudnn的组合和tensorflow版本相对应。
cuda卸载:

sudo /usr/local/cuda-10.1/bin/cuda-uninstaller 

(如果是10.0版本及以下)

sudo/usr/local/cuda-9.0/bin/uninstall_cuda_10.0.pl
sudo rm -rf /usr/local/cuda-10.1 

1 安装cuda

下载并执行.run文件,过程中记住不要安装nvidia驱动,
运行命令:

sudo  ./cuda_10.1.168_418.67_linux.run

注意:在提示是否install symbolic link的时候,即是否创建软连接时候,可以直接选择no,此时/usr/local/下不会生成cuda文件夹,
等待所有版本cuda安装完成后,再根据版本需要以创建软连接的方式选择cuda版本即可。(参考非root安装cuda)

2 安装cudnn

先解压cudnn-9.0-linux-x64-v7.1-2.tgz,然后切换到刚刚解压出来的文件夹路径
cd cuda (cudnn解压后的文件夹名)
#复制cudnn.h到cuda安装文件夹中的include文件夹下

sudo cp include/cudnn.h /usr/local/cuda/include/  

#复制lib64中的libcudnn*动态链接库至cuda安装文件夹中的lib64文件夹

sudo cp lib64/*  /usr/local/cuda/lib64/

#设置权限(获取所有和阅读权限)

sudo chmod a+r /usr/local/cuda/include/cudnn.h
sudo chmod a+r /usr/local/cuda/lib64/libcudnn*

更新软连接(dudnn版本安装冲突情况下)
注意:cudnn11.X版本安装有些不同,解压后只有lib和include两个文件夹,此时命令为:

sudo cp ./include/cudnn*.h /usr/local/cuda-xx/include 
sudo cp -p ./lib/libcudnn* /usr/local/cuda-xx/lib64
sudo chmod a+r /usr/local/cuda-xx/include/cudnn*.h /usr/local/cuda-xx/lib64/libcudnn*

3 设置环境变量:

sudo vim ~/.bashrc

在安装的时候,可以进行多版本的cuda安装,这样,就可以通过软连接的方式,把具体的版本指向/usr/local/cuda/,而系统中的各路程序调用cuda时,会默认首先在/usr/local/cuda/下搜索加速库文件,
需要设置/usr/local/cuda/为默认的cuda环境

export LD_LIBRARY_PATH=/usr/local/cuda/lib64/:$LD_LIBRARY_PATH
export PATH=/usr/local/cuda/bin:$PATH

LD_LIBRARY_PATH环境变量用于在程序加载运行期间查找动态链接库时指定除了系统默认路径之外的其他路径,这样就可以让需要调用cuda时,找到神经网络加速库.so文件
使生效:

source ~/.bashrc

再通过创建软连接的方式,把具体的cuda版本指向/usr/local/cuda/
比如:
把cuda-11.1指向cuda,从而代码[torch、tensorflow]在找cuda时,可直接通过软链接找到uda-11.1

sudo ln -s /usr/local/cuda-11.1 /usr/local/cuda 

如果已创建过软连接,需要先删除原版本的cuda软连接

sudo rm -rf /usr/local/cuda

报错1:在检查:nvidia-smi nvidia-settings,提示Error:Unable to load the ‘nvidia-drm’ kernel module .

出现这个问题最有可能的原因是你安装的Ubuntu是UEFI模式启动的,但是在BIOS中却打开了Security BOOT选项。 正确做法是禁用该选项,即注意ubantu的安装时候的模式和BIOS中的选项。

报错1:ImportError: libcublas.so.9.0: cannot open shared object file: No such file or directory

找不到cudalib.so文件的话,执行:sudo ldconfig /usr/local/cuda-9.0/lib64(注意自己cuda版本)可能又出现报错,提示:/usr/local/cuda-10.0/lib64/libcudnn.so.7 is not a symbolic link,此时组要删除文件夹中的文件sudo rm -rf libcudnn.so libcudnn.so.7,然后通过建立软链接,使得.so文件指向.so.7最终指向cudnn加速库.so.7.4.2。
还有种可能是tensorflow安装的版本不一致导致的,比如cuda10.1要求tensorflow的版本为1.12.0至少,不然它自己会寻找libcuda.so.9.0的动态链接,而安装tensorflow1.12.0版本不会报错。
(sudo ldconfig /usr/local/cuda-9.0/lib64命令的意思是以超级权限执行动态链接库管理命令,让lib64下的动态链接库为系统所共享,这样就可以解决找不到动态链接库libcuda.so的错误)

报错2:Could not load dynamic library ‘libcudart.so.10.0’; dlerror: libcudart.so.10.0: cannot open

一般出现在conda的base环境未安装tensorflow-gpu,直接创建虚拟环境,并在虚拟环境中使用tensorflow-gpu,导致cudatoolkit未安装。因为conda安装了Cuda的子集,专门用于pytorch和tensorflow使用,比如:torch默认先找/usr/local/cuda(为什么安装的时候,提示生成一个软连接,这样就可以让程序通过访问usr/local/cuda来访问目标文件夹比如usr/local/cuda-10.0,而且cuda-10.0文件夹之前已经export为全局变量了,这样可以让),找不到才找conda的安装的cuda子集)一旦找不到这个文件目录,就会报错。解决办法:conda install cudatoolkit
补充:ubantu的软硬链接和.so文件以及环境变量
简单理解:
(1)硬链接可认为是一个文件拥有两个文件名;而软链接则是系统新建一个链接文件,此文件指向其所要指的文件,创建软连接如:ln -s 原始文件或文件夹 目标文件或文件夹,比如神经网络共享动态库,一般是.so连接到.so.7,然后.so.7再连接到cudnn的.so.7.4.2。
(2).so文件就是共享动态库,一般是 名字.版本.so的格式,名字代表了动态库是哪个工程生成的。
(3)环境变量是在操作系统中一个具有特定名字的对象,它包含了一个或者多个应用程序所将使用到的信息,即bash可以顺着PATH变量找到命令或者程序的位置而快速打开文件目录。
命令 “PATH=$PATH:路径”可以把这个路径加入环境变量,配置环境变量时有两个文件可 选:“/etc/profile”和用户主目录下的“.bash_profile”,“/etc/profile”对系统里所有用户都有效,用户主目录下 的“.bash_profile”只对这个用户有效。
在 /etc/profile文件中设置,export的意思就是将局部变量设置为环境变量

报错3:/sbin/ldconfig.real: /usr/local/cuda-11.8/targets/x86_64-linux/lib/libcudnn.so.8 is not a symbolic link…

猜测可能是安装cuda时候已经建立了软链接,即生成了/usr/local/cuda文件夹,再安装cudnn时候没注意到,把cudnn的文件安装到/usr/local/cuda-xx下面,而没有更新软链接。
解决:跟多duda版本切换一样,先接删除/usr/local/cuda,再建立软连接。

sudo rm -rf /usr/local/cuda
sudo ln -s /usr/local/cuda-11.8/  /usr/local/cuda

关于nvidia-smi中的CUDA 版本与nvcc不一致。
其实是因为CUDA 有两种API,分别是 运行时 API 和 驱动API,即所谓的 Runtime API 与 Driver API。命令Nvidia-smi显示的是 CUDA Driver API的型号( CUDA Driver API是依赖于 NVIDIA 驱动 安装的)。而nvcc的结果是对应 CUDA Runtime API。
网络连接
ubantu系统突然不能连接网络,或是系统新装好不能连接网络,标志为:网线能用;ifconfig没有eth0项;网络连接logo一直在尝试连接;
可以在网络设置下,选择Edit connections,然后对Wired connecions选择Edit,在IP4 Settings下,配置address地址、Netmask子网掩码、Gateway默认网关,然后在DNS servers中填写一个区别ip4地址中的地址,比如ip4地址为192.168.100.168,该选项中填写192.168.100.68,点击save。

报错4 Ctrl+Alt+F1~F6后,显示黑屏。Ctrl+Alt+F7可以正常返回图形模式

原因是启动时的分辨率与显卡不兼容导致。

解决方法

解决方法是设置Grub为true text-mode启动。

1.终端输入以下命令

sudosed -i-e's/#GRUB_TERMINAL/GRUB_TERMINAL/g'/etc/default/grub

2.更新grub

sudo update-grub

3.重启

sudo reboot
### 回答1: Ubantu是一个开源的操作系统,而CUDA是一种用于并行计算的平台。它允许程序员使用NVIDIA的GPU进行高性能计算。Annaconda是一个Python的发行版本,它集成了许多常用的科学计算库,并提供了一个便于管理和使用这些库的环境。PyCharm是一个强大的Python集成开发环境,提供了丰富的开发工具和功能,可以帮助程序员编写、调试和管理Python代码。 在使用这些工具的过程中,可以按照以下步骤操作: 1. 首先,安装Ubantu操作系统。可以从Ubantu官方网站下载最新版本的Ubantu安装程序,按照提示进行安装。 2. 安装CUDA平台。可以从NVIDIA官方网站下载对应版本的CUDA,然后按照说明进行安装和配置。 3. 安装Annaconda。可以从Annaconda官方网站下载最新版本的Annaconda安装程序,然后按照提示进行安装。 4. 配置Annaconda环境。安装完成后,可以通过命令行或图形界面工具设置Anaconda的环境变量和路径。 5. 安装PyCharm。可以从PyCharm官方网站下载最新版本的PyCharm安装程序,然后按照提示进行安装。 6. 配置PyCharm环境。安装完成后,可以打开PyCharm并设置Anaconda环境作为项目的解释器,以便使用Anaconda提供的科学计算库。 通过以上步骤,我们可以在Ubantu操作系统上搭建起CUDA、Annaconda和PyCharm的开发环境,可以方便地进行CUDA并行计算以及使用Annaconda提供的科学计算库进行开发。同时,PyCharm作为一个强大的开发工具,可以帮助我们更高效地编写、调试和管理Python代码。综上所述,使用UbantuCUDA、Annaconda和PyCharm可以构建一个强大的科学计算和开发环境。 ### 回答2: Ubantu是一个操作系统,是Linux的一个发行版。它是基于Debian的GNU/Linux操作系统,具有开源的特点,并且免费使用。Ubantu的优点是安全性高,更新频繁,社区支持活跃,拥有丰富的软件库。 CUDA是一种由NVIDIA提供的并行计算平台和API模型。它可以帮助程序员利用NVIDIA的GPU进行高性能计算和科学计算。CUDA可以加速各种应用程序,特别是需要大规模并行计算的任务。 Annaconda是一种用于Python和R编程的包管理器,同时也是一个可视化的集成开发环境(IDE)。它提供了一个方便的方式来管理Python和R的包和依赖,同时也提供了许多强大的工具和库,使得开发人员可以更轻松地进行数据科学和机器学习的开发工作。 PyCharm是一种由JetBrains开发的Python集成开发环境(IDE)。它提供了许多强大的功能,如代码自动补全、调试器、版本控制等,使得开发人员可以更高效地开发Python应用程序。PyCharm还具有良好的插件生态系统,可以进一步扩展其功能。 综上所述,使用Ubantu作为操作系统,配合CUDA进行高性能计算,同时使用Annaconda和PyCharm进行Python开发工作,可以提供快速、安全、高效的开发环境,特别适用于数据科学和机器学习的工作。 ### 回答3: "Ubuntu"、"CUDA"、"Anaconda"和"PyCharm"都是与计算机编程和数据科学相关的软件工具。 Ubuntu是一种流行的开源操作系统,它是基于Linux的,可以用于桌面、服务器和移动设备。Ubuntu提供了丰富的软件库和强大的终端命令行工具,使用户能够轻松地安装和管理软件。对于编程和数据科学家来说,Ubuntu是一个理想的操作系统选择,因为它支持广泛的编程语言和开发框架。 CUDA是一种由NVIDIA开发的并行计算平台和应用程序接口,它支持使用GPU(图形处理器)进行高性能计算。CUDA可以用于加速各种计算任务,包括机器学习、深度学习和科学计算。它提供了一套简单的编程接口,使开发者能够方便地使用GPU进行并行计算。 Anaconda是一个用于Python和R编程语言的开源发行版本,在数据科学领域具有广泛的应用。Anaconda提供了一个管理和部署数据科学环境的平台,包括各种流行的Python库和工具,如NumPy、Pandas和Scikit-learn。它还包含了一个强大的包管理器,允许用户轻松地安装、更新和管理各种软件包。 PyCharm是一种由JetBrains开发的集成开发环境(IDE),专为Python开发而设计。它提供了一套完整的开发工具,包括代码编辑器、调试器、版本控制集成和自动化测试等功能。PyCharm具有强大的代码补全和错误检查功能,可以帮助开发者提高编码效率和质量。 综上所述,Ubuntu、CUDA、Anaconda和PyCharm都是常用于计算机编程和数据科学的重要工具。它们提供了强大的功能和便利的开发环境,让编程和数据科学工作变得更加高效和方便。无论是初学者还是专业人士,都可以通过使用这些工具来提升编程和数据分析的能力。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

是的_小太阳

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值