Skip to content

Commit dc6b1f3

Browse files
authored
update rknn-toolkit2 version to 1.5 (#2278)
* update rknn-toolkit2 version to 1.5 * fix lint * cmake .. * fix int type * fix
1 parent 0a8cbe2 commit dc6b1f3

File tree

4 files changed

+21
-9
lines changed

4 files changed

+21
-9
lines changed

csrc/mmdeploy/net/rknn/rknn_net.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -170,7 +170,7 @@ Result<void> RKNNNet::Init(const Value& args) {
170170
MMDEPLOY_ERROR("rknn query 'RKNN_QUERY_INPUT_ATTR' fail! ret: {}", ret);
171171
return Status(eFail);
172172
}
173-
if (attr.type != RKNN_TENSOR_UINT8) {
173+
if (!(attr.type == RKNN_TENSOR_UINT8 || attr.type == RKNN_TENSOR_INT8)) {
174174
MMDEPLOY_ERROR("MMDeploy SDK only supports RKNN-INT8 model");
175175
return Status(eInvalidArgument);
176176
}

docs/en/01-how-to-build/rockchip.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ It is recommended to create a virtual environment for the project.
2323
2. Install RKNN python package following [rknn-toolkit2 doc](https://github.com/rockchip-linux/rknn-toolkit2/tree/master/doc) or [rknn-toolkit doc](https://github.com/rockchip-linux/rknn-toolkit/tree/master/doc). When installing rknn python package, it is better to append `--no-deps` after the commands to avoid dependency conflicts. RKNN-Toolkit2 package for example:
2424

2525
```
26-
pip install packages/rknn_toolkit2-1.2.0_f7bb160f-cp36-cp36m-linux_x86_64.whl --no-deps
26+
pip install packages/rknn_toolkit2-1.4.0_22dcfef4-cp36-cp36m-linux_x86_64.whl --no-deps
2727
```
2828

2929
3. Install ONNX==1.8.0 before reinstall MMDeploy from source following the [instructions](../01-how-to-build/build_from_source.md). Note that there are conflicts between the pip dependencies of MMDeploy and RKNN. Here is the suggested packages versions for python 3.6:
@@ -50,7 +50,7 @@ Example:
5050

5151
```bash
5252
python tools/deploy.py \
53-
configs/mmpretrain/classification_rknn_static.py \
53+
configs/mmpretrain/classification_rknn-fp16_static-224x224.py \
5454
/mmpretrain_dir/configs/resnet/resnet50_8xb32_in1k.py \
5555
https://download.openmmlab.com/mmclassification/v0/resnet/resnet50_batch256_imagenet_20200708-cfb998bf.pth \
5656
/mmpretrain_dir/demo/demo.JPEG \

docs/zh_cn/01-how-to-build/rockchip.md

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@ MMDeploy 支持把模型部署到瑞芯微设备上。已支持的芯片:RV112
6363
2.2 参考表中的安装指南,安装 RKNN python 安装包。建议在安装时,使用选项 `--no-deps`,以避免依赖包的冲突。以 rknn-toolkit2 为例:
6464

6565
```
66-
pip install packages/rknn_toolkit2-1.2.0_f7bb160f-cp36-cp36m-linux_x86_64.whl --no-deps
66+
pip install packages/rknn_toolkit2-1.4.0_22dcfef4-cp36-cp36m-linux_x86_64.whl --no-deps
6767
```
6868

6969
2.3 先安装onnx==1.8.0,跟着 [instructions](../01-how-to-build/build_from_source.md),源码安装 MMDeploy。 需要注意的是, MMDeploy 和 RKNN 依赖的安装包间有冲突的内容. 这里提供建议在 python 3.6 环境中使用的安装包版本:
@@ -88,7 +88,7 @@ git clone https://github.com/open-mmlab/mmpretrain
8888
# 执行转换命令
8989
cd /the/path/of/mmdeploy
9090
python tools/deploy.py \
91-
configs/mmpretrain/classification_rknn_static.py \
91+
configs/mmpretrain/classification_rknn-fp16_static-224x224.py \
9292
/the/path/of/mmpretrain/configs/resnet/resnet50_8xb32_in1k.py \
9393
https://download.openmmlab.com/mmclassification/v0/resnet/resnet50_batch256_imagenet_20200708-cfb998bf.pth \
9494
/the/path/of/mmpretrain/demo/demo.JPEG \
@@ -130,8 +130,13 @@ git clone https://github.com/open-mmlab/mmdetection
130130

131131
# 执行转换命令
132132
python tools/deploy.py \
133-
configs/mmpretrain/detection_rknn_static.py \
134-
133+
configs/mmdet/detection/detection_rknn-int8_static-320x320.py \
134+
/the/path/of/mmdet/configs/yolov3/yolov3_mobilenetv2_320_300e_coco.py \
135+
https://download.openmmlab.com/mmdetection/v2.0/yolo/yolov3_mobilenetv2_320_300e_coco/yolov3_mobilenetv2_320_300e_coco_20210719_215349-d18dff72.pth \
136+
/the/path/of/mmdet/demo/demo.jpg \
137+
--work-dir mmdeploy_models/mmdet/yolov3 \
138+
--device cpu \
139+
--dump-info
135140
```
136141

137142
- RTMDet
@@ -299,7 +304,7 @@ export OpenCV_AARCH64_INSTALL_DIR=$(pwd)/install
299304
cd /path/to/mmdeploy
300305
mkdir -p build && cd build
301306
export LD_LIBRARY_PATH=$RKNN_TOOL_CHAIN/lib64:$LD_LIBRARY_PATH
302-
cmake \
307+
cmake ..\
303308
-DCMAKE_TOOLCHAIN_FILE=../cmake/toolchains/rknpu2-linux-gnu.cmake \
304309
-DMMDEPLOY_BUILD_SDK=ON \
305310
-DMMDEPLOY_TARGET_BACKENDS="rknn" \

mmdeploy/backend/rknn/onnx2rknn.py

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
from typing import Optional, Union
33

44
import mmengine
5+
from packaging import version
56
from rknn.api import RKNN
67

78
from mmdeploy.utils import (get_common_config, get_normalization,
@@ -50,10 +51,16 @@ def onnx2rknn(onnx_model: str,
5051
onnx_params = get_onnx_config(deploy_cfg)
5152
quantization_cfg = get_quantization_config(deploy_cfg)
5253

54+
package_info = rknn_package_info()
5355
input_names = onnx_params.get('input_names', None)
5456
output_names = onnx_params.get('output_names', None)
5557
input_size_list = get_backend_config(deploy_cfg).get(
5658
'input_size_list', None)
59+
# rknn-toolkit 1.5+ can not pass input output info, which is weird
60+
if package_info['name'] == 'rknn-toolkit2' and version.parse(
61+
package_info['version']) > version.parse('1.4'):
62+
input_names, output_names, input_size_list = [None] * 3
63+
5764
# update norm value
5865
if get_rknn_quantization(deploy_cfg) is True and model_cfg is not None:
5966
transform = get_normalization(model_cfg)
@@ -85,7 +92,7 @@ def onnx2rknn(onnx_model: str,
8592
if dataset_file is None:
8693
quantization_cfg.update(dict(do_quantization=False))
8794
logger.warning('no dataset passed in, quantization is skipped')
88-
if rknn_package_info()['name'] == 'rknn-toolkit2':
95+
if package_info['name'] == 'rknn-toolkit2':
8996
quantization_cfg.pop('pre_compile', None)
9097
ret = rknn.build(**quantization_cfg)
9198
if ret != 0:

0 commit comments

Comments
 (0)