Skip to content

  • 体验新版
    • 正在加载...
  • 登录
  • PaddlePaddle
  • Paddle-Lite
  • 合并请求
  • !3924

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看板

[OPENCL] remove conv redundant's for opencl kernel. test=develop !3924

  • Report abuse
!3924 已合并 7月 09, 2020 由 saxon_zh@saxon_zh 创建
#<User:0x00007ff7cc5d82b8>
  • 概览 5
  • 提交 3
  • 变更 13

Created by: ysh329

状态:等待review

主要内容

1. 去掉OpenCL Conv计算期的所有冗余

这部分有:权重相关的部分(由PrepareForRun来做,且该方法只会执行一次),输入输出相关的部分(考虑变化的输入大小,由ReInitWhenNeeded来做,同时其中也有一个GlobalWorkSize的计算,因为gws也和输入输出的大小有关)。

其中包括不限于:

  1. 冗余的param结构体参数解包,改为在PrepareForRun和ReInitWhenNeeded做,同时将后续setArg时用到的参数全部挂载到class kernel上;
  2. arg_idx++。全部替换为数字常量,这样setArg过程,不做++等计算;
  3. 对于input_c_block_的计算,前置放到GlobalWorkSize里;
  4. 对于cl函数定义都包含bias,对应cl kernel文件里函数传参的地方不用宏判断bias,默认都传递bias。当has_bias_为false时,给定默认的bias image占位,大小为宽高为1x1的image。

2. 其它

tune拼写错误修正;

自测

  1. conv单测:都跑了loop_test,只有conv3x3目前会挂,对比了改前,会挂在相同的地方;
  2. 变化大小的输入:测试超分uint8输入输出,在同一个Predictor下,先小的输入尺寸(输入为255 / 3),后Resize为大的输入尺寸(并修改input data的值为 255 / 2),两个尺寸下的计算结果都正确。
指派人
分配到
审核者
Request review from
无
里程碑
无
分配里程碑
工时统计
标识: paddlepaddle/Paddle-Lite!3924
Source branch: github/fork/ysh329/remove-conv-prepare-opencl
渝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