Highlight
- Support SNPE (789)
- Please refer to [Build for SNPE](https://github.com/open-mmlab/mmdeploy/blob/master/docs/en/01-how-to-build/snpe.md) to get start SNPE deployment journey
- Add C++ API for SDK (831)
Features
- Support SNPE (789)
- Add C++ API for SDK (831)
- Support MMRotate model with le135 angle format (788)
- Support RoI Transformer and `Gliding Vertex` model deployment from `MMRotate` (713, 650)
- Add inference latency test script `tools/profile.py` (655)
Here is an example to profile `TensorRT_fp32-resnet18` inference latency:
shell
python tools/profile.py \
configs/mmcls/classification_tensorrt_dynamic-224x224-224x224.py \
../mmclassification/configs/resnet/resnet18_8xb32_in1k.py \
../mmdetection/demo
--model work-dirs/mmcls/resnet/trt/end2end.engine \
--device cuda \
--shape 224x224 \
--num-iter 100 \
--warmup 10
Improvements
- Optimize prebuilt process for Python SDK (810)
- Upgrade `ppl.nn` and `ppl.cv` to `v0.8.1` and `v0.7.0` respectively (793, 564)
- Support batch image test in test script `test.py` (829)
- Install onnx optimizer by setuptools instead of cmake build (690, 811, 843)
- Add SDK code coverage (808)
- Support kwargs in SDK Python bindings (794, 844, 852)
- Support building SDK into a single library by enabling `MMDEPLOY_BUILD_SDK_MONOLITHIC` (806)
- Add a new option `MMDEPLOY_BUILD_EXAMPLES` to build and install SDK examples (822)
- Reduce log verbosity and improve error reporting (755)
- Upgrade GPU Dockerfile to use TensorRT 8.2.4.2 (706)
- Optimize ONNX graph
- Add a function rewriter to `torch.Tensor.__setitem__`, eliminating almost 80% nodes for `x[:,:,:H,:W] = y` onnx export (704)
- Add `CommonSubgraphElimination` onnx pass (647)
- [BC Breaking] Standardize C API(634)
- Prefix all struct with `mmdeploy_` and move all header files into `mmdeploy` folder.

- Rename `onnx2ncnn` to `mmdeploy_onnx2ncnn` (694)
Bug fixes
- Fix build error on macOS platform (762)
- Fix `troch.triu` function rewriter error when exporting to onnx (792)
- Resolve Cascade R-CNN, `YOLOX` and `SATRN` deployment failure (787, 758, 753)
- Fix `check_env.py` about checking whether custom ops are available (785)
- Fix export for TopK operator in PyTorch 1.12 (715)
Fix export for padding operators in PyTorch<1.10 (754)
- Add default `topk` in SDK model meta info when it is not explicitly specified in `mmclassifcation` model configs (702)
- Fix SingleRoIExtractor for TorchScript backend (724)
- Fix export for DistancePointBBoxCoder.decode (687)
- Fix wrong backend type when doing calibration (719)
- Set exit code to 1 when error happens (715)
- Fix build error on android platform (698)
- Pass `img_metas` while exporting to onnx (681, 700, 707)
Document
- Update build document for android platform (817)
- Fix rendering issues of `get_started` documents in readthedocs (740)
- Add prebuilt package usage on Windows platform (816)
- Simplify `get_started` guide (813)
Contributors
nijkah dwSun lvhan028 lzhangzz irexyc RunningLeon grimoire tpoisonooo AllentDan hanrui1sensetime