公用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

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