github PaddlePaddle/Paddle-Lite v2.7

latest releases: v2.14-rc, v2.13-rc, v2.12...
3 years ago

Release Notes

框架升级

  • 本版本主要面向 PaddlePaddle 1.8x 及以前的推理模型

  • 注意, MobileConfig 对应的模型格式有变化,必须使用对应版本的 opt 重新转化模型

  • 升级执行期模型数据结构,显著提升移动端预测初始化速度,同时也降低了模型存储体积

  • 移动端模型存储格式从自建格式 NaiveBuffer 修改为 flatbuffers

  • 执行期内存消耗最高降低60%

    • 优化内存消耗过大算子(#3949
    • 删除内存中冗余ProgramDesc结构(#3976#3984
    • Tensor内存改为动态按需分配(#3948
    • 优化内存复用方法(#4246)
  • 移动端模型体积裁剪

    • opt工具删除模型中的冗余信息(#4042#4052
    • opt转化前采用动态离线量化方法,模型权重压缩为Int8或者Int16,模型体积可以至少减少50%,提升量化模型加载的速度#4308
  • 增强精度 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) {}
  // ...
};
  • 支持gcn模型:#4444
  • 支持车牌识别OCR模型: #4205

文档更新

  • 更新 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

Don't miss a new Paddle-Lite release

NewReleases is sending notifications on new releases.