sudo nvidia-smi
首先,确认你是有GPU显卡的:lspci | grep -i nvidia
未安装前,显示的驱动如下:(由于我没有截图,这里借别人的图一用)
打开终端,输入ubuntu-drivers devices
其中标记 recommended 的,即为推荐安装的驱动
如下所示,就是“nvidia-driver-470”
当然我们可以根据recommended安装,也可以根据自己的实际需求安装,我就是根据需求安装的
重启以后,在设置里面可以看到已经成果安装RTX3060驱动了,检查是否安装成功:nvidia-smi
打开英伟达官网 下载官方cuda
此处我下载的是cuda 11.6.0 版本,并选择相应配置,复制指令至终端下载
要根据自己的版本运行命令
sudo sh cuda_11.6.0_510.39.01_linux.run
gedit ~/.bashrc
打开文件,在文件结尾添加如下语句:
export PATH="/usr/local/cuda-11.6/bin:$PATH"
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda-11.6/lib64
export LIBRARY_PATH=$LIBRARY_PATH:/usr/local/cuda-11.6/lib
Tips:在export PATH里请一定按路径是在""中的格式,如果是其他格式的画,后面用nvcc -V查看版本时只会显示旧版本的CUDA,不会显示自己下载的版本!!!!
保存、更新环境变量:source ~/.bashrc
重启
因为cuda有两种API,分为运行API和驱动API,只要驱动API版本高于运行时API就没关系。nvidia-smi显示的是驱动API,nvcc -V显示的是运行时API。
进入官网(需要登录,选择Sign in) ,寻找合适的 cudnn 版本,下载对应版本的cudnn Local Installer for Ubuntu18.04 x86_64 (Deb),
cd download_path
sudo dpkg -i ccudnn-local-repo-ubuntu1804-8.4.0.27_1.0-1_amd64.deb#激活本地文件,这个要根据自己的下载版本决定
#(这个在执行完上面的命令后会自动给你下面的命令,复制就好,不用无脑copy下面的一行代码)
sudo cp /var/cudnn-local-repo-ubuntu2004-8.4.1.50/cudnn-local-E3EC4A60-keyring.gpg /usr/share/keyrings/ # 导入CUDA GPG Key(
sudo apt-get update
#据自己的下载版本决定
sudo apt-get install libcudnn8=8.4.1.50-1+cuda11.6 #通过tab自动补全,安装runtime library
sudo apt-get install libcudnn8-dev=8.4.1.50-1+cuda11.6 #通过tab自动补全,安装developer library
sudo apt-get install libcudnn8-samples=8.4.1.50-1+cuda11.6 #通过tab
CUDNN的安装包中有sample code,可用于测试。
先将sample code拷贝至可写入路径,如$HOME
cp -r /usr/src/cudnn_samples_v8/ $HOME
#进入到mnist文件夹中,并进行编译
cd cudnn_samples_v8/mnistCUDNN/
make clean && make
./mnistCUDNN
【CUDA与cuDNN】,cuda是螺丝刀,cudnn是扳手,这两个工具在GPU加速运算中都是需要的,安装cuda并不会附带cudnn,两个需要分别安装。
到Pytorch官网选择对应的系统和cuda版本,复制Run this Command中的cuda install命令,进入终端,输入conda create -n yolov50 python==3.8,
这样就创建了一个名叫yolov5的虚拟环境,再输入source activate yolov5(用conda莫名会打不开,这里就用source打开)
,进入虚拟环境。
看到下图的几个done时,就表明下载完成了:
python
import torch
torch.__version__
print(torch.cuda.is_available())
import torch as t
x = t.rand(5,3)
y = t.rand(5,3)
if t.cuda.is_available():
x = x.cuda()
y = y.cuda()
print(x+y)
至此,安装完成~~~