cuda cudnn tensorflow-gpu安装

Ububtu18.04下载cuda9.0

cuda cudnn tensorflow-gpu安装

下载好后得到:

cuda cudnn tensorflow-gpu安装

CUDA 9.0仅支持GCC 6.0及以下版本,而Ubuntu 18.04预装GCC版本为7.3,需要安装gcc-6与g++-6

查看当前版本:

$gcc --version  $g++ --version

可以不卸载当前gcc 和g++直接下载gcc-6 g++-6,

$sudo apt-get install gcc-6 g++-6

然后更改软连接修改gcc-6为默认版本:

$sudo mv gcc gcc.bak

$ sudo ln -s gcc-6 gcc

$ sudo mv g++ g++.bak

$ sudo ln -s g++-6 g++

也可以直接卸载当前版本

$sudo apt-get --purge remove gcc g++

到/usr/bin下,可查看gcc g++的详情,找不到位置可以使用$wheris gcc

下载好cuda runfile文件后,运行

$sudo sh cuda_9.0.176_384.81_linux.run

若当前目录有多个.run文件很难tab出名字,可以将其转为可执行文件再运行

$chmod 755 cuda_9.0.176_384.81_linux.run

$sudo ./cuda_9.0.176_384.81_linux.run

安装中出现多个选项,显卡驱动不选,其他选yes敲回车或者自己设置路径。

已经有驱动,安装时没有选择驱动,安装驱动需要关闭图形界面到root下进行设置,有时间补

查看安装完后的提示:

cuda cudnn tensorflow-gpu安装

提示需要设置环境变量软链接等

新下载安装cuda 目录/usr/local/下cuda软链接文件为当前安装的cuda版本

查看cuda链接指向

$ls -l

$ cd /etc/ld.so.conf.d/

将当前目录下的cuda-10.0.conf文件复制到/root下备份

$ sudo cp cuda-10-0.conf  /root

更改当前文件名为cuda-9-0.conf

$ sudo mv cuda-10-0.conf  cuda-9-0.conf

打开配置文件

$ gedit cuda-9-0.conf

将/usr/local/cuda/lib64写入配置文本

如果有多个CUDA版本切换,按如下方式设置。

移除/usr/local/下的cuda软链接文件,创建新的链接

$rm -rf cuda

$sudo ln -s /usr/local/cuda-10.0 /usr/local/cuda

然后再设置 /etc/ld.so.conf.d/下文件,此时cuda是可以使用并安装好的,如果使用nvcc命令需要将当前的cuda路径写入环境变量,设置如下:

export PATH="/usr/local/cuda/bin:$PATH"

export LD_LIBRARY_PATH="/usr/local/cuda/lib64:$LD_LIBRARY_PATH"

此时即可使用$nvcc -V 查看当前驱动和cuda版本

Cuda安装完后reboot下。

安装cudnn7.4.2

选择的7.4.2for.CUDA9.0

cuda cudnn tensorflow-gpu安装

得到文件:

cuda cudnn tensorflow-gpu安装

解压,cd到解压目录

将/cudnn-9.0-linux-x64-v7.4.2.24/cuda/include 下cudnn.h 文件拷贝到cuda-9.0的include下

$sudo cp cudnn.h /usr/local/cuda-9.0/include

将/cudnn-9.0-linux-x64-v7.4.2.24/cuda/lib64 下libcudnn.so libcudnn_static.a 拷贝到cuda-9.0的lib64下

$sudo cp libcudnn.so libcudnn_static.a  /usr/local/cuda-9.0/lib64

安装tensorflow-gpu 1.8.0

本来有1.13版本,现在换成1.8.0

$sudo -H python3 -m pip install tensorflow-gpu==1.8.0

成功下载显示如下:

cuda cudnn tensorflow-gpu安装

查看pip下安装的包

$pip3 list

找到tensorflow相关的包,若想卸载,可用以下命令批量卸载

$sudo pip3 uninstall tensorflow tensorboard tensorflow-estimator tensorflow-gpu

有些卸载时需要带版本号

$sudo pip3 uninstall tensorboard==1.8.0

下载最新的tensorflow-gpu

$sudo -H python3 -m pip install --upgrade tensorflow-gpu

=====================================

CUDA是NVIDIA推出的用于自家GPU的并行计算框架,也就是说CUDA只能在NVIDIA的GPU上运行,而且只有当要解决的计算问题是可以大量并行计算的时候才能发挥CUDA的作用

Cuda和cudnn版本查看方法

cat /usr/local/cuda/version.txt

cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2

Cuda及显卡驱动版本查看fagnf(使用前提cuda路径加入环境变量)

$nvcc -V

驱动版本及显卡使用状态查看

$nvidia-smi

实时查看并刷新状态

$watch nvidia-smi

cuda cudnn tensorflow-gpu安装

===================

nvidia-smi 显示信息解释:

第一栏的Fan:N/A是风扇转速,从0到100%之间变动,这个速度是计算机期望的风扇转速,实际情况下如果风扇堵转,可能打不到显示的转速。有的设备不会返回转速,因为它不依赖风扇冷却而是通过其他外设保持低温(比如我们实验室的服务器是常年放在空调房间里的)。
第二栏的Temp:是温度,单位摄氏度。
第三栏的Perf:是性能状态,从P0到P12,P0表示最大性能,P12表示状态最小性能。
第四栏下方的Pwr:是能耗,上方的Persistence-M:是持续模式的状态,持续模式虽然耗能大,但是在新的GPU应用启动时,花费的时间更少,这里显示的是off的状态。
第五栏的Bus-Id是涉及GPU总线的东西,domain:bus:device.function
第六栏的Disp.A是Display Active,表示GPU的显示是否初始化。
第五第六栏下方的Memory Usage是显存使用率。
第七栏是浮动的GPU利用率。
第八栏上方是关于ECC的东西。
第八栏下方Compute M是计算模式。
下面一张表示每个进程占用的显存使用率。

显存占用和GPU占用是两个不一样的东西,显卡是由GPU和显存等组成的,显存和GPU的关系有点类似于内存和CPU的关系。跑caffe代码的时候显存占得少,GPU占得多,跑TensorFlow代码的时候,显存占得多,GPU占得少。

上一篇:windows10 1903 64位系统


下一篇:mysql 开发基础系列5 运算符