Skip to content

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

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

[CUDA] [Framework] [FP16] Lite framework support fp16. !3673

  • Report abuse
!3673 已合并 5月 20, 2020 由 saxon_zh@saxon_zh 创建
#<User:0x00007f7df95b0e40>
  • 概览 0
  • 提交 8
  • 变更 29

Created by: jiweibo

【描述】 lite cuda 支持fp16 kernel运行模式。

经过多次实验验证,发现tensor core对于满足特定条件的 mul和conv具有可观的加速,但是对于一个给定的计算shape,无法保证fp16运算一定快于fp32模式。tensor core启用默认条件请参考nvidia文档

此外发现,将其它kernel写成half或half2类型,实际过程中收益甚微,与kernel的计算逻辑有关。模型中还很有可能由于fp32和fp16 kernel之间插入的cast节点 导致耗时更长性能下降

【fp16权重处理】 kernel的weights设置为PRECISION(kFP16)的方式,编译期图分析阶段会默认插入io_copy_once和calib_once op,将cpu上的fp32权重先加载到cuda中,之后进行precision cast操作得到fp16的权重,最后显示删掉cuda fp32中间权重,已经验证支持权重共享的特殊方式。

该Pr仅是框架支持fp16的必要改动,并添加了conv fp16 kernel,方便实验。

指派人
分配到
审核者
Request review from
无
里程碑
无
分配里程碑
工时统计
标识: paddlepaddle/Paddle-Lite!3673
Source branch: github/fork/jiweibo/fp16_framework
渝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