安装CUDA和cudnn后,开始编译mxnet。
1. 下载源码
git clone --recursive https://github.com/apache/incubator-mxnet mxnet
或者用代理:
git clone --recursive https://g.0x6.xyz/https://github.com/apache/incubator-mxnet mxnet
如果子模块下载慢,修改.gitmodules文件,使子模块用代理:
[submodule "3rdparty/dmlc-core"]
path = 3rdparty/dmlc-core
url = https://g.0x6.xyz/https://github.com/dmlc/dmlc-core.git
[submodule "3rdparty/ps-lite"]
path = 3rdparty/ps-lite
url = https://g.0x6.xyz/https://github.com/dmlc/ps-lite
[submodule "3rdparty/dlpack"]
path = 3rdparty/dlpack
url = https://g.0x6.xyz/https://github.com/dmlc/dlpack
[submodule "3rdparty/openmp"]
path = 3rdparty/openmp
url = https://g.0x6.xyz/https://github.com/llvm-mirror/openmp
[submodule "3rdparty/googletest"]
path = 3rdparty/googletest
url = https://g.0x6.xyz/https://github.com/google/googletest.git
[submodule "3rdparty/mkldnn"]
path = 3rdparty/mkldnn
url = https://g.0x6.xyz/https://github.com/oneapi-src/oneDNN.git
[submodule "3rdparty/tvm"]
path = 3rdparty/tvm
url = https://g.0x6.xyz/https://github.com/apache/incubator-tvm.git
[submodule "3rdparty/onnx-tensorrt"]
path = 3rdparty/onnx-tensorrt
url = https://g.0x6.xyz/https://github.com/onnx/onnx-tensorrt.git
[submodule "3rdparty/nvidia_cub"]
path = 3rdparty/nvidia_cub
url = https://g.0x6.xyz/https://github.com/NVlabs/cub.git
[submodule "3rdparty/libzip"]
path = 3rdparty/libzip
url = https://g.0x6.xyz/https://github.com/nih-at/libzip.git
[submodule "3rdparty/intgemm"]
path = 3rdparty/intgemm
url = https://g.0x6.xyz/https://github.com/kpu/intgemm
2. 安装依赖
(1)用Chocolatey:
choco install python git 7zip cmake ninja opencv
(2)编译OpenBLAS:
下载源码(如果用代理,同上):git clone --recursive https://github.com/xianyi/OpenBLAS.git
进入源码目录: cd OpenBLAS
在Anaconda Command Prompt环境:
安装OpenBLAS的依赖
conda update -n base conda
conda config --add channels conda-forge
conda install -y cmake flang clangdev perl libflang ninja
打开vs2019环境
"c:/Program Files (x86)/Microsoft Visual Studio/2019/Community/VC/Auxiliary/Build/vcvars64.bat"
生成vs2019工程
set "LIB=%CONDA_PREFIX%\Library\lib;%LIB%"
set "CPATH=%CONDA_PREFIX%\Library\include;%CPATH%"
mkdir build
cd build
cmake .. -G "Ninja" -DCMAKE_CXX_COMPILER=clang-cl -DCMAKE_C_COMPILER=clang-cl -DCMAKE_Fortran_COMPILER=flang -DBUILD_WITHOUT_LAPACK=no -DNOFORTRAN=0 -DDYNAMIC_ARCH=ON -DCMAKE_BUILD_TYPE=Release
编译构建
cmake --build . --config Release
从 https://github.com/xianyi/OpenBLAS/releases 下载最新的OpenBLAS 64位zip包,将包中的lib和include目录拷贝到上面的build目录。
3. 配置环境
CUDA_PATH:CUDA的安装路径
OpenBLAS_HOME:OpenBLAS的build路径
OpenCV_DIR:opencv路径
4. 构建
用cmake-gui配置(configure)、生成(generate)vs2019工程,编译vs2019的release版。
参考:
https://mxnet.apache.org/get_started/build_from_source
https://github.com/xianyi/OpenBLAS/wiki/How-to-use-OpenBLAS-in-Microsoft-Visual-Studio