Linux服务器中非 root 用户安装(多版本) CUDA 和 cuDNN

附上原文作者连接:https://www.jianshu.com/p/c95c5b6a4707
为什么是非root用户安装cuda和cudnn?
共用服务器时,系统公共环境中安装的cuda和cudnn的版本往往与项目需求不符合。而且你一般没有root权限,没办法更改系统公共环境中的cuda和cudnn,而且更改公共配置会影响别人使用。

而TensorFlow和pytorch等框架对cuda和cudnn版本很敏感。比如,cuda9.1和cuda9.0不能通用,cudnn7.1.4和cudnn7.0.5不能通用,版本号差一点都不行。(这一点会在跑别人训练好的模型时候体现。)所以一定要确定好具体cuda、cudnn以及TensorFlow具体版本,使其匹配。

这时候可以,在自己用户目录下装cuda和cudnn,不影响系统公共环境,满足自己需求。也不用任何root权限。

安装后,更改自己用户目录下的环境变量,指向自己路径下的cuda。

具体步骤如下文。
假设已经在自己用户目录下安装好cuda和cudnn

这里很重要,我就是在这里摔倒的~~
建立软连接:
cd ~/cuda-10.0/lib64
ln -sf libcudnn.so.7.6.4 libcudnn.so.7
ln -sf libcudnn.so.7 libcudnn.so
ldconfig -v

然后配置用户环境变量
修改 ~/.bashrc 文件,将下面两行加进去:(将 x007jianjian 改成自己的用户名)

export PATH=/home/xx/cuda-9.1/bin${PATH:+:${PATH}}  
export LD_LIBRARY_PATH=/homexx/cuda-9.1/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}

保存 ~/.bashrc 文件后,source ~/.bashrc 使其生效。

基本上就完成了,可用跑了例子测一测,以下是tensorflow调用GPU例子

import tensorflow as tf

# 检查TensorFlow版本
print("TensorFlow version:", tf.__version__)

# 列出可用的GPU设备
gpus = tf.config.list_physical_devices('GPU')
if gpus:
    print("Num GPUs Available:", len(gpus))
    for gpu in gpus:
        print("GPU device:", gpu)
else:
    print("No GPU devices found.")

成功调用会显示以下信息

TensorFlow version: 2.x.x
Num GPUs Available: 4
GPU device: PhysicalDevice(name='/physical_device:GPU:0', device_type='GPU')
GPU device: PhysicalDevice(name='/physical_device:GPU:1', device_type='GPU')
GPU device: PhysicalDevice(name='/physical_device:GPU:2', device_type='GPU')
GPU device: PhysicalDevice(name='/physical_device:GPU:3', device_type='GPU')

你可能感兴趣的:(服务器,linux,tensorflow)