こんにちは。
ネクストスケープ上坂です。
今日はMicrosoft Congnitive Toolkit、略してCNTKの環境をAzureVMで構築してみたいと思います。
CNTKはMicrosoftが提供しているオープンソースのDeep Learningモデル構築&実行環境です。
御存知の通りAzureにはNシリーズというGPU付きのVMがありますので、そちらを使ってGPUで稼働するCNTKをゼロから作っていきます。
ちなみに、Azureには既にCNTKをインストール済みのイメージもありますが、なぜかうまくデプロイできなかったのでゼロから構築してみました。
まず、Azure上でGPU付きのVMで立てます。私はOSをWindows Server 2016にしました。
ちなみに2017/05/26時点では、GPU付きのVMを立てられるリージョンはとても限定されています。
米国東部、米国中南部、米国西部2の3リージョンだけです。
詳しくはこちらをどうぞ。
https://azure.microsoft.com/ja-jp/regions/services/
Deep Learning用のVMは、NC-シリーズです。
立て終わったら、VMにRDPでログインします。
1.GPUドライバーのセットアップ
詳しい手順はこちらです。
https://docs.microsoft.com/ja-jp/azure/virtual-machines/windows/n-series-driver-setup
Windows Server 2016 用のドライバーをダウンロードし、インストールします。
手順に書いてあるとおり、デバイス マネージャーで確認してみます。
コントロールパネル > ハードウェア > デバイスマネージャーで開きます。
ディスプレイ アダプターを展開すると、こんな感じでカードが刺さっているのがわかります。
NVIDIA Tesla K80が4つある、ということはカードは4枚(!)刺さっている、ということです。
GPUデバイスの状態確認は次のexeを動かします。コマンドプロンプトにコピペします。
パスにスペースを含んでいるのでダブルクォーテーションをそのままで。"c:\Program Files\NVIDIA Corporation\NVSMI\nvidia-smi.exe"
2.Visual Studio のセットアップ
Visual Studio 2015 with Update3のインストールです。エディションはなんでも構いません。
この手順は次の3.でインストールするCUDA8の System Requirementsです。
私はEnterpriseのフル版をいれてしまったのですが、そうじゃない場合は Common Tools for Visual C++ 2015を明示的にインストールする必要があるようです。
3.CUDA8のセットアップ
CUDA8をインストールします。これをいれないとNVIDIA製GPUを使ってくれないようです。
よくわかりませんが入れます。次のリンクから、インストーラーをダウンロードします。
https://developer.nvidia.com/cuda-downloads
4.Anaconda Python 3.5のインストール
Pythonの実行環境をインストールします。Anacondaという便利なものがあるようで、これをインストールするとJupyterもインストールされます。
https://docs.microsoft.com/en-us/cognitive-toolkit/Setup-Windows-Python#anaconda3
無事にインストールされたかを確認しましょう。
コマンドプロンプトで
python --version
と入力します。
こんな感じで表示されたらOKです。
5.WindowsへのPython用CNTKのインストール
さて、いよいよCNTKのインストールです。インストールにはpipというPythonのパッケージ管理ツールを使用します。
次のリンクから該当するPythonバージョンに合わせてURLをゲットします。
https://github.com/Microsoft/CNTK/wiki/Setup-Windows-Python
今回はPython 3.5をインストールしているので、
https://cntk.ai/PythonWheel/GPU/cntk-2.0rc3-cp35-cp35m-win_amd64.whl
というURLを使うことになります。
コマンドプロンプトを開いて、
pip install https://cntk.ai/PythonWheel/GPU/cntk-2.0rc3-cp35-cp35m-win_amd64.whl
をコピペします。
環境構築は以上です。お疲れ様でした。