公用linux服务器上同时使用不同版本 python / pytorch / CUDA

一台服务器上常有多个用户,不同项目可能会使用不同版本python(包),用户可以使用anaconda/virtualenv安装个人的python环境。这样用户用个人账号就可以管理自己所需的环境,不需要root权限,也可以避免不同环境糅杂在一起。

同理,不同项目可能会依赖不同版本的CUDA,用户可以根据需要修改环境变量,指定自己需要使用的CUDA版本。管理员只需确保nVidia驱动版本高于用户所需的最高版本即可,不需要频繁修改系统默认的CUDA版本。

 

以anaconda安装python3.7,使用cuda10.1版本的pytorch为例:

0、从清华镜像下载Anaconda

$curl -O https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/Anaconda3-2019.10-Linux-x86_64.sh

下载好后进入文件夹,在命令行中输入:

$  bash Anaconda3-2019.10-Linux-x86_64.sh

按提示安装,安装过程中需要允许conda 在 ~/.bashrc中添加路径

安装好后,由于在~/.bashrc中新加了东西,需要source ~/.bashrc一下

$ source ~/.bashrc

 

1、修改conda镜像

https://mirrors.tuna.tsinghua.edu.cn/help/anaconda/

conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/

conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/

conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/

conda config --set show_channel_urls yes

 

2、创建conda python虚拟环境

conda create -n py3.7-torch1.3-cuda10.1 python=3.7

 

3、查看/激活虚拟环境

conda env list

conda activate py3.7-torch1.3-cuda10.1

 

4、安装pytorch

conda install pytorch torchvision cudatoolkit=10.1

(注意安装pytorch去掉-c pytorch,这个是指定channel (-c), 加了相当于是从官网拿,清华源没用了就----Haowen Qiu)

如果在配置的过程中发生了什么问题,可以先退出虚拟环境然后移除该虚拟环境,再重新配置

conda remove -n pytorch --all

 

4、创建环境启动时的脚本

我的cuda-10.1放在~/tools/cuda-10.1,启动虚拟环境时,可以把相关路径导入环境变量LD_LIBRARY_PATH

mkdir -p  ~/tools/anaconda3/envs/py3.7-torch1.3-cuda10.1/etc/conda/activate.d

vim ~/tools/anaconda3/envs/py3.7-torch1.3-cuda10.1/etc/conda/activate.d/activate.sh

添加内容

#!/bin/sh
ORIGINAL_LD_LIBRARY_PATH=$LD_LIBRARY_PATH
export LD_LIBRARY_PATH=/home/storage04/zhuangweiji/tools/cuda-10.1/lib64:/home/storage04/zhuangweiji/tools/cuda-10.1/extras/CUPTI/lib64:/home/storage04/zhuangweiji/tools/cuda-10.1:$LD_LIBRARY_PATH

添加执行权限

chmod +x  ~/tools/anaconda3/envs/py3.7-torch1.3-cuda10.1/etc/conda/activate.d/activate.sh

 

5、创建环境关闭时的脚本

mkdir -p  ~/tools/anaconda3/envs/py3.7-torch1.3-cuda10.1/etc/conda/deactivate.d

vim ~/tools/anaconda3/envs/py3.7-torch1.3-cuda10.1/etc/conda/deactivate.d/deactivate.sh

添加内容

#!/bin/sh
export LD_LIBRARY_PATH=$ORIGINAL_LD_LIBRARY_PATH
unset ORIGINAL_LD_LIBRARY_PATH

添加执行权限

chmod +x  ~/tools/anaconda3/envs/py3.7-torch1.3-cuda10.1/etc/conda/deactivate.d/deactivate.sh

 

6、验证

$ echo $LD_LIBRARY_PATH

/home/storage04/zhuangweiji/tools/cuda-10.1/lib64  .....


$ source activate py3.7-torch1.3-cuda10.1


(py3.7-torch1.3-cuda10.1) $ python
>>> import torch
>>> x = torch.rand(1, 3)
>>> print(x)
tensor([[0.9539, 0.2325, 0.5243]])
>>> torch.cuda.is_available()
True

 

$ conda deactivate

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章