WSL(Windows Subsystem for Linux)からAnaconda環境のpythonを実行してGPU(CUDA+cuDNN)が動くようなので試してみる
やってみた
Anacondaでpython仮想環境を作成し、WSLからAnaconda環境のpythonを実行してGPUを使用
できた!
やりかた(使い方)
実行環境
- Windows10 (1903)
- NVIDIA GPU Computing Toolkit CUDA v10.1
- Anaconda3
- Linux Ubuntu 18.04 LTS (WSL)
Anacondaでpython仮想環境を作成
Anaconda Promptを起動
Anaconda Prompt (base) >
Anacondaでpython仮想環境を作成してactivateしておく
envnameは仮想環境名を任意に指定する
(base) > conda create -n envname python=3.7 (base) > activate envname (envname) >
WSLからAnaconda環境のpythonを実行
Anaconda PromptからWSLを起動
(envname) > wsl (WSL)$
Anaconda環境のpythonが動くようにエイリアスを設定
(WSL)$ alias python="python.exe" (WSL)$ alias pip="pip.exe"
pythonを起動してAnaconda環境のpythonが動くことを確認
(WSL)$ python Python 3.7.5 ~ :: Anaconda, Inc. Type "help", "copyright", "credits" or "license" for more information. >>> exit() (WSL)$
他にも起動したいWindowsバイナリ(exe)があればaliasに設定し、適宜.bashrcに設定するとよい模様
python実行時にGPUが使用されるか確認
GPUが動くかNNabla(Neural Network Libraries)で試してみる
NNablaはSONY提供のAI(機械学習・ニューラルネットワーク)のフレームワーク
GitHub - sony/nnabla: Neural Network Libraries
Neural Network Libraries. Contribute to sony/nnabla development by creating an account on GitHub.
(WSL)$ mkdir -p your/path/nnabla (WSL)$ cd your/path/nnabla (WSL)$ pip install nnabla-ext-cuda101 (WSL)$ git clone https://github.com/sony/nnabla-examples.git (WSL)$ cd nnabla-examples/mnist-collection/
MNISTのサンプルをGPUあり(CUDA+cuDNN)で実行すると約30秒ほどで完了した
(WSL)$ python classification.py -c cudnn 2019-12-23 02:33:32,107 [nnabla][INFO]: Initializing CPU extension... 2019-12-23 02:33:32,405 [nnabla][INFO]: Running in cudnn 2019-12-23 02:33:32,421 [nnabla][INFO]: Initializing CUDA extension... 2019-12-23 02:33:32,423 [nnabla][INFO]: Initializing cuDNN extension... ~~ 2019-12-23 02:33:33,800 [nnabla][INFO]: Parameter save (.h5): tmp.monitor\params_000000.h5 2019-12-23 02:33:33,827 [nnabla][INFO]: iter=9 {Training loss}=2.210261583328247 2019-12-23 02:33:33,827 [nnabla][INFO]: iter=9 {Training error}=0.79453125 ~~ 2019-12-23 02:33:59,986 [nnabla][INFO]: iter=9999 {Training loss}=0.006541474722325802 2019-12-23 02:33:59,987 [nnabla][INFO]: iter=9999 {Training error}=0.003125 2019-12-23 02:33:59,987 [nnabla][INFO]: iter=9999 {Training time}=0.26130175590515137[sec/100iter] 26.61487102508545[sec] 2019-12-23 02:33:59,999 [nnabla][INFO]: iter=9999 {Test error}=0.00703125
比較のために、CPUのみで実行すると7分ほどかかった
(WSL)$ python classification.py 2019-12-23 02:37:54,749 [nnabla][INFO]: Initializing CPU extension... 2019-12-23 02:37:55,041 [nnabla][INFO]: Running in cpu ~~ 2019-12-23 02:37:55,455 [nnabla][INFO]: Parameter save (.h5): tmp.monitor\params_000000.h5 2019-12-23 02:37:55,850 [nnabla][INFO]: iter=9 {Training loss}=2.210261344909668 2019-12-23 02:37:55,851 [nnabla][INFO]: iter=9 {Training error}=0.79453125 ~~ 2019-12-23 02:44:47,789 [nnabla][INFO]: iter=9999 {Training loss}=0.005216401536017656 2019-12-23 02:44:47,790 [nnabla][INFO]: iter=9999 {Training error}=0.00234375 2019-12-23 02:44:47,790 [nnabla][INFO]: iter=9999 {Training time}=4.1329545974731445[sec/100iter] 412.7419340610504[sec] 2019-12-23 02:44:47,978 [nnabla][INFO]: iter=9999 {Test error}=0.00859375
WSLからAnaconda環境のpythonを実行してGPU(CUDA+cuDNN)を使用することができた模様
pipとcondaの問題はあるが、とりあえずGPUで動いたのでよしとしよう
解散!
リンク