下述安装方式,均是在 Windows 10 下进行,使用 PowerShell Preview 版本。
- 下载并安装 Visual Studio 2019 。安装时请勾选 "使用C++的桌面开发, "Windows 10 SDK
- 把 cmake 路径加入到环境变量 PATH 中, "C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\bin"
- 如果系统中配置了 NVIDIA 显卡,根据官网教程,下载并安装 cuda toolkit。
名称 | 安装方法 |
---|---|
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 版本是一致
|
mmcv | 参考如下命令安装 mmcv。更多安装方式,可查看 mmcv 官网
|
如果您只对模型转换感兴趣,那么可以跳过本章节。
名称 | 安装方法 |
---|---|
OpenCV |
1. 从这里下载 OpenCV 3+。
2. 您可以下载并安装 OpenCV 预编译包到指定的目录下。也可以选择源码编译安装的方式
3. 在安装目录中,找到 OpenCVConfig.cmake ,并把它的路径添加到环境变量 PATH 中。像这样:
|
pplcv | pplcv 是 openPPL 开发的高性能图像处理库。 此依赖项为可选项,只有在 cuda 平台下,才需安装。
|
MMDeploy 的 Model Converter 和 SDK 共享推理引擎。您可以参考下文,选择自己感兴趣的推理引擎安装。
目前,在 Windows 平台下,MMDeploy 支持 ONNXRuntime 和 TensorRT 两种推理引擎。其他推理引擎尚未进行验证,或者验证未通过。后续将陆续予以支持
推理引擎 | 依赖包 | 安装方法 |
---|---|---|
ONNXRuntime | onnxruntime (>=1.8.1) |
1. 安装 onnxruntime 的 python 包
|
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 以及相关依赖。
|
cudnn |
1. 从 cuDNN Archive 中选择和您环境中 CPU 架构、CUDA 版本以及 TensorRT 版本配套的 cuDNN。以前文 TensorRT 安装说明为例,它需要 cudnn8.2。因此,可以下载 CUDA 11.x cuDNN 8.2 2. 解压压缩包,并设置环境变量
|
|
PPL.NN | ppl.nn | TODO |
OpenVINO | openvino | TODO |
ncnn | ncnn |
1. 下载 protobuf-3.11.2 2. 编译protobuf
|
cd \the\root\path\of\MMDeploy
$env:MMDEPLOY_DIR="$pwd"
如果您选择了 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 选项说明
cd $env:MMDEPLOY_DIR
pip install -e .
注意
- 有些依赖项是可选的。运行
pip install -e .
将进行最小化依赖安装。 如果需安装其他可选依赖项,请执行pip install -r requirements/optional.txt
, 或者pip install -e .[optional]
。其中,[optional]
可以替换为:all
、tests
、build
或optional
。
下文展示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
- Release / Debug 库不能混用。MMDeploy 要是编译 Release 版本,所有第三方依赖都要是 Release 版本。反之亦然。