Skip to content

Latest commit

 

History

History
329 lines (287 loc) · 12.1 KB

windows.md

File metadata and controls

329 lines (287 loc) · 12.1 KB

Win10 下构建方式


源码安装

下述安装方式,均是在 Windows 10 下进行,使用 PowerShell Preview 版本。

安装构建和编译工具链

  1. 下载并安装 Visual Studio 2019 。安装时请勾选 "使用C++的桌面开发, "Windows 10 SDK
  2. 把 cmake 路径加入到环境变量 PATH 中, "C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\bin"
  3. 如果系统中配置了 NVIDIA 显卡,根据官网教程,下载并安装 cuda toolkit。

安装依赖包

安装 MMDeploy Converter 依赖

名称 安装方法
conda 请参考 这里 安装 conda。安装完毕后,打开系统开始菜单,以管理员的身份打开 anaconda powershell prompt。 因为,
1. 下文中的安装命令均是在 anaconda powershell 中测试验证的。
2. 使用管理员权限,可以把第三方库安装到系统目录。能够简化 MMDeploy 编译命令。
说明:如果你对 cmake 工作原理很熟悉,也可以使用普通用户权限打开 anaconda powershell prompt
PyTorch
(>=1.8.0)
安装 PyTorch,要求版本是 torch>=1.8.0。可查看官网获取更多详细的安装教程。请确保 PyTorch 要求的 CUDA 版本和您主机的 CUDA 版本是一致

pip install torch==1.8.0+cu111 torchvision==0.9.0+cu111 torchaudio==0.8.0 -f https://download.pytorch.org/whl/torch_stable.html
mmcv 参考如下命令安装 mmcv。更多安装方式,可查看 mmcv 官网

$env:cu_version="cu111"
$env:torch_version="torch1.8"
pip install -U openmim
mim install "mmcv>=2.0.0rc1"

安装 MMDeploy SDK 依赖

如果您只对模型转换感兴趣,那么可以跳过本章节。

名称 安装方法
OpenCV 1. 从这里下载 OpenCV 3+。 2. 您可以下载并安装 OpenCV 预编译包到指定的目录下。也可以选择源码编译安装的方式 3. 在安装目录中,找到 OpenCVConfig.cmake,并把它的路径添加到环境变量 PATH 中。像这样:
$env:path = "\the\path\where\OpenCVConfig.cmake\locates;" + "$env:path"
pplcv pplcv 是 openPPL 开发的高性能图像处理库。 此依赖项为可选项,只有在 cuda 平台下,才需安装。

git clone https://github.com/openppl-public/ppl.cv.git
cd ppl.cv
git checkout tags/v0.7.0 -b v0.7.0
$env:PPLCV_DIR = "$pwd"
mkdir pplcv-build
cd pplcv-build
cmake .. -G "Visual Studio 16 2019" -T v142 -A x64 -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=install -DPPLCV_USE_CUDA=ON -DPPLCV_USE_MSVC_STATIC_RUNTIME=OFF
cmake --build . --config Release -- /m
cmake --install . --config Release
cd ../..

安装推理引擎

MMDeploy 的 Model Converter 和 SDK 共享推理引擎。您可以参考下文,选择自己感兴趣的推理引擎安装。

目前,在 Windows 平台下,MMDeploy 支持 ONNXRuntime 和 TensorRT 两种推理引擎。其他推理引擎尚未进行验证,或者验证未通过。后续将陆续予以支持

推理引擎 依赖包 安装方法
ONNXRuntime onnxruntime
(>=1.8.1)
1. 安装 onnxruntime 的 python 包
pip install onnxruntime==1.8.1
2. 从这里下载 onnxruntime 的预编译二进制包,解压并配置环境变量

