v2.7-beta
框架升级
-
升级执行期模型数据结构,显著提升移动端预测初始化速度,同时也降低了模型存储体积
-
移动端模型存储格式从自建格式
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) {}
// ...
};
文档更新
性能增强
- 在V7架构上,针对a53 arch 增加6x8gemm优化,提高模型在低端机的性能
- 优化prior box/boxcoder 实现,提高检测模型的性能PR4107
- 添加pass,对于出度为1的reshape op启用memory optimize,在减少内存使用的同时提高性能PR4073
- 添加FP32 的conv+conv融合实现,提高模型性能
- 框架优化:将InferShape方法优化为InferShapeWithCache,降低InferShape执行次数,提高运行速度 (#4416, #4294)
- 在框架上,优化内存,提高模型速度,减少APP中大帧出现的概率
硬件模型支持
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
- Pass:修复 OpenCL 模型转换时类型推导错误的问题 PR4425
- 修复x86平台初始化过程线程不安全问题 #4014
- 修复动态离线量化模型进行conv+conv融合的错误#4292