筆記 - 使用 conda 和 pip 建立 GPU 加速的 Pytorch 開發環境
筆記 - 使用 conda 和 pip 建立 GPU 加速的 Pytorch 開發環境
事前準備
確認有裝 Nvidia 的 GPU,且已經安裝好驅動程式。Linux 上必須安裝來自 Nvidia 的專有驅動, nouveau
目前還不支援 CUDA API。
接著要裝 miniconda 來管理虛擬環境,前往官網下載安裝程式並執行。安裝後記得在終端機跑
1
conda init <shell name>
才會把 conda 的幾個資料夾加進 $PATH
。最後重新開機或登入來確保環境變數有重載。
建立虛擬環境,安裝 Pytorch
首先建立名為 ml-dev
的 python 環境
1
conda create -n ml-dev python
這裡可以將 ml-dev
換成任何你喜歡的名字,也可以將 python
改成 python=3.9
之類的來指定 python 版本。
接著啟動 ml-dev
環境
1
conda activate ml-dev
現在你的 shell 的最左邊應該會出現 (ml-dev)
的字樣,表示你在這個環境中。
再來安裝 cudatoolkit
1
conda install cudatoolkit=<ver>
這裡要把 <ver>
換成目前 pytorch 支援的 CUDA 版本,請參考官網。撰文時支援的有 11.3 ,所以就是
1
conda install cudatoolkit=11.3
最後我們用 pip 來安裝 pytorch 系列套件,正確的指令一樣要看官網。撰文時 CUDA 11.3 用的指令是
1
pip install torch torchvision torchaudio --extra-index-url https://download.pytorch.org/whl/cu113
(Optional)安裝其他常用的套件
Jupyter notebook 和一些可選的相依套件
1
pip install jupyter jupyterlab ipywidgets jupyter-server-proxy
常用的工具
1
pip install pandas scikit-learn matplotlib tqdm
確認安裝成功
從終端機開啟互動模式的 python 跑
1
2
3
4
5
6
7
8
9
>>> import torch
>>> torch.rand(5, 3)
tensor([[0.7419, 0.3134, 0.5156],
[0.5850, 0.1292, 0.2272],
[0.7379, 0.3957, 0.3188],
[0.2656, 0.8373, 0.0506],
[0.9171, 0.2297, 0.4550]])
>>> torch.cuda.is_available()
True
所以上面到底在做什麼?
簡單解釋一下上面到底做了甚麼事
- conda 是一個套件及環境管理工具,他可以管理 python 的各種套件,也可以管理在開發 python 程式時經常使用的一些系統端的套件,如 cudatoolkit, cudnn, qt
- pip 也是一個套件管理工具,但是他只能管理 python 的套件
- Nvidia GPU 驅動會提供某個版本的 CUDA Driver API,然後我們安裝的 cudatoolkit 會提供某個版本的 CUDA Runtime。跑起來的話需要 CUDA Driver API version >= CUDA Runtime version >= GPU hardware supported version
使用 pip 而非 conda 來管理 python 套件以下幾個優缺點
- pip 有的套件比較多,版本通常比較新
- 因為 pip 不會管你環境裡非 python 的套件版本,所以你必須自己注意,或是使用 conda 這類環境管理工具
另外盡量不要混用 pip 和 conda 來管理同一個環境內的 python 套件,很可能會弄得一團糟。理想情況是只用 conda 來管理所有套件,或是用 conda 裝好非 python 的 requirement 之後,只用 pip。
This post is licensed under CC BY 4.0 by the author.