Skip to content

v2.6.0

Compare
Choose a tag to compare
@Superjomn Superjomn released this 18 May 14:13
· 26 commits to release/v2.6.0 since this release
6b8bf87

v2.6.0

功能升级

  • 框架易用性
    • Paddle-Lite 编译脚本优化:Android,iOS,ArmLinux 平台各拆分出单独编译脚本,简化单个平台的编译
    • Paddle-Lite 支持Python预测库编译于安装:支持在Windows10、x86 Linux、Mac 、Armlinux安装python版本paddle-Lite
  • 框架功能
    • 增加分割子图功能。对于以子图接入方式lite的模型,通过配置文件手动切分子图,让指定OP跑在host端,以提高性能(在 CUDA ssd_mobilenet_v1 模型,加速约4.3倍)。
    • Paddle-Lite x86 平台优化:降低预测库体积(200M 降低到 16M),预测时支持关闭日志(--shutdown_log=ON)、full_api 支持多线程共享模型权重参数、新增x86 cxx_demo
  • 框架平台及硬件
    • 新增RK 1808 NPU,支持全量化MobileNetV1模型,已提供文档和demo

    • 新增MTK MT8175 APU,支持全量化MobileNetV1模型,已提供文档和demo

    • 新增XPU Kernel接入方式,支持ERNIE、ResNet-50和BERT模型

    • 新增寒武纪MLU270,支持一下模型:Resnet50(int8)、Senet101(int8)

    • 新增比特大陆BM1682,支持以下模型: Mobilenet、Yolov3、Mobilenet-ssd、Inceptionv4、Vgg16、DarkNet-YOLOv3、PyramidBox。

    • 移动端GPU(opencl):支持模型mobilenetv1/v2、GAN相关、mnasnet、sqeueezenet、shufflenet、resnet、unet、vgg16

    • NVidia GPU: 增加exec多流支持,对于存在并行性的模型结构,相对单流预计有5-15%的性能提升,对于常见视觉模型,一般不具有并行性结构,开启多流无收益。cuda平台下打开多流功能config.set_multi_stream(true)

    • 华为NPU:
      - benchmark模型(mobilenet_v1,mobilenet_v2,squeezenet_v1.1,mnasnet,shufflenet_v2),提速5-10倍
      - 支持缓存不同尺寸的NPU模型,提升可变输入尺寸模型的性能

    • 支持Python安装:可以在PC Linux/Windows/Mac 上安装Paddle-Lite Python 库;Python 可以调用Lite opt 优化模型

    • 支持windows 编译: 可以在windows环境编译Paddle-Lite ,当前windows环境只支持x86 编译

    • 优化支持无校准训练后量化方法产出的量化模型,常见分类模型量化到8bit,精度损失从2%减小到0.1%。

  • Demo

性能优化

  • Paddle-Lite 框架 InferShape部分耗时降低: Predictor 连续运行时,InferShape 总耗时降低(特定模型,0.25ms 降低到 0.08ms)
  • OpenCL 部分kernel支持动态 shape并将部分计算移到ReinitWhenNeeded。fc_buffer、elementwise_add、scale、activation、grid_sampler
  • 优化sgemm在低端机上的性能表现
  • 优化Precision Profiler功能。排版优化,新增支持标准差属性、增长率属性(在均值和标准差一样时,可以比较顺序),支持对OpenCL的Image/Buffer的每层output的精度打印,支持将每层的精度结果(最终的precision summary)写入手机设备上,便于APP调试,将精度打印与原有统计耗时的profiler的依赖分开

Bug fix

  • 修复conv op的激活act_type未初始化导致的不同Predictor结果随机的问题
  • 修复opencl kernel。bilinear kernel在mali gpu上兼容性问题、instance norm计算结果不对的问题、reshape的kernel注册错误导致模型转换失败问题、exp和tanh找不到kernel的导致注册kernel名写错绑定模型op失败问题
  • 修复opencl在mali gpu的执行计算结束卡主的问题
  • 修复opencl的资源相关问题。隔离每个Predictor中每个cl::kernel/cl::program等资源