BuildMklDnn VS 2017 のセットアップ
CNTK用のコンパイル済み MKL-DNN 0.14 の作成
自分でCNTKするために MKL-DNN 0.14 をビルドする場合は、次の手順に従います。 コンパイル済みの MKL-DNN バージョンは、次の場所にあります。 c:\local\mklml-mkldnn-0.14
- cmake.org から CMake をインストール します。
- MKLML バイナリ https://github.com/intel/mkl-dnn/releases/download/v0.14/mklml_win_2018.0.3.20180406.zip をダウンロードして開梱する
c:\local\mklml-mkldnn-0.14
- から MKL-DNN ソースをダウンロードして展開します https://github.com/01org/mkl-dnn/archive/v0.14.zip。
次の手順では、MKL-DNN ソースがディレクトリ c:\local\src\mkl-dnn-0.14
に解凍されていることを前提としています。 以下の手順では、ディレクトリに MKL-DNN ライブラリとヘッダー ファイルを作成します c:\local\mklml-mkldnn-0.14
。 この場所が異なる場合は、次の手順をディレクトリ構造に合わせて調整してください。
MKL-DNN ヘッダーとライブラリは、セットアップを行うために MKLML と同じ場所に格納されることに注意してください。ファイル名が異なるためです。 mkl_dnn* ファイルは、オープンソースではない MKL 内の dnn 関数用ですが、mkldnn* ファイルは MKL-DNN オープンソースからビルドされます。
CNTK MKL-DNN ライブラリをビルドするには、バッチ ファイルまたは手動で 2 つの方法があります。
バッチ ファイルを使用したビルド
ディレクトリ Tools\devInstall\Windows
にバッチ ファイル buildMklDnnVS17.bat
があります。 このバッチ ファイルは、CNTK MKL-DNN ライブラリをビルドするために 2 つのパラメーターを受け取ります。 最初のパラメーターは、上で展開した MKL-DNN ソース ファイルのディレクトリです。2 番目のパラメーターは、作成された MKL-DNN ライブラリの宛先ディレクトリです。 この例では、標準のWindows コマンド プロンプトから次の手順に従います。
c:
cd \repos\cntk\Tools\devInstall\Windows
buildMklDnnVS17 C:\local\src\mkl-dnn-0.14 C:\local\mklml-mkldnn-0.14
環境変数 MKL_PATH
を MKL-DNN の場所に設定します (これは、ソースの場所ではなく、上記のコマンド呼び出しの 2 番目のパラメーターです)。
setx MKL_PATH c:\local\mklml-mkldnn-0.14
CNTK MKL-DNN ライブラリの手動ビルド手順
注意
Visual Studio インストーラーによって環境変数が設定されていない場合VS2017INSTALLDIR
は、手動で設定します。 正確なインストール ディレクトリは、次のパターンC:\Program Files (x86)\Microsoft Visual Studio\<version>\<offering>
に従って、バージョン (この場合は 2017) とVisual Studioのオファリング (Community、Enterpriseなど) の両方に依存します。
Visual Studio 2017 Enterprise エディションの場合は、次のコマンドを実行します。
setx VS2017INSTALLDIR "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise"
Visual Studio 2017 Community エディションの場合は、次を実行します。
setx VS2017INSTALLDIR "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community"
- 64 ビット Visual Studio 2017 開発環境を起動します。 最も便利な方法は、標準の windows コマンド シェルから必要なパラメーターを使用して、Visual Studio ディレクトリでバッチ ファイル
vcvarsall.bat
を実行することです。
"%VS2017INSTALLDIR%\VC\Auxiliary\Build\vcvarsall.bat" amd64 --vcvars_ver=14.11
システムでこのバッチ ファイルが見つからない場合は、VS2017 のインストールを見直し、'VC++ バージョン 15.4 v14.11 ツールセット' オプションが選択されていることを確認してください。 2. ビルド ディレクトリを作成し、MKL-DNN cmake の MKLROOT を設定して MKLML ライブラリを検索します。
cd c:\local\src\mkl-dnn-0.14
set MKLROOT=c:\local\mklml-mkldnn-0.14
- CMake を使用してリリース ビルドを作成し、ビルドされたバイナリをMKL_PATHにコピーします (ユーザーは、デバッグ ビルドを作成するためにリリースをデバッグに置き換えることができます)。
cd cmake
cmake .. -G "Visual Studio 15" -DCMAKE_BUILD_TYPE=Release
msbuild "Intel(R) MKL-DNN.sln" /t:Rebuild /p:Configuration=Release /m
copy ..\include\* c:\local\mklml-mkldnn-0.14\include
copy src\Release\*.lib c:\local\mklml-mkldnn-0.14\lib
copy src\Release\*.dll c:\local\mklml-mkldnn-0.14\lib