Invoke-WebRequest -Uri https://github.com/microsoft/onnxruntime/releases/download/v1.8.1/onnxruntime-win-x64-1.8.1.zip -OutFile onnxruntime-win-x64-1.8.1.zip
Expand-Archive onnxruntime-win-x64-1.8.1.zip .
$env:ONNXRUNTIME_DIR = "$pwd\onnxruntime-win-x64-1.8.1"
$env:path = "$env:ONNXRUNTIME_DIR\lib;" + $env:path
TensorRT
TensorRT
1. 登录 NVIDIA 官网,从这里选取并下载 TensorRT tar 包。要保证它和您机器的 CPU 架构以及 CUDA 版本是匹配的。您可以参考这份 指南 安装 TensorRT。
2. 这里也有一份 TensorRT 8.2 GA Update 2 在 Windows x86_64 和 CUDA 11.x 下的安装示例,供您参考。首先,点击此处下载 CUDA 11.x TensorRT 8.2.3.0。然后,根据如下命令,安装并配置 TensorRT 以及相关依赖。

cd \the\path\of\tensorrt\zip\file
Expand-Archive TensorRT-8.2.3.0.Windows10.x86_64.cuda-11.4.cudnn8.2.zip .
pip install $env:TENSORRT_DIR\python\tensorrt-8.2.3.0-cp37-none-win_amd64.whl
$env:TENSORRT_DIR = "$pwd\TensorRT-8.2.3.0"
$env:path = "$env:TENSORRT_DIR\lib;" + $env:path
pip install pycuda
cudnn 1. 从 cuDNN Archive 中选择和您环境中 CPU 架构、CUDA 版本以及 TensorRT 版本配套的 cuDNN。以前文 TensorRT 安装说明为例,它需要 cudnn8.2。因此,可以下载 CUDA 11.x cuDNN 8.2
2. 解压压缩包,并设置环境变量

cd \the\path\of\cudnn\zip\file
Expand-Archive cudnn-11.3-windows-x64-v8.2.1.32.zip .
$env:CUDNN_DIR="$pwd\cuda"
$env:path = "$env:CUDNN_DIR\bin;" + $env:path
PPL.NN ppl.nn TODO
OpenVINO openvino TODO
ncnn ncnn 1. 下载 protobuf-3.11.2
2. 编译protobuf
cd <protobuf-dir>
mkdir build
cd build
cmake -G "Visual Studio 16 2019" -A x64 -DCMAKE_INSTALL_PREFIX=%cd%/install -Dbuild_TESTS=OFF -Dprotobuf_MSVC_STATIC_RUNTIME=OFF ../cmake
cmake --build . --config Release -j 2
cmake --build . --config Release --target install
2. 下载ncnn
git clone --recursive https://github.com/Tencent/ncnn.git
cd <ncnn-dir>
mkdir -p ncnn_build
cd ncnn_build
cmake -G "Visual Studio 16 2019" -A x64 -DCMAKE_INSTALL_PREFIX=%cd%/install -Dprotobuf_DIR=/build/install/cmake -DNCNN_VULKAN=OFF ..
cmake --build . --config Release -j 2
cmake --build . --config Release --target install

编译 MMDeploy

cd \the\root\path\of\MMDeploy
$env:MMDEPLOY_DIR="$pwd"

编译 Model Converter

如果您选择了 ONNXRuntime,TensorRT 和 ncnn 任一种推理后端,您需要编译对应的自定义算子库。

  • ONNXRuntime 自定义算子
mkdir build -ErrorAction SilentlyContinue
cd build
cmake .. -G "Visual Studio 16 2019" -A x64 -T v142 -DMMDEPLOY_TARGET_BACKENDS="ort" -DONNXRUNTIME_DIR="$env:ONNXRUNTIME_DIR"
cmake --build . --config Release -- /m
cmake --install . --config Release
  • TensorRT 自定义算子
mkdir build -ErrorAction SilentlyContinue
cd build
cmake .. -G "Visual Studio 16 2019" -A x64 -T v142 -DMMDEPLOY_TARGET_BACKENDS="trt" -DTENSORRT_DIR="$env:TENSORRT_DIR" -DCUDNN_DIR="$env:CUDNN_DIR"
cmake --build . --config Release -- /m
cmake --install . --config Release
  • ncnn 自定义算子
mkdir build -ErrorAction SilentlyContinue
cd build
cmake .. -G "Visual Studio 16 2019" -A x64 -T v142
-DMMDEPLOY_TARGET_BACKENDS="ncnn" \
-Dncnn_DIR="<ncnn-dir>/ncnn_build/install/lib/cmake/ncnn"
-Dprotobuf_DIR="<protobuf-dir>/build/install/cmake"
-DProtobuf_LIBRARIES="<protobuf-dir>/build\install\lib"
-DProtobuf_INCLUDE_DIR="<protobuf-dir>/build\install\include\"
cmake --build . --config Release -- /m
cmake --install . --config Release

参考 cmake 选项说明

安装 Model Converter

cd $env:MMDEPLOY_DIR
pip install -e .

注意

  • 有些依赖项是可选的。运行 pip install -e . 将进行最小化依赖安装。 如果需安装其他可选依赖项,请执行pip install -r requirements/optional.txt, 或者 pip install -e .[optional]。其中,[optional]可以替换为:alltestsbuildoptional

编译 SDK 和 Demos

下文展示2个构建SDK的样例,分别用 ONNXRuntime 和 TensorRT 作为推理引擎。您可以参考它们,并结合前文 SDK 的编译选项说明,激活其他的推理引擎。

  • cpu + ONNXRuntime

    cd $env:MMDEPLOY_DIR
    mkdir build -ErrorAction SilentlyContinue
    cd build
    cmake .. -G "Visual Studio 16 2019" -A x64 -T v142 `
        -DMMDEPLOY_BUILD_SDK=ON `
        -DMMDEPLOY_BUILD_EXAMPLES=ON `
        -DMMDEPLOY_BUILD_SDK_PYTHON_API=ON `
        -DMMDEPLOY_TARGET_DEVICES="cpu" `
        -DMMDEPLOY_TARGET_BACKENDS="ort" `
        -DONNXRUNTIME_DIR="$env:ONNXRUNTIME_DIR"
    
    cmake --build . --config Release -- /m
    cmake --install . --config Release
  • cuda + TensorRT

    cd $env:MMDEPLOY_DIR
    mkdir build
    cd build
    cmake .. -G "Visual Studio 16 2019" -A x64 -T v142 `
      -DMMDEPLOY_BUILD_SDK=ON `
      -DMMDEPLOY_BUILD_EXAMPLES=ON `
      -DMMDEPLOY_BUILD_SDK_PYTHON_API=ON `
      -DMMDEPLOY_TARGET_DEVICES="cuda" `
      -DMMDEPLOY_TARGET_BACKENDS="trt" `
      -Dpplcv_DIR="$env:PPLCV_DIR/pplcv-build/install/lib/cmake/ppl" `
      -DTENSORRT_DIR="$env:TENSORRT_DIR" `
      -DCUDNN_DIR="$env:CUDNN_DIR"
    cmake --build . --config Release -- /m
    cmake --install . --config Release
  • cpu + ncnn

    cd $env:MMDEPLOY_DIR
    mkdir build
    cd build
    cmake .. -G "Visual Studio 16 2019" -A x64 -T v142 `
      -DMMDEPLOY_BUILD_SDK=ON `
      -DMMDEPLOY_BUILD_EXAMPLES=ON `
      -DMMDEPLOY_BUILD_SDK_PYTHON_API=ON `
      -DMMDEPLOY_TARGET_DEVICES="cpu" `
      -DMMDEPLOY_TARGET_BACKENDS="ncnn" `
      -Dncnn_DIR="<ncnn-dir>/ncnn_build/install/lib/cmake/ncnn"
      -Dprotobuf_DIR="<protobuf-dir>/build/install/cmake"
      -DProtobuf_LIBRARIES="<protobuf-dir>/build\install\lib"
      -DProtobuf_INCLUDE_DIR="<protobuf-dir>/build\install\include\"
    cmake --build . --config Release -- /m
    cmake --install . --config Release

注意事项

  1. Release / Debug 库不能混用。MMDeploy 要是编译 Release 版本,所有第三方依赖都要是 Release 版本。反之亦然。