# Win10 下构建方式
- [Win10 下构建方式](#win10-下构建方式)
- [源码安装](#源码安装)
- [安装构建和编译工具链](#安装构建和编译工具链)
- [安装依赖包](#安装依赖包)
- [安装 MMDeploy Converter 依赖](#安装-mmdeploy-converter-依赖)
- [安装 MMDeploy SDK 依赖](#安装-mmdeploy-sdk-依赖)
- [安装推理引擎](#安装推理引擎)
- [编译 MMDeploy](#编译-mmdeploy)
- [编译选项说明](#编译选项说明)
- [编译安装 Model Converter](#编译安装-model-converter)
- [编译自定义算子](#编译自定义算子)
- [安装 Model Converter](#安装-model-converter)
- [编译 SDK](#编译-sdk)
- [编译 Demo](#编译-demo)
- [注意事项](#注意事项)
---
目前,MMDeploy 在 Windows 平台下仅提供源码编译安装方式。未来会提供预编译包方式。
## 源码安装
下述安装方式,均是在 **Windows 10** 下进行
### 安装构建和编译工具链
1. 下载并安装 [Visual Studio 2019](https://visualstudio.microsoft.com) 。安装时请勾选 "使用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 显卡,根据[官网教程](https://developer.nvidia.com\/cuda-downloads),下载并安装 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 版本是一致
|
mmcv-full | 参考如下命令安装 mmcv-full。更多安装方式,可查看 mmcv 官网
|
名称 | 安装方法 |
---|---|
spdlog | spdlog是一个精巧的日志管理库。请参考如下命令安装:
|
OpenCV |
1. 从这里下载 OpenCV 3+。
2. 您可以下载并安装 OpenCV 预编译包到指定的目录下。也可以选择源码编译安装的方式
3. 在安装目录中,找到 OpenCVConfig.cmake ,并把它的路径添加到环境变量 PATH 中。像这样:
|
pplcv | pplcv 是 openPPL 开发的高性能图像处理库。 此依赖项为可选项,只有在 cuda 平台下,才需安装。而且,目前必须使用 v0.6.2,且需要使用 git clone 的方式下载源码并编译安装
|
推理引擎 | 依赖包 | 安装方法 |
---|---|---|
ONNXRuntime | onnxruntime (>=1.8.1) |
1. 安装 onnxruntime 的 python 包
2. 从这里下载 onnxruntime 的预编译二进制包,解压并配置环境变量
|
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 | TODO |
编译选项 | 取值范围 | 缺省值 | 说明 |
---|---|---|---|
MMDEPLOY_BUILD_SDK | {ON, OFF} | OFF | MMDeploy SDK 编译开关 |
MMDEPLOY_BUILD_SDK_PYTHON_API | {ON, OFF} | OFF | MMDeploy SDK python package的编译开关 |
MMDEPLOY_BUILD_TEST | {ON, OFF} | OFF | MMDeploy SDK 的单元测试程序编译开关 |
MMDEPLOY_TARGET_DEVICES | {"cpu", "cuda"} | cpu | 设置目标设备。当有多个设备时,设备名称之间使用分号隔开。 比如,-DMMDEPLOY_TARGET_DEVICES="cpu;cuda" |
MMDEPLOY_TARGET_BACKENDS | {"trt", "ort", "pplnn", "ncnn", "openvino"} | N/A | 默认情况下,SDK不设置任何后端, 因为它与应用场景高度相关。 当选择多个后端时, 中间使用分号隔开。比如,
构建时,几乎每个后端,都需设置一些路径变量,用来查找依赖包。1. trt: 表示 TensorRT。需要设置 TENSORRT_DIR 和 CUDNN_DIR 。
2. ort: 表示 ONNXRuntime。需要设置 ONNXRUNTIME_DIR 。
3. pplnn: 表示 PPL.NN。需要设置 pplnn_DIR 。当前版本尚未验证 4. ncnn:表示 ncnn。需要设置 ncnn_DIR 。当前版本尚未验证 5. openvino: 表示 OpenVINO。需要设置 InferenceEngine_DIR 。当前版本尚未验证通过
|
MMDEPLOY_CODEBASES | {"mmcls", "mmdet", "mmseg", "mmedit", "mmocr", "all"} | all | 用来设置SDK后处理组件,加载 OpenMMLab 算法仓库的后处理功能。如果选择多个 codebase,中间使用分号隔开。比如,-DMMDEPLOY_CODEBASES="mmcls;mmdet" 。也可以通过 -DMMDEPLOY_CODEBASES=all 方式,加载所有 codebase。 |
BUILD_SHARED_LIBS | {ON, OFF} | ON | 动态库的编译开关。设置OFF时,编译静态库 |