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 라이브러리를 빌드하는 방법에는 두 가지가 있습니다.
일괄 처리 파일을 통해 빌드
디렉터리 Tools\devInstall\Windows
에서 배치 파일을 buildMklDnnVS17.bat
찾습니다. 이 일괄 처리 파일은 두 매개 변수를 사용하여 CNTK MKL-DNN 라이브러리를 빌드합니다. 첫 번째 매개 변수는 위에서 압축을 풉진 MKL-DNN 원본 파일의 디렉터리이고, 두 번째 매개 변수는 만든 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 위치로 설정합니다(원본 위치가 아니라 위의 명령 호출에서 두 번째 매개 변수입니다.)
setx MKL_PATH c:\local\mklml-mkldnn-0.14
CNTK MKL-DNN 라이브러리에 대한 수동 빌드 단계
참고
Visual Studio 설치 관리자가 환경 변수를 설정하지 않은 경우 VS2017INSTALLDIR
수동으로 설정합니다. 정확한 설치 디렉터리가 다음 패턴C:\Program Files (x86)\Microsoft Visual Studio\<version>\<offering>
에 따라 Visual Studio버전(이 경우 2017) 및 제품(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