inference 2018 6 - PaddlePaddle/Paddle GitHub Wiki

Long & Short Plans for Auguest

  • TRT 子图加强,支持更多 layer
  • 已有代码整理与完善
    • 统一 libpaddle_inference_api 和 libpaddle_fluid
    • 增加 inference demo 的 ci
    • transpiler的优化,从python端到C++端
    • 已有code的清理优化(包括anakin的cmake等)
    • 单测的完善(重新测试注释掉的单测)
  • 原生性能优化:
    • 模型性能优化最佳实践,后续会陆续有各种业务模型要求上线优化, CPU/GPU,需要一些总结,提升一个模型可以优化多个 op
      • 提升预测方便程度,模型训完可以直接预测
      • 系统性优化原生op
    • 核心模型性能差距比Anakin的性能少于50%,扩大模型优化覆盖率,总体上做一些性能优化
  • 较长期目标:
    • 面向目标编程,现有的机器环境也需要完整的性能优化方案,有一个从近到远的聚焦
    • tf serving 类似框架,一劳永逸解决编译问题,提升上线效率
    • 通过 batch 提升/中和性能
    • INT8 inference。
    • JIT 针对AVX2和AVX512的优化,以及未来VNNI指令集优化。
    • lookup table + sequence pool fusion
  • intel合作:
    • 与 MKLDNN 团队分工明确,后续希望能有更多人力聚焦到原生 inference 的框架和优化上
    • MKLDNN 按 Model RoadMap 持续优化
    • ngraph和openvino的支持态度
    • 5117 性能差问题

6/27

Need discussion this week

本周进展

MKLDNN

Merge 一些 op

@intel-team

@luotao

@tangjian

CPU核心模型优化

高层 API

release-note

下周计划

  • 文档添加 F&Q,方便用户查阅

  • TRT engine 添加 demo

  • Intel 沟通 openvolue, ngraph 等在不同机器上的性能指标 @chengsi @intel

  • Paddle serving 与凤巢沟通

  • 发邮件

6/20

Need discussion this week

  • migrate some transpiler to data flow graph framework
  • MKLDNN & MKLML/Openblas性能对比
  • 7.2日intel会议准备。
    • 人员:对方6-8人,波兰经理marcin,ngraph对接人baojun,LiuBrain,Jason等
    • 时间:2小时
    • 内容:下半年2个季度的规划

本周进展

MKLDNN

@intel-team

@tangjian

CPU核心模型优化

高层 API

@chunwei

release-note

下周计划

  • parallel_executor上mklml性能测试 @luotao @zhaochengduo
  • 使用dynamic_loader解决多个MKL库不兼容问题 @tangjian @luotao @intel-huying @intel-liubrain
  • @tangjian 使用dynamic_loader解决 LD PATH问题,相关issue有 #11452 #9034,
    • 除了mklml的so,还需要解决iomp.so和mkldnn.so
    • 同时还需要兼顾 v2的版本,因为需要整个paddle都不添加LD。 @chunwei
  • 合入高层 API 文档
  • TRT 子图增加更多测试,analysis 框架加强稳定性
  • 整体代码整理

6/13

Need discussion this week

  • MKL dynamic link @luotao @tangjian (有风险)
  • parallel_executor的性能 vs V2 性能 (有风险)
  • NLP文本预测,能push上线么?另外一个NLP任务需要拿过来测一下么?
  • 需要实现JIT (just in time)版本的CPU么
  • Large Sparse Matrix support in MKLDNN

Paddle serving @luotao @tangjian @liuyiqun @yanchunwei

整体进展

  • 高层API 90%
    • DONE 确定高层接口
    • DONE 原生实现
    • DOING 阿拉金
  • 子图 35%
    • DOING framework
    • DOING TRT 支持
  • MKLDNN 30%
  • CPU核心模型优化 70%
    • DOING OCR CPU
    • DOING 情感分类 CPU
  • 文档 && CI 40%
    • DONE 旧接口文档初步
    • TODO 新接口文档

本周进展

MKLDNN

高层API

@chunwei

CPU核心模型优化

  • MKLML多线程的加速效果(使用ParallelDo):16线程,加速比不到8。http://agroup.baidu.com/paddlepaddle/md/article/964808 @luotao @tangjian
  • OCR:使用fluid mkl库后 @luotao @OCR-yangjingyuan
    • 车牌识别服务(从fluid的openblas版本换到fluid的mkl版本)精度正常,速度与线上持平。
    • 其他服务(如驾驶证/行驶证(使用其他预测库)精度有损失(某一个指标上差2个点)。@intel-huying,@intel-liubrain讨论:与之前hang的问题类似,由于MKL符号表没有被限制,导致影响其他预测库。解决方案:尝试使用dlopen,即dynamic_loader.
  • NLP:anakin开始复现我们的数据,线上用的v3,v4,5117等cpu,我们测的是V2的cpu。

文档 && CI版本

@luotao

下周计划

  • parallel_executor上mklml性能测试 @luotao @zhaochengduo
  • 使用dynamic_loader解决多个MKL库不兼容问题 @luotao @tangjian @intel-huying @intel-liubrain
  • machine_translation unique key重名问题
  • mnist 手动子图跑通 @chunwei

release-note

6/6

Need discussion this week

  • MKLDNN下次会议时间,周三下午2点以后?
  • inference lib自动部署时,选择MKL静态库进行编译。(Intel已经复现问题,但短期内mklml库修不好)
  • 多线程预测的示例,如何在线程间share全局model。目前的示例是单测形式,还需要增强。@NLP-dongdaxiang etc咨询过。
  • Problem about use_mkldnn flag:https://github.com/PaddlePaddle/Paddle/issues/10765
  • TODO 图像4个 demo

整体进展

  • 高层API 80%
    • DONE 确定高层接口
    • DONE 原生实现
    • DOING 阿拉金
  • 子图 35%
    • DOING framework
    • DOING TRT 支持
  • MKLDNN 30%
  • CPU核心模型优化 70%
    • DOING OCR CPU
    • DOING 情感分类 CPU
  • 文档 && CI 40%
    • DONE 旧接口文档初步
    • TODO 新接口文档

本周进展

MKLDNN

高层API

@tangjian

@chunwei

CPU核心模型优化

  • OCR: @luotao
    • 最新的MKLML库与老版本的MKL静态库的兼容问题(线上服务hang): Intel @[email protected] 已经复现了该问题,并汇报给了MKL组。
    • 给@yangjingyuan提供,使用paddlepaddle/paddle_manylinux_devel:cuda8.0_cudnn5镜像+MKL静态库的编译版本。
  • NLP: @tangjian

文档 && CI版本

@luotao

下周计划

  • 在CI上自动部署使用MKL静态库的paddle预测库。@luotao
  • MKLDNN @luotao @tangjian
    • 6148机器上mkldnn/mklml/openblas在ResNet50/flowers数据集上的性能测试。
    • 增加全局use_mkldnn的环境变量
    • 和Intel Team合作完成MKLDNN layout的一系列代码。
    • 沟通 7.5 的目标,发邮件通知 MKLDNN 团队
  • 高层 API 正式发布 @chunwei
    • 添加使用文档,并弃用旧接口文档,全力推高层 API
    • move contrib/inference to fluid/inference
    • 子图 MLP benchmark
    • 自动子图框架跑通

release-note

⚠️ **GitHub.com Fallback** ⚠️