Skip to content

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

P
Paddle
  • 项目概览

PaddlePaddle / Paddle
大约 2 年 前同步成功

通知 2325
Star 20933
Fork 5424
  • 代码
    • 文件
    • 提交
    • 分支
    • Tags
    • 贡献者
    • 分支图
    • Diff
  • Issue 1423
    • 列表
    • 看板
    • 标记
    • 里程碑
  • 合并请求 543
  • Wiki 0
    • Wiki
  • 分析
    • 仓库
    • DevOps
  • 项目成员
  • Pages
P
Paddle
  • 项目概览
    • 项目概览
    • 详情
    • 发布
  • 仓库
    • 仓库
    • 文件
    • 提交
    • 分支
    • 标签
    • 贡献者
    • 分支图
    • 比较
  • Issue 1,423
    • Issue 1,423
    • 列表
    • 看板
    • 标记
    • 里程碑
  • 合并请求 543
    • 合并请求 543
  • Pages
  • 分析
    • 分析
    • 仓库分析
    • DevOps
  • Wiki 0
    • Wiki
  • 成员
    • 成员
  • 收起侧边栏
  • 动态
  • 分支图
  • 创建新Issue
  • 提交
  • Issue看板

Add dygraph execution context !20157

  • Report abuse
!20157 已合并 10月 03, 2019 由 saxon_zh@saxon_zh 创建
#<User:0x00007f7e05a68788>
  • 概览 56
  • 提交 61
  • 变更 103

Created by: phlrain

Add dygraph execution context

目前的 OperatorBase 以及ExecutionContext 是为静态图模式设计,这种设计对于动态图不是非常的高效

这个pr做了两件事情

  1. OperatorBase支持空的 input,output,attribute,OperatorBase中的input output 是string 到 vector的映射,动态图不会构造这个数据,如果特意构造会带来性能的影响;而且OperatorBase在动态图模式下会被频繁的构造和析构,input, output 的构造和析构 都带来一些开销 在一些的op实现中,通过ExecutionContext中 const OperatorBase& op() 接口来获取 var_name, 比如 ctx.op().input("X") 来获取 X 的var_name, 由于动态图不会传入input和output, ctx.op().input("X") 就会出错, 在ExecutionContext新增 InputName 来解决这种需求问题。

  2. 新增了动态图的DygraphInferShapeContext 和 DygraphExecutionContext,这两个都是基于现有的模块进行继承,主要是为了提高动态图的执行效率。

此pr会使ptb c++ 单测的时间从115 下降到76

整个任务训练时间 ptb任务的一个epoch训练时间从 350s 下降到240s

由于动态图不支持lod tensor,关闭了一些op 在输入为lod tensor情况下动态图的测试 列表如下 test_seq_pool test_gru_op test_cumsum_op test_row_conv_op test_sequence_expand_as test_var_conv_2d test_fused_embedding_fc_lstm_op test_collect_fpn_proposals_op test_lstmp_op test_add_position_encoding_op test_sequence_unpad_op test_one_hot_v2_op test_lstm_op test_sequence_pad_op test_fill_op test_iou_similarity_op test_fusion_gru_op test_sequence_expand test_fusion_lstm_op test_sequence_reverse test_cvm_op test_fusion_seqexpand_concat_fc_op test_warpctc_op test_sequence_scatter_op test_match_matrix_tensor_op test_one_hot_op test_attention_lstm_op

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