linux CUDA安装(非ROOT用户)

一、背景

跑一个18年Tensorflow的项目(中文、闽南语语音合成),报错ImportError: libcublas.so.9.0: cannot open shared object file: No such file,查询后,原因是CUDA版本不匹配导致,详见,于是安装CUDA9.0。

二、安装CUDA 9.0

CUDA(Compute Unified Device Architecture),是显卡厂商NVIDIA推出的运算平台。 CUDA™是一种由NVIDIA推出的通用并行计算架构,该架构使GPU能够解决复杂的计算问题。

下载地址:CUDA Toolkit Archive | NVIDIA Developer找到9.0下载,下载后是cuda_9.0.176_384.81_linux.run,然后sh cuda_9.0.176_384.81_linux.run命令进行安装。

注意:默认安装路径是/usr/local/cuda-9.0,当然也可以自定义,安装到自己文件夹下面去,之后在.bashrc中配置好就行。

linux CUDA安装(非ROOT用户)_第1张图片

linux CUDA安装(非ROOT用户)_第2张图片

 图片来自此博客

安装完以后CUDA-9.0文件夹下

linux CUDA安装(非ROOT用户)_第3张图片

三、安装CUDA9.0对应版本的cuDNN

 cuDNN是一个对于深度神经网络的CPU计算库。

下载地址:cuDNN Archive | NVIDIA Developer

找到对应版本下载后是cudnn-9.0-linux-x64-v7.5.0.56.tgz

用命令tar zxvf xxxx.tgz解压,默认解压的文件夹名字叫cuda,里面内容有

linux CUDA安装(非ROOT用户)_第4张图片

 下面就是将cuDNN里面的包拷贝到CUDA-9.0里面去

cp 复制的文件地址  复制到哪里去的地址

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

cp cuda/lib64/libcudnn* /usr/local/cuda-9.0/lib64

chmod a+r /usr/local/cuda-9.0/include/cudnn.h /usr/local/cuda-9.0/lib64/libcudnn*

其中/usr/local/要换成你的地址,我就是/home/xxx/CUDA-9.0。注意,~能表示/home/你的用户文件夹/  地址。  要是有root权限那就cp命令前加上sudo,其他命令也类似。root权限需要管理员开。

四、配置.bashrc文件

vi ~/.bashrc

打开后按i(insert),在最下方输入代码

export CUDA_HOME="$HOME/cuda11.2"
export PATH="$CUDA_HOME/bin:$PATH"
export LD_LIBRARY_PATH="$CUDA_HOME/lib64:$LD_LIBRARY_PATH"
export LD_LIBRARY_PATH="$CUDA_HOME/extras/CUPTI/lib64:$LD_LIBRARY_PATH"

最后一句是 tensorflow 要求的,它需要 cuda 的 CUPTI 库

然后按ESC  :wq!进行保存退出,

输入source ~/.bashrc激活环境配置文件

五、输入nvcc -V查看当前cuda版本

注意V必须大写,小写都不行

在这里插入图片描述

六、gcc安装

为什么要装gcc?gcc是编译用的,Ubuntu18自带的gcc是7,但是7并不跟CUDA9.0兼容,查询了此处gcc与CUDA的关系博客,发现我的gcc必须用6。注意,安装gcc必须得有root权限。

 命令先用 sudo apt install gcc-6 和 sudo apt install g++-6 安装 gcc,然后用以下命令把 gcc-6 设为默认

 sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-6 100
 sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-7 50

七、总结

1、CUDA机器可以装多个,但就是你配置文件.bashrc中配置的哪个就调用哪个

2、cuDNN装与CUDA版本配套的即可

3、gcc同样可以有多个版本共存,就是通过命令设置默认使用的gcc编译器的版本

4、因为代码是18年的,我装了1.8.0gpu版本的Tensorflow,然后重新跑程序,成功。

八、项目问题

1.运行中报错,TypeError: get_pinyin() got an unexpected keyword argument 'show_tone_marks'

解决办法,里面的依赖包xpinyin版本高,18年左右大家用的版本是0.5.5,详细版本看这里

2.项目里面我的python用的3.6,Tensorflow-gpu==1.8.0

3.依赖包里面有一个包是yaml,安装应当是pip install pyyaml

参考:

1.Linux下非root用户安装多版本CUDA(超详细)_今天以后。。。的博客-CSDN博客_非root用户安装cuda

2.实验室内部gitee的资料

3.ubuntu查看系统版本_三颗草丶的博客-CSDN博客_ubuntu 查看版本

4.tensorflow 各版本_问简的博客-CSDN博客_tensorflow版本

5.tensorflow版本及其对应环境_虎大猫猫的博客-CSDN博客_tensorflow版本

你可能感兴趣的:(tensorflow,深度学习,python)