New
v0.1.5
MegCC
Highlight
增加了 AArch32 Int8 NCHW44 的支持,优化了 AArch32 模式下量化模型的速度。
Bug Fixes
基础组件
- 修复在 DimShuffle 的前后均不是 reshape 时程序挂掉的问题以及 SubTensor 逆序切片时计算出错的问题。
- 修复用户无法在 rsicv 平台编译 runtime 代码的 bug。
compiler-kernel
- 添加部分 cv 算子缺失的函数声明。
- 修复头文件(math.h)缺失导致变异得到的二进制文件出错的问题。
- 修复 arm64 qint 算子计算精度与 x86 无法对齐的问题。
- 支持 elemwise erf。
complier-通用
- 修复模型编译 json 必要配置项和命令行必要配置项(model_path)不一致的问题。
- 修复 ENABLE_MGE_FP16_NCHW88 的错误使用导致 benchmark 报错的问题。
- 修复 mgb-to-tinynn 无法处理多组输入 shape 的 hako 加密模型的 bug。
- 增加对用户输入的 loader 的 output shapes 参数的正确性验证,若有误,将给出正确的参数值并 crash。
runtime
- 为 tinnynn_fopen 添加报错信息,在 runtime 编译添加 build_with_dump_tensor 编译选项时更容易定位错误。
- 修复连续多次调用 LITE_get_io_tensor 时,每次调用须释放上一次获取到的 ComboIOTensor 的限制,本次修复后,您可以多次连续调用 LITE_get_io_tensor 获取不同的 tensor 且无须调用 LITE_destroy_tensor。
- 修复了 LITE_destory_network 接口释放用户传入的存储模型文件的内存,可能引起的 crash,因此您需要自行释放存储模型文件的 buffer,否则可能会造成内存泄漏。
- 由于未规划 input tensor 的内存,禁止向 input tensor 拷贝数据的行为,做了以下限制:只能使用 LITE_reset_tensor_memory设置 input tensor 的内存。
- 修复 runtime example 不指定输入时,input tensor 为 NULL 引起的 segment fault 的问题。
New Features
基础组件
- 支持用户指定文件作为对分脚本的输入,以避免随机生成数据导致对分过不了的问题。
- 添加 runtime docker,以解决 runtime NON_STAND_OS 无法编译的问题。
complier-kernel
- 新增 int8 channelwise 5x5 卷积 kernel。
- 新增 gi channelwise k5s2 f32/f16 kernel 与 arm64 m8n8 f16 kernel。
- 新增 float cv resize kernel。
- 新增 int8 nchw44 direct 卷积算子。
- 新增 int8 nchw44 hybird 卷积算子。
- 添加 Int8 NCHW44 Winograd F23 算子。
- 支持 adaptive pooling 算子。
- 支持 Int8 NCHW44 pooling 算子。
- 增加 IndexingMultiAxis 算子支持的 dtype。
- 增加 fp16 Argsort/Elemwise/IndexingMultiAxisVec/Pooling/PowC/Topk/TypeCvt/WarpPerspective kernel。
- 增加 gray2rgb 算子。
- 添加 aarch32 conv1x1 kernel。
complier-通用
- 为适应 megcli 仅支持给 mgb-to-tinynn 传入json 配置文件的用法,将所有必要的 mgb-to-tinynn 命令行选项加入 json 中,且 mgb-to-tinynn 添加了生成 json 模版的功能。
runtime
- 支持 runtime 编译同时输出静态库和动态库。
MegCC
Highlight
breaking change
Bug Fixes
基础组件
- Fix the problem that the program hangs up when the front and rear of DimShuffle are not reshape, and the problem of calculation error when SubTensor slices in reverse order.
- Fix the bug that users can't compile runtime code in rsicv platform.
compiler-kernel
- Add the missing declaration of some cv operator.
- Fix the problem that the missing header file (math.h) causes errors in the binary file obtained by mutation.
- Fix arm64 qint compute algorithm to get the nearest result with x86.
- support elemwise erf mode
complier-通用
- Fix the inconsistency between the necessary configuration items for model compilation json and the required configuration items for the command line (model_path).
- Fix benchmark option error when ENABLE_MGE_FP16_NCHW88 is defined to 0.
- Fix the bug that mgb-to-tinynn cannot handle hako encrypted models with multi-group input shape.
- Verify the correctness of the output shapes parameter of the loader provided by the user, if there is an error give the correct parameter value and crash.
runtime
- Add an error message for tinynn_fopen, and it is easier to locate errors when adding the build_with_dump_tensor compilation option to runtime compilation.
- Fix the bug that calling LITE_get_io_tensor multiple times to get different tensor causes unknown behavior. After the fix, you can call LITE_get_io_tensor multiple times to get different tensors without calling LITE_destroy_tensor.
- Fixed the LITE_destory_network interface to release the memory of the storage model file passed in by the user, which may cause a crash. (Therefore, you need to release the buffer storing the model file by yourself, otherwise it will cause a memory leak).
- Since the memory of the input tensor is not planned, the behavior of copying data to the input tensor is prohibited, and the following restrictions are imposed: only LITE_reset_tensor_memory can be used to set the memory of the input tensor.
- Fix bug that the pointer of input tensor is NULL if there is no input data.
New Features
基础组件
- Supports user-specified files as input to the script for comparison results.
- Add runtime docker to solve the problem of runtime cannot be compiled in some environments.
complier-kernel
- Add init8 channel-wise conv 5x5 kernel.
- Support gi channelwise k5s2 f32/f16 kernel and arm64 m8n8 f16 kernel.
- Support float cv resize.
- Add int8 nchw44 hybrid conv kernel.
- Add int8 nchw44 direct conv kernel.
- Add Int8 NCHW44 Winograd F23 operator.
- Support adaptive pooling operator.
- Support Int8 NCHW44 pooling operator.
- Added dtype supported by IndexingMultiAxis operator.
- Add fp16 Argsort/Elemwise/IndexingMultiAxisVec/Pooling/PowC/Topk/TypeCvt/WarpPerspective kernel.
- Add gray2rgb operator.
- Add aarch32 conv1x1 kernel.
complier-通用
- In order to adapt to the usage that megcli only supports importing json configuration files to mgb-to-tinynn, all necessary mgb-to-tinynn command line options are added to json; mgb-to-tinynn adds the function of generating json templates;
runtime
- Support runtime compilation to export both static and dynamic libraries.