Ubuntu系统使用快速入门实践系列文章
下面是Ubuntu系统使用系列文章的总链接,本人发表这个系列的文章链接均收录于此
Ubuntu系统使用快速入门实践系列文章总链接
下面是专栏地址:
Ubuntu系统使用快速入门实践系列文章专栏
文章目录
- Ubuntu系统使用快速入门实践系列文章
- Ubuntu系统使用快速入门实践系列文章总链接
- Ubuntu系统使用快速入门实践系列文章专栏
- 前言
- Ubuntu系统使用快速入门实践(六)——Ubuntu深度学习环境配置(1)
- 所需依赖
- 1.安装Anaconda
- 1.1 下载安装包
- 1.镜像源点
- 2.更换方法
- 1.2 进入安装文件夹,执行安装脚本
- 1.3 环境变量的配置与更新
- 1.4 测试安装
- 1.5 创建虚拟环境
- 1.6 退出虚拟环境
- 1.7 设置开机进入自己的环境
- Windows下的Anaconda设置
- Anaconda下的软件安装
- Jupyter notebook
- 2.安装英伟达驱动
- 法一: 命令行安装
- 法二:GUI界面
- 检测不到显卡时
- 报错
- Failed to initialize NVML
- No devices were found
前言
Ubuntu是一个以桌面应用为主的Linux发行版操作系统,也是大多数人第一个接触到的Linux系统,尤其是从事理工科研究工作的人,这个系列的文章主要讲述如何使用Ubuntu系统,完成日常的学习、科研以及工作
Ubuntu系统使用快速入门实践(六)——Ubuntu深度学习环境配置(1)
所需依赖
- 双系统win10 + ubuntu 20.04
- Anaconda 3
- CUDA 11.3
- cuDNN v8.2.1
- Pytorch 1.10.2(或1.9.0)
1.安装Anaconda
1.1 下载安装包
官网 或者 清华源。
建议选择清华源,因为速度会快很多
Anaconda更换镜像源方法:
1.镜像源点
清华大学开源软件镜像站:
https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
中国科技大学镜像站:
http://mirrors.ustc.edu.cn/anaconda/pkgs/free/
2.更换方法
cmd命令添加:以- - -添加【清华大学开源软件镜像站】为例
打开cmd 直接依次输入下列命令:
# 清华源
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
# 中科大源
conda config --add channels http://mirrors.ustc.edu.cn/anaconda/pkgs/free/
#注意:网址中间没有空格,如果有了空格,会出现
#usage: conda-script.py [-h] [-V] command ...
#conda-script.py: error: unrecognized arguments: #//mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
1.2 进入安装文件夹,执行安装脚本
bash Anaconda3-5.3.0-Linux-x86.sh
然后一路选择yes就可以了,但到后面要注意,可能会推送vscode,根据需求选择安装,vscode下载可能比较慢。
1.3 环境变量的配置与更新
echo 'export PATH="/home/xxx/anaconda3/bin:$PATH"' >>~/.bashrc
# 注意:这里的xxx为用户名,我的用户名是jin,所以命令如下
# echo 'export PATH="/home/jin/anaconda3/bin:$PATH"' >>~/.bashrc
更新:(必须更新,否则安装后不生效! )
source ~/.bashrc # 或者 source /etc/profile
1.4 测试安装
conda -V
#或者
conda --version
1.5 创建虚拟环境
①查看当前环境
conda env list
②创建虚拟环境
conda create -n your_name python=3.9
③激活创建的虚拟环境
conda activate your_name
④安装需要的包
conda install 或 pip install,如果觉得用pip安装第三方库慢或者超时报错,可以采用中科大源或者清华源
# 中科大源
pip config set global.index-url https://pypi.mirrors.ustc.edu.cn/simple/
# 清华源
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
详见 Ubuntu系统使用快速入门实践(二)——Ubuntu常用命令 中pip换源一节
创建完成后最好重启一下,不然后续安装pytorch可能会装到别的环境中
1.6 退出虚拟环境
安装conda后取消命令行前出现的base,取消每次启动自动激活conda的基础环境。
方法一
每次在命令行通过conda deactivate退出base环境回到系统自带的环境
conda deactivate
方法二
(1)通过将auto_activate_base参数设置为false实现:
conda config --set auto_activate_base false
(2)那要进入的话通过
conda activate base
(3)如果反悔了还是希望base一直留着的话通过conda config --set auto_activate_base true
来恢复
conda config --set auto_activate_base true
方法三
通过修改.bashrc
将
export PATH="~/anaconda/bin:$PATH"
修改为
export PATH="$PATH:~/anaconda/bin"
这样每次登陆服务器的时候都会首先找系统自身的python路径,不会进入conda环境。
1.7 设置开机进入自己的环境
在linux下打开~/.bashrc
或~/.bash_profile
,将
# added by Anaconda 2.1.0 installer
export PATH="~/anaconda3/bin:$PATH"
替换为
# set python3 as default
export PATH="~/anaconda3/envs/dle/bin:$PATH"
Windows下的Anaconda设置
参考:Anaconda超详细安装教程(Windows环境下)
Anaconda下的软件安装
Jupyter notebook
使用Anaconda安装
conda install jupyter notebook
如果没有自动安装,那么就在Shell中输入以下命令安装:
使用pip安装
pip install jupyter
注意
老版本的pip在安装Jupyter Notebook过程中或面临依赖项无法同步安装的问题。因此需要先把pip升级到最新版本。
pip install --upgrade pip
运行 Jupyter Notebook
jupyter notebook
执行命令之后,在终端中将会显示一系列notebook的服务器信息,同时浏览器将会自动启动Jupyter Notebook。
启动过程中终端显示内容如下:
$ jupyter notebook
[I 08 :58:24.417 NotebookApp] Serving
notebooks from local directory:
/Users/catherine
[I 08 :58:24.417 NotebookApp] 0 active kernels
[I 08 :58:24.417 NotebookApp] The Jupyter
Notebook is running at:
http://localhost:8888/
[I 08 :58:24.417 NotebookApp] Use Control-C to
stop this server and shut down all kernels
(twice to skip confirmation).
注意
之后在Jupyter Notebook的所有操作,都请保持终端 不要关闭 ,因为一旦关闭终端,就会断开与本地服务器的链接,将无法在Jupyter Notebook中进行其他操作浏览器地址栏中默认地将会显示:http://localhost: 8888 。其中,“localhost”指的是本机“8888”则是端口号。如果同时**启动了多个Jupyter Notebook,由于默认端口“8888”被占用,因此地址栏中的数字将从“8888”起,每多启动一个JupyterNotebook数字就加 1 ,如“8889“,”“8890”…
指定端口启动
如果想自定义端口号来启动Jupyter Notebook,可以在终端中输入以下命令:
jupyter notebook --port <port_number>jupyter notebook --port 9999
2.安装英伟达驱动
官网下载驱动:https://www.nvidia.cn/Download/index.aspx?lang=cn
法一: 命令行安装
终端执行如下指令,列出可支持的所有驱动以及推荐驱动。
ubuntu-drivers devices
一般选择推荐(recommand)驱动,安装命令如下:
sudo ubuntu-drivers autoinstall #这样就可以直接按照推荐安装了
也可手动指定安装版本,如下所示
sudo apt install nvidia-driver-510
重启ubuntu:
sudo reboot
如果需要卸载驱动,使用命令
sudo apt autoremove nvidia-driver-xxx
法二:GUI界面
**操作步骤:**搜索driver,选择additional drivers,选择所需的驱动,安装,重启。
注意:不论是哪种方法,安装完重启后要用nvidia-smi命令查看图形卡状态,可以看到驱动版本以及nvidia driver API 的cuda版本!
其中smi是System management interface的缩写
查看显卡状态
nvidia-smi # 显示一次当前GPU占用情况
nvidia-smi -l #每秒刷新一次并显示
watch -n 5 nvidia-smi # 其中,5表示每隔6秒刷新一次终端的显示结果
- 第一栏的GPU:本机中的GPU编号(有多块显卡的时候,从0开始编号)图上GPU的编号是:0
- Fan:N/A是风扇转速,从0到100%之间变动,这个速度是计算机期望的风扇转速,实际情况下如果风扇堵转,可能打不到显示的转速。有的设备不会返回转速,因为它不依赖风扇冷却而是通过其他外设保持低温(比如我们实验室的服务器是常年放在空调房间里的)。
- 第二栏的Name:GPU类型,图上GPU的类型是:NVIDIA GeForce RTX 2060
- Temp:是温度,单位摄氏度。
- 第三栏的Perf:是性能状态,从P0到P12,P0表示最大性能,P12表示状态最小性能。
- 第四栏下方的Pwr:是能耗,上方的Persistence-M:是持续模式的状态,持续模式虽然耗能大,但是在新的GPU应用启动时,花费的时间更少,这里显示的是off的状态。
- 第五栏的Bus-Id是涉及GPU总线的东西
- 第六栏的Disp.A是Display Active,表示GPU的显示是否初始化。
- 第五第六栏下方的Memory Usage是显存使用率。
- 第七栏是浮动的GPU利用率。
- 第八栏上方是关于ECC的东西。
- 第八栏下方Compute M是计算模式。
- 下面一张表示每个进程占用的显存使用率。
注: 显存占用和GPU占用是两个不一样的东西,显卡是由GPU和显存等组成的,显存和GPU的关系有点类似于内存和CPU的关系。
nvcc -V(或nvcc --version) 与nvidia-smi中显示的cuda版本不同,系统以nvcc -V为准
CUDA有两个主要的API,runtime API(nvcc -V 显示的cuda)和driver API(nivdia-smi中显示的cuda),两者都有相应的版本(例如8.0、9.0等)。对driver API的必要支持(e.g. libcuda.so on linux),是由GPU驱动安装程序安装的。对runtime API(e.g. libcudart.so on linux, and also nvcc)的必要支持,是由CUDA工具包安装程序安装的
一般情况下,driver API版本与runtime API版本不相同。特别是GPU驱动程序是独立于CUDA工具包(i.e. the CUDA toolkit)下安装的。这样nvidia-smi中的cuda是由NVIDIA GPU 驱动包安装的,而不是由CUDA toolkit安装的。driver API版本的cuda,就与runtime API版本的cuda没有联系了。
因为由CUDA toolkit安装的cuda编译-驱动工具nvcc,总是会报告cuda运行时版本。nvcc不知道系统安装了什么驱动版本,甚至不知道系统是否安装了GPU驱动。
所以,这两个版本不必完全相同,因为它们反映了两种不同的cuda API。
而且在大多数情况下,nvidia-smi报告的cuda版本在数值上等于或高于nvcc -V报告的cuda版本。
检测不到显卡时
参考:
Ubuntu 20.04-NVIDIA显卡驱动-安装和卸载-解决黑屏问题
Ubuntu18.04 Nvidia显卡驱动安装
P106矿卡魔改驱动修改及安装详解(含修改INF文件安装最新驱动,双独立显卡使用等)
有时候电脑会检测不到显卡,更不要谈装驱动了
输入命令
lspci | grep NVIDIA
显示如下
02:00.0 3D controller: NVIDIA Corporation Device 1c36 (rev a1)
其中,1c36
是PCI号,根据pci号在PCI devices查询显卡型号. 从下面的查询结果可以看出,我的显卡型号是P106M
,P106是NVIDIA(英伟达)推出的一款专业挖矿显卡,是基于GTX10606GB显卡芯片打造的,属于NVIDIA的产品线。P106显卡并不是针对游戏市场设计的,而是专为数字货币挖矿市场而生产的显卡。
然后按照显卡型号下载驱动下载官网建议的.run文件,下载完成后移动到主目录。
或者直接使用命令
sudo apt install nvidia-driver-470
报错
Failed to initialize NVML
参考:
Failed to initialize NVML: Driver/library version mismatch
【nvidia-smi】Failed to initialize NVML: Driver/library version mismatch解决方法(不用重启)
Failed to initialize NVML: Driver/library version mismatch解决方案
nvidia-smi指令报错:Failed to initialize NVML: Driver解决
显卡bug解决思路 Failed to initialize NVML Driver/library version mismatch
输入
nvidia-smi
然后出现如下报错
Failed to initialize NVML: Driver/library version mismatch
NVIDIA内核驱动版本与系统内核版本不一致
出现该问题的原因是:系统驱动自动更新
查看驱动的版本:
cat /var/log/dpkg.log |grep nvidia
可以看到以下信息:
红框里指的是,系统驱动从510.85.02更新到了510.108.03。
此时在终端输入命令,查看内核的版本
cat /proc/driver/nvidia/version
我的另外一台机器显示为 525.125.06 版本
卸载现有驱动,重新安装
sudo /usr/bin/nvidia-uninstall
sudo apt-get --purge remove nvidia-*
sudo apt-get purge nvidia*
sudo apt-get purge libnvidia*
重启后,重新安装
sudo ubuntu-drivers autoinstall #这样就可以直接按照推荐安装了
# 或者
sudo apt install nvidia-driver-510
No devices were found
参考:
阿里云服务器执行nvidia-smi命令后提示【No devices were found】
安装完英伟达驱动后,使用命令nvidia-smi
时,报错
No devices were found
首先查看下显卡是否还在,如下:
lspci | grep -i nvidia
结果如下:
或者
lspci | grep -i vga
结果如下
说明硬件是还在的。
装了别的版本的驱动就能找到了,卸了换几个版本装试试
记得重新安装后要重启