Skip to content

2.4.0 NNAPI后端/CUDA后端支持量化模型

Compare
Choose a tag to compare
@jxt1234 jxt1234 released this 01 Mar 02:34
dcb080c

一、新特性

  • NNAPI 支持int8 量化模型;
  • MNN OpenCL/Metal支持算子在线Fuse与代码生成;
  • 支持使用cibuildwheel构建Python Wheel包;
  • Github Action支持自动化构建多端库与Whl包;
  • (测试中)CUDA后端支持量化模型运行

二、重构/优化

  • CUDA优化Softmax/DepthwiseConv算子
  • 优化 KernelSize = 3x3 的 OpenCL 卷积算子性能
  • 优化了MaxPool/AvgPool的int8量化计算;
  • 移除原来的LLVMJit, C等Codegen后端;
  • 更新MNN.podspec, MNNBridge.podspec;
  • 增加GELU模块Fuse为GELU算子的功能,Vulkan 和 OpenCL 后端支持 GELU 算子
  • NetModule析构函数中增加gc函降低内存占用;
  • OpenCL支持设置推理低优先级配置;
  • OpenCL updateCache支持异步,降低阻塞时间;
  • fastTestOnnx.py / fastTestTf.py / fastTestTflite.py / fastTestTorch.py 分别更名为 testMNNFromOnnx.py / testMNNFromTf.py / testMNNFromTflite.py / testMNNFromTorch.py
  • Android Demo新增使用README文档;

三、Bugfix

  • 修复Android Demo运行Crash的问题;
  • 修复Metal中的onSync的Bug;
  • 修复Metal多段模型推理的Bug;
  • 修复在Windows下MNN Train的编译问题;
  • 修复perm值非法时的Crash问题;
  • 修复Pad的输入参数为负数时(此时等效为Crop),计算出错的问题
  • 修正 Relu Int8 不支持非对称量化的问题
  • 修正部分AVX2架构的机器上运行量化模型crash的问题
  • 修正Module API 运行静态模型crash的问题
  • 修正Winograd量化过程未使用相同变换矩阵的问题
  • 修正Winograd量化计算多Batch输入错误的问题
  • 修正 OpenCL Relu 算子在 AMD GPU 上段错误的问题
  • 修正 OpenCL ROIPooling 算子实现错误