参考这篇文章,里面有些错误进行了修改
显卡3090,ubuntu 20.4
watch -n 1 nvidia-smi
Anaconda安装最新的python3.8版本
安装tensorflow2.4版本,使用豆瓣镜像
pip install tensorflow-gpu==2.4 -i http://pypi.douban.com/simple --trusted-host pypi.douban.com
安装CUDA 11.2
首先打开下载地址:https://developer.nvidia.com/cuda-toolkit-archive 找到最新发布的CUDA,我下载的是11.2.0:
之后依次选择linux->x86_64->Ubuntu 20.04,如果没有就安装18.04,安装类型选runfile(local)这一系列配置:
采用wget方式下载会比较慢,建议采用迅雷下载到本地再上传服务器,或者其他方式下载。下载好之后,使用
sudo sh cuda_11.2.0_460.27.04_linux.run
运行,如果不能运行,试一下chmod -R 777 cuda_11.2.0_460.27.04_linux.run提权。使用sh脚本安装的过程中会提示已安装驱动,选择continue即可,然后accept。注意在安装时,因为我已经有显卡驱动,所以需要把Driver那个选项按空格键取消,然后选Install安装。
安装完之后配置环境变量:
sudo vim ~/.bashrc
没有vim的自行安装(sudo apt install vim),或使用vi。
在~.bashrc末尾添加:
export CUDA_HOME=/usr/local/cuda
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$CUDA_HOME/lib64
export PATH=$CUDA_HOME/bin:$PATH
保存之后source ~/.bashrc激活环境变量,如果退出了你自定义的anaconda环境记得重新activate进去。
最后输入nvcc -V验证CUDA是否已安装,并返回版本号等信息。输出信息如下:
配置对应的cuDNN
首先打开下载地址:https://developer.nvidia.com/rdp/cudnn-download
这里需要登陆或注册Nvidia账号,如果是第一次下载,可能还要填一份调查问卷,然后根据提示选择版本,这里选的是cuDNN Library for Linux (x86_64)
建议采用迅雷下载到本地再上传服务器,或者其他方式下载。下载下来的是cudnn-11.1-linux-x64-v8.0.5.39.tgz文件,上传到服务器之后,可以使用:
tar -zxvf cudnn-11.1-linux-x64-v8.0.5.39.tgz
接下来把cudnn的文件复制到CUDA目录:
sudo cp cuda/lib64/* /usr/local/cuda/lib64/
sudo cp cuda/include/* /usr/local/cuda/include/
sudo chmod a+r /usr/local/cuda/include/cudnn.h
sudo chmod a+r /usr/local/cuda/lib64/libcudnn*
最后验证cudnn是否配置好并输出版本号:
cat /usr/local/cuda/include/cudnn_version.h | grep CUDNN_MAJOR -A 2
输出如下:
#define CUDNN_MAJOR 8
#define CUDNN_MINOR 0
#define CUDNN_PATCHLEVEL 5
--
#define CUDNN_VERSION (CUDNN_MAJOR * 1000 + CUDNN_MINOR * 100 + CUDNN_PATCHLEVEL)
#endif /* CUDNN_VERSION_H */
配置TensoRT
打开下载地址:https://developer.nvidia.com/tensorrt
登陆Nvidia账号,同样的可能会让填一份问卷,提交之后点击立即下载。这里选择版本为"TensorRT 7.2.2.3 for Ubuntu 18.04 and CUDA 11.1 TAR package"
同样把它下载,然后解压并配置:
tar -zxvf TensorRT-7.2.2.3.Ubuntu-18.04.x86_64-gnu.cuda-11.1.cudnn8.0.tar.gz
sudo mv TensorRT-7.2.2.3 /usr/local/TensorRT-7.2.2.3
sudo ln -s /usr/local/TensorRT-7.2.2.3 /usr/local/tensorrt
然后配置环境变量,打开:
sudo vim ~/.bashrc
在文件末尾添加:
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/usr/local/tensorrt/lib
然后更新环境变量:
source ~/.bashrc
最后一步
以上步骤安装完之后,可以采用以下代码进行测试
import tensorflow as tf
print(tf.__version__)
#输出'2.0.0-alpha0'
print(tf.test.is_gpu_available())
#会输出True,则证明安装成功
#输入python,进入python环境
import tensorflow as tf
#查看tensorflow版本
print(tf.__version__)
#输出'2.0.0-alpha0'
#测试GPU能否调用,先查看显卡使用情况
import os
os.system("nvidia-smi")
#调用显卡
@tf.function
def f():
pass
f()
#再次查询显卡
os.system("nvidia-smi")
可以对比两次使用情况
如果出现以下错误
Could not load dynamic library ‘libcusolver.so.10’; dlerror: lipen shared object file: No such file or directory; LD_LIBRARY_PATH: :/usr/local/cuda/lib64:/usr/local/tensorrt/lib
那么可以采用以下解决办法
sudo ln -s /usr/local/cuda-11.2/targets/x86_64-linux/lib/libcusolver.so.11 /usr/local/cuda/lib64/libcusolver.so.10