一、准备工作----检查自己的电脑是否具备安装CUDA的条件
0.安装显卡驱动
在命令行中输入nvidia-smi
命令,查看支持的cuda版本
如果有驱动显示以下信息:
如果无法查看,则说明尚未安装nvidia驱动,点击附加驱动,选择对应版本的驱动即可自动下载。在软件和更新
软件中,选择附加驱动选择对应版本进行安装。
参考:ubuntu—CUDA版本与NVIDIA显卡驱动版本对应关系查询
1.验证自己的电脑是否有一个可以支持CUDA的GPU
在ubuntu的终端中输入命令: lspci | grep -i nvidia
,会显示出你的NVIDIA GPU版本信息,不过不是很详细。
我的显示为:
(base) hpc@dell:/usr/local/cuda-10.1/extras/CUPTI/lib64$ lspci | grep -i nvidia
3b:00.0 3D controller: NVIDIA Corporation GP108GLM [Quadro P520] (rev a1)
2.验证自己的Linux版本是否支持 CUDA(Ubuntu 20.04没问题)
输入命令:uname -m && cat /etc/*release
结果显示:
(base) hpc@dell:/usr/local/cuda-10.1/extras/CUPTI/lib64$ uname -m && cat /etc/*release
x86_64
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=20.04
DISTRIB_CODENAME=focal
DISTRIB_DESCRIPTION="Ubuntu 20.04.1 LTS"
NAME="Ubuntu"
VERSION="20.04.1 LTS (Focal Fossa)"
ID=ubuntu
ID_LIKE=debian
PRETTY_NAME="Ubuntu 20.04.1 LTS"
VERSION_ID="20.04"
HOME_URL="https://www.ubuntu.com/"
SUPPORT_URL="https://help.ubuntu.com/"
BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"
VERSION_CODENAME=focal
UBUNTU_CODENAME=focal
3.验证系统是否安装了gcc
在终端输入:gcc --version
若未安装请使用下列命令进行安装:sudo apt-get install build-essential
安装cuda10.1能否成功的关键在此:由于Ubuntu20.04系统自带的gcc版本为gcc 9.3.0
,而cuda10.1不支持gcc-9,命令如下:sudo apt-get install gcc-7 g++-7
安装完gcc-7,系统中就存在两个版本的gcc,因此要设置默认的gcc,命令如下:
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-7 9
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-9 1
此命令可以通过update-alternatives设置gcc各版本的优先级,优先级最高的为系统默认版本,可以用下述命令显示其优先级:sudo update-alternatives --display gcc
4.验证系统是否安装了kernel header和 package development
1).查看正在运行的系统内核版本
在终端中输入:uname -r
结果显示:
(base) hpc@dell:/usr/local/cuda-10.1/extras/CUPTI/lib64$ uname -r
5.4.0-58-generic
2).在终端中输入: sudo apt-get install linux-headers-$(uname -r)
可以安装对应kernel版本的kernel header和package development.
结果显示:
(base) hpc@dell:/usr/local/cuda-10.1/extras/CUPTI/lib64$ sudo apt-get install linux-headers-$(uname -r)
[sudo] hpc 的密码:
正在读取软件包列表... 完成
正在分析软件包的依赖关系树
正在读取状态信息... 完成
linux-headers-5.4.0-58-generic 已经是最新版 (5.4.0-58.64)。
下列软件包是自动安装的并且现在不需要了:
cuda-11-1 cuda-command-line-tools-11-1 cuda-compiler-11-1 cuda-cudart-11-1 cuda-cudart-dev-11-1 cuda-cuobjdump-11-1 cuda-cupti-11-1 cuda-cupti-dev-11-1 cuda-demo-suite-11-1 cuda-documentation-11-1
cuda-driver-dev-11-1 cuda-gdb-11-1 cuda-libraries-11-1 cuda-libraries-dev-11-1 cuda-memcheck-11-1 cuda-nsight-11-1 cuda-nsight-compute-11-1 cuda-nsight-systems-11-1 cuda-nvcc-11-1 cuda-nvdisasm-11-1
cuda-nvml-dev-11-1 cuda-nvprof-11-1 cuda-nvprune-11-1 cuda-nvrtc-11-1 cuda-nvrtc-dev-11-1 cuda-nvtx-11-1 cuda-nvvp-11-1 cuda-runtime-11-1 cuda-samples-11-1 cuda-sanitizer-11-1 cuda-toolkit-11-1
cuda-tools-11-1 cuda-visual-tools-11-1 libcublas-11-1 libcublas-dev-11-1 libcufft-11-1 libcufft-dev-11-1 libcurand-11-1 libcurand-dev-11-1 libcusolver-11-1 libcusolver-dev-11-1 libcusparse-11-1
libcusparse-dev-11-1 libfprint-2-tod1 libnpp-11-1 libnpp-dev-11-1 libnvidia-common-450 libnvjpeg-11-1 libnvjpeg-dev-11-1 nsight-compute-2020.2.0 nsight-systems-2020.3.4
使用'sudo apt autoremove'来卸载它(它们)。
升级了 0 个软件包,新安装了 0 个软件包,要卸载 0 个软件包,有 21 个软件包未被升级。
表示系统里已经有了,不用重复安装。
二、安装CUDA 10.1
正常情况下,我们进入CUDA官网后,根据提示,选择你所对应的Ubuntu版本所对应的CUDA即可,我起初安装了CUDA11.1,但是在安装后续tensorflow和Keras版本出现了不兼容现象,所以在此处会安装CUDA10.1。
CUDA Tookkit 10.1 下载地址
Installation Instructions:
sudo dpkg -i cuda-repo-ubuntu1804-10-1-local-10.1.105-418.39_1.0-1_amd64.deb
sudo apt-key add /var/cuda-repo-
sudo apt-get update
sudo apt-get install cuda
注:此处的第二条命令中的会在运行完第一条命令中的末尾出现。除此之外,安装过程中,可能会出现需要设置一个八位的密码。出现Rebbot your computer and Verify that the NVIDIA graphics driver can be loaded. 则证明安装成功。需要进行重启。
添加环境变量:vi ~/.bashrc
在文件后面加上:export PATH="/usr/local/cuda-11.1/bin:$PATH"
,最后source ~/.bashrc
在命令行中输入:nvcc -V
(base) hpc@dell:/usr/local/cuda-10.1/extras/CUPTI/lib64$ nvcc -V
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2019 NVIDIA Corporation
Built on Wed_Apr_24_19:10:27_PDT_2019
Cuda compilation tools, release 10.1, V10.1.168
出现这些信息则证明安装成功了。
在命令行中输入nvidia-smi
会报错:NVIDIA-SMI has failed because it couldn’t communicate with the NVIDIA driver.
采用这个方法解决了:
重启电脑,期间一直不停的按F2,进入界面,找到secure.boot ,将后面的enable改成disable,之后按F10保存。
三、安装cuDNN 10.1
这里下载cuDNN时需要进行简单的注册才可以下在你所需要的文件。在这里我们选择 cuDNN v7.6.5 (November 5th, 2019), for CUDA 10.1
中的cuDNN Library for Linux(x86_64)
。
将cudnn-11.1-linux-x64-v8.0.5.39.tgz解压缩后文件中的lib64文件的路径添加到 ~/.bashrc
中。
command:vi ~/.bashrc
在.bashrc文件的结尾添加:
export LD_LIBRARY_PATH="/home/hpc/test/cudnn-10.1-linux-x64-v7.6.5.32/cuda/lib64:$LD_LIBRARY_PATH"
在命令行中输入:source ~/.bashrc
四、安装Anaconda
我安装了Anaconda中自带了Python3.8,根据后面需要安装的Keras2.3.1+TensorFlow2.2.0,经过查找(https://docs.floydhub.com/guides/environments/
)知道匹配的应该是Python3.7。
Anaconda最新版本下载链接
Anaconda以前版本的下载链接
在这里我安装了Anaconda(Linux x86 Python3.8的版本),推荐大家安装Anaconda(Linux x86 Python3.7的版本)。
command:
chmod +x ./Anaconda3-2020.11-Linux-x86_64.sh
./Anaconda3-2020.11-Linux-x86_64.sh
按回车,然后在出现Do you accept the license terms?[yes|no]时,输入yes
即可。
选择安装的位置,在命令行中输入:/home/hpc/conda
Do you wish the installer to initialize Anaconda3 by running conda init?[yes|no],输入yes
即可。
需要重新打开一个窗口(ctrl+alt+t)调用conda 命令。输入: conda
即可。
验证命令:应当确保所有的信息均是指向conda中的软件:
hpc@dell:~$ which conda
/home/hpc/conda/bin/conda
hpc@dell:~$ which python
/home/hpc/conda/bin/python
hpc@dell:~$ which ipython
/home/hpc/conda/bin/ipython
hpc@dell:~$ which pip
/home/hpc/conda/bin/pip
五、安装tensorflow2.2.0
在命令行中输入:pip install tensorflow-gpu==2.2.0
至此相当于tensorflow环境搭建完成了,我们可以使用下面的命令来进行验证。
六、安装Kears2.3.1
Keras是一个高层神经网络API,Keras由纯Python编写而成并基于Tensorflow、Theano以及CNTK后端。Keras 为支持快速实验而生,能够把你的idea迅速转换为结果,如果你有如下需求,请选择Keras:
简易和快速的原型设计(keras具有高度模块化,极简,和可扩充特性)
支持CNN和RNN,或二者的结合
无缝CPU和GPU切换
(1)Keras的设计原则
a) 用户友好:Keras是为人类设计而不是为其他设计的API。用户的使用体验始终是我们考虑的首要和中心内容。Keras遵循减少认知困难的最佳实践:Keras提供一致而简洁的API,能够极大减少一般应用下用户的工作量,同时,Keras提供清晰和具有实践意义的bug反馈。
b)模块性:模型可理解为一个层的序列或者数据的运算图,完全可配置的模块可以用最少的代价自由组合在一起。具体而言,网络层,损失函数,优化器,初始化策略,激活函数,正则化方法都是独立的模块,你可以使用它们来构建自己的模型。
c)易扩展性:添加新模块超级容易,只需要仿照现有的模块编写新的类或者函数即可,创建新模块的便利性使得Keras更适合于先进的研究工作。
d)与Python协作:Keras没有单独的模型配置文件类型(作为对比,caffe有),模型由Python代码描述,使其更紧凑和更以Debug,并提供了扩展的便利性。
(2)具体的安装命令
在命令行中输入:pip install keras==2.3.1
七、安装Pycharm最新版
Pycharm下载链接
点击download
,并选择community版本
安装
command:
解压缩pycharm-community-2020.3.1.tar.gz到当前目录,进入bin目录后,运行 ./pycharm.sh
,会出现Pycharm的图形化界面。
验证命令:
设置Python Interpreter的路径,应当保证是Anaconda的python3.8的安装地址。
八、安装中所遇到的问题
1.安装Pycharm桌面快捷方式
为了方便使用,我们生成了一个桌面快捷方式:vi pycharm.desktop
https://blog.csdn.net/lpl_lpl_lpl/article/details/80869322?utm_medium=distribute.pc_relevant_t0.none-task-blog-BlogCommendFromBaidu-1.not_use_machine_learn_pai&depth_1-utm_source=distribute.pc_relevant_t0.none-task-blog-BlogCommendFromBaidu-1.not_use_machine_learn_pai
具体的代码如下:
Desktop Entry]
Version=1.0
Name=pycharm-2018.3.4
Comment=Python
Icon=/home/hpc/test/pycharm-community-2020.3.1/bin/pycharm.png
Exec=sh /home/hpc/test/pycharm-community-2020.3.1/bin/pycharm.sh
Terminal=false
StartupNotify=true
Type=Application
StartupNotify=true
Categories=Application;
Development;
2.安装多版本的CUDA
多版本CUDA安装教程
由于我最初安装了CUDA11.1,后来在安装tensorflow和Keras时,发现需要cuda10.1中的库,所以开始安装了多版本的CUDA版本,与CUDA11.1版本安装方式有所不同的是,最后不能写sudo apt-get install cuda
,因为在默认情况下,会默认安装最新版本的CUDA,所以应当指明具体的安装版本:sudo apt-get install cuda=10.1.168-1
。
其中,查看目前系统所存在的CUDA版本:apt-cache madison cuda
3.手动安装所需要的驱动
sudo apt install nvidia-driver-440
4.解决环境变量无法实时更新到Pycharm中
命令行可以运行时,但Pycharm中仍然无法进行GPU的运算时,提示Could not load dynamic library 'libcudnn.so.7。则需要在Pycharm中手动添加环境变量(run->Edit configuration->Environment variables
),将cuDNN和CUDA10.1中的lib64目录加载到环境变量中。
LD_LIBRARY_PATH=/home/hpc/test/cudnn-10.1-linux-x64-v7.6.5.32/cuda/lib64;PYTHONUNBUFFERED=1