显卡驱动之前已经安装好了,过程分享在这里
Y9000p,3060-laptop,ubuntu安装显卡驱动nvidia-driver-470
之后新建虚拟环境里装了pytorch,百度到的方法,过程比较顺利,所以没有写流程
转载一个别人写的链接:Ubuntu20.04.2LTS系统下安装CUDA +cuDNN+PyTorch
因为之前装470驱动的时候会自动装cuda10但是我新安装了cuda11.1,所以又百度到了
ubuntu多cuda版本切换
都顺利完成了
(tips:cuda和cudnn在主环境下安装,pytorch和TensorFlow在虚拟环境里安装)
很多文章都没提到过,测试过cuda安装好之后再装cudnn
测试cuda:
找到一个这样的文件夹
在文件夹内打开终端:
make all
然后会编译半个小时左右,编译成功后后会提示Finished building CUDA samples
这时候进入/usr/local/cuda/extras/demo_suite
目录下,找到deviceQuery
可执行文件,并执行(./deviceQuery
),将会输出GPU相关信息。
新版本cudnn命令有改变,所以在此补充:
查看cuda和cudnn版本:
(1)在python环境里
import torch
print(torch.__version__)
print(torch.version.cuda)
print(torch.backends.cudnn.version())
输出如下:
1.8.2是pytorch的版本,cuda11.1(我也不知道8005是啥,我装的是8.2.0)
(2)终端
在终端中输入
nvcc -V
cat /usr/local/cuda/include/cudnn_version.h | grep CUDNN_MAJOR -A 2
之后就是烦人的TensorFlow了
百度到的方法可以明显看到时间都比较久远,基本都是20年之前的,有些命令和模块的名称会有更新
先转一个配置表:
2021最新:TensorFlow各个GPU版本CUDA和cuDNN对应版本整理
然后在虚拟环境中打开终端:
pip3 install tensorflow==x.x.x
(新版本默认装的就是gpu,所以不用加-gpu的后缀了)
之后的就是出错很多的地方了:
首先在终端内输入:
nvidia-smi
确认是显卡占用是 0% (不然后续程序会报错)
之后大部分流程都会让你进入python环境输入代码确认TensorFlow安装成功
但是代码很老了,无法运行,让我以为安装失败了呢
错误版本:
import tensorflow as tf
hello = tf.constant('Hello, TensorFlow!')
sess=tf.Session(config=config)
print(sess.run(hello))
然后会提示代码错误没有session模块!!!
正确版本!!:
import tensorflow as tf
import os
os.environ["CUDA_VISIBLE_DEVICES"]="0"
tf.compat.v1.disable_eager_execution()
hello=tf.constant('Hello,TensorFlow')
config=tf.compat.v1.ConfigProto()
config.gpu_options.per_process_gpu_memory_fraction = 0.9
sess=tf.compat.v1.Session(config=config)
print(sess.run(hello))
print(tf.test.is_gpu_available())
会输出Hello,TensorFlow, True
至此TensorFlow安装成功!!!
但是打开pycharm运行代码又发现没有输出True吧,提示找不到库文件,无法运行GPU
解决方案在这:
终端可以正常运行tensorflow,但是在Pycharm中libcublas.so.10.0: cannot open shared object file: No such
把路径适当修改成自己的就可以了