Release Notes
框架升级
-
本版本主要面向 PaddlePaddle 1.8x 及以前的推理模型
-
注意, MobileConfig 对应的模型格式有变化,必须使用对应版本的 opt 重新转化模型
-
升级执行期模型数据结构,显著提升移动端预测初始化速度,同时也降低了模型存储体积
-
移动端模型存储格式从自建格式
NaiveBuffer
修改为flatbuffers
-
执行期内存消耗最高降低60%
-
移动端模型体积裁剪
-
增强精度 profile 工具,可以通过环境变量控制是否将每层 op 的 output tensor 结果写入到手机目录文件中,方便精度调试 PR4255
-
MobileConfig::SetArmL3CacheSize
:补充四种设置ARM CPU 下 L3 Cache 初始内存大小的方法 (#4402)
enum class L3CacheSetMethod {
kDeviceL3Cache = 0, // Use the system L3 Cache size, best performance.
kDeviceL2Cache = 1, // Use the system L2 Cache size, trade off performance
// with less memory consumption.
kAbsolute = 2, // Use the external setting.
};
struct MobileConfig {
// ...
// danger area
void
SetArmL3CacheSize(L3CacheSetMethod method = L3CacheSetMethod::kDeviceL3Cache,
int absolute_val) {}
// ...
};
文档更新
- 更新 XPU 在 x86 平台的编译文档,修正 opt 工具对 XPU 优化的描述
- 丰富Huawei Kirin(SoC) NPU、MediaTek APU和Rockchip NPU的文档,提供用户能快速验证的样例
功能与性能增强
- 在V7架构上,针对a53 arch 增加6x8gemm优化,提高模型在低端机的性能
- 优化prior box/boxcoder 实现,提高检测模型的性能PR4107
- 添加pass,对于出度为1的reshape op启用memory optimize,在减少内存使用的同时提高性能PR4073
- 添加FP32 的conv+conv融合实现,提高模型性能
- 框架优化:将InferShape方法优化为InferShapeWithCache,降低InferShape执行次数,提高运行速度 (#4416, #4294)
- 在框架上,优化内存,提高模型速度,减少APP中大帧出现的概率
- 修复benchmark无法选中部分int32类型kernel的问题 #4846
- 支持host端的range,crop,expand,stack的int32类型的kernel #4740
- 支持XPU unstack kernel #4892
- 新增 OpenCL auto-tune 特性 #4765
- 新增 OpenCL kernel(三角函数、shuffle_channel、split) #4838,#4782, #4645
- 优化 OpenCL concat 输入 tensor 个数大于 4 时的执行速度 #4779
- MTK APU支持模型缓存#4468
- MTK 新增concat、fusion_elementwise_add_activation、conv2d_transpose op bridge的支持,量化算子支持多个不同scale的输入#4451
硬件模型支持
- 新增比特大陆BM1684(FP32)支持,支持模型同BM1682
- 新增TB-RK1808S0计算棒、RV1126/1109 EVB,优化了文档和示例
- 支持gcn模型:#4444
- 支持车牌识别OCR模型: #4205
Bug fix
- 修复v7-clang 下不对称padding的conv_3x3s1_dw的计算精度, PR4373
- OpenCL tensor 内存分配:修复 OpenCL 模型在开启内存优化后多次 Run 计算结果有误问题 PR4410
- OpenCL OP:修复 dropout, depthwise_conv2d_3x3 (dilation > 1), concat (axis 不等于 1), 分组 conv3x3 在骁龙 625 上结果错误问题 PR4253 PR4281 PR4241 PR4236
- ARM OP:修复
reduce_mean
,sequence_expand_as
算子 PR4492 - Pass:修复 OpenCL 模型转换时类型推导错误的问题 PR4425
- 修复x86平台初始化过程线程不安全问题 #4014
- 修复动态离线量化模型进行conv+conv融合的错误#4292