Skip to content

  • 体验新版
    • 正在加载...
  • 登录
  • PaddlePaddle
  • Paddle-Lite
  • Issue
  • #2871

P
Paddle-Lite
  • 项目概览

PaddlePaddle / Paddle-Lite

通知 338
Star 4
Fork 1
  • 代码
    • 文件
    • 提交
    • 分支
    • Tags
    • 贡献者
    • 分支图
    • Diff
  • Issue 271
    • 列表
    • 看板
    • 标记
    • 里程碑
  • 合并请求 78
  • Wiki 0
    • Wiki
  • 分析
    • 仓库
    • DevOps
  • 项目成员
  • Pages
P
Paddle-Lite
  • 项目概览
    • 项目概览
    • 详情
    • 发布
  • 仓库
    • 仓库
    • 文件
    • 提交
    • 分支
    • 标签
    • 贡献者
    • 分支图
    • 比较
  • Issue 271
    • Issue 271
    • 列表
    • 看板
    • 标记
    • 里程碑
  • 合并请求 78
    • 合并请求 78
  • Pages
  • 分析
    • 分析
    • 仓库分析
    • DevOps
  • Wiki 0
    • Wiki
  • 成员
    • 成员
  • 收起侧边栏
  • 动态
  • 分支图
  • 创建新Issue
  • 提交
  • Issue看板
已关闭
开放中
Opened 2月 13, 2020 by saxon_zh@saxon_zhGuest

[dev] OpenCL Image2D跑通并验证5个高优模型

Created by: ysh329

背景

目前OpenCL Image2D高优Kernel已经合如develop完成。需要对5个高优模型尝试以Image2D形式跑通,这5个模型分别是:

  1. MobileNetV1;
  2. MobileNetV2;
  3. MnasNet;
  4. yolonano;
  5. video-sr。

工作量

  1. 【已完成】对OpenCL NCHW形式的Kernel注册部分,进行注释,避免与ImageDefault在选Kernel时发生选择冲突或影响;
  2. 【已完成】以Float Image2D形式跑通并验证结果:该过程将在下面详细说明;
  3. 【已完成】该过程可能会修改Pass以适配转换目标为Image2D OpenCL的模型;
  4. 【进行中】错误模型定位与修复(lens_mnasnet、lens_yolonano):Fluid与lite每层输出结果比较,lite::Tensor * Predictor::GetTensor(string)的接口;
  5. 【已完成】Float到FP16的支持:Kernel层面、框架层面。详见FP16支持方案(见后文);
  6. 【TODO】所有高优Kernel负责人自查对应单测在FP16下是否正确;
  7. 【TODO】以Image2D FP16,跑通5个高优模型并检查精度是否符合;
  8. 【TODO】超分模型video-sr计算过程会有维度变化,需要实现Conv、Fc等Kernel的ReinitWhenNeeded方法,参考CPU conv: https://github.com/PaddlePaddle/Paddle-Lite/search?q=ReInitWhenNeeded&unscoped_q=ReInitWhenNeeded。

模型验证流程

  1. 模型转换:使用model_optimize_tool对模型转换,target选择opencl。查看该过程:     a. Static pick kernel pass过程选择的kernel是否正确:是否是opencl/image2d的     b. 根据log打印出来的图,查看拓补图对于layout op加入是否正确。
  2. 模型单测:针对模型实现对应单测:需事先跑fluid拿到验证数据,再跑opencl结果,并做二者结果验证,流程仿./lite/api/mobilenetv1_test.cc,该过程使用优化过的naive_buffer格式的模型,因此需事先做模型转换(见步骤1)。

注:

  1. 步骤1-模型转换,需要所有高优OP合入(目前尚未合入的有scale、concat、sigmoid);
  2. conv3x3在5个模型(mobilenetv1/v2、超分、mnasnet、YOLONano)中都有用到,正在加,但并不影响模型转换。

后续工作

该过程会建立新看板issue页面,不在本看板跟进。

  1. 将Image2D Float Kernel全部改为Image FP16 Kernel;
  2. 验证kernel单测正确性;
  3. 跑通并验证5个模型正确性。
指派人
分配到
无
里程碑
无
分配里程碑
工时统计
无
截止日期
无
标识: paddlepaddle/Paddle-Lite#2871
渝ICP备2023009037号

京公网安备11010502055752号

网络110报警服务 Powered by GitLab CE v13.7
开源知识
Git 入门 Pro Git 电子书 在线学 Git
Markdown 基础入门 IT 技术知识开源图谱
帮助
使用手册 反馈建议 博客
《GitCode 隐私声明》 《GitCode 服务条款》 关于GitCode
Powered by GitLab CE v13.7