- 17 9月, 2021 1 次提交
-
-
由 wuhuanzhou 提交于
#### 背景 #35602 提供Python侧开发子图替换类Pass的方式: - 利用Paddle Python API或者辅助类型定义子图program用来匹配/替换图; - Python侧注册Pass时,将注册函数最终转换为protobuf定义的PassDesc数据形式,供C++侧进行解析完成Pass实例注册。 本PR即为根据PassDesc规则描述解析生成Pass实例。 #### 方案设计 ##### Pass规则验证 在以往的Pass开发中,会存在随着算子迭代引发的匹配失效或者错误匹配的问题,该问题可以通过扫描算子支持的参数设置及参数类型等来判断是否应该使用该Pass或者给出提示需要修改Pass代码。 当前Pass开发中提供了算子兼容性OpCompatSensiblePass用于解决上述问题。但同时还存在不足:由于以往Pass开发在运行时才能获取到pattern信息,所以需要在执行Pass时才可以判断。 使用PassDesc表示的Pass可以在执行Pass前验证上述问题,这个过程在VerifyDesc中完成。 ##### 根据匹配子图构造pattern GeneratePass对于图匹配和替换使用GraphPatternDecetor完成,构造匹配pattern实际上就是将对应对象成员PDPattern中添加PDNode和边关系。该过程在函数`InitGeneratePattern`中完成,该函数没有作为GeneratePass的成员方法,主要出于后续可能开发新的Decetor考虑,GeneratePass与Decetor的操作是没有关联的。 初始化pattern主要通过遍历匹配子图program的全部算子实现: 1. 添加当前算子对应PDNode及限制条件(算子类型、属性限制等); 2. 遍历当前算子对应输入并从pattern中尝试获取PDNode: - 在pattern中获取到PDNode且为输出节点:表示属于匹配子图的中间节点,将该PDNode设置为中间节点; - 在pattern中没有获取到PDNode:添加该输入PDNode并设置作为输入节点; - 设置输入到算子的边关系; 3. 遍历当前算子对应输出: - 在pattern中获取到PDNode且为输入节点:表示属于匹配子图的中间节点,将该PDNode设置为中间节点; - 在pattern中没有获取到PDNode:添加该输入PDNode并设置作为输出节点; - 设置算子到输出的边关系; ##### 根据替换子图操作graph 替换子图操作的过程在`GetGenerateRewrite`函数中完成,与`InitGeneratePattern`类似没有作为GeneratePass的成员方法。 生成替换子图操作过程如下: 1. 判断冗余替换子图; 2. 遍历替换子图program的全部算子添加替换子图Node: 1. 添加当前算子的Node及属性设置; 2. 遍历当前算子对应输入,添加中间variable节点; 3. 遍历当前算子对应输出,添加中间variable节点; 4. 添加输入/输出节点与算子节点的边关系; 3. 删除匹配图中属于中间节点的Node; ##### 优化子图验证 对于替换子图或者替换后的计算图是否可以正确运行等,可以在执行Pass时验证,从而防止在后续执行计算图时出现异常。 当前Pass执行直接修改计算图,验证失败时无法很好的完成还原操作,目前子图验证暂时默认成功,留到后续改进。
-
- 14 9月, 2021 1 次提交
-
-
由 JingZhuangzhuang 提交于
* add dropout convert test * modify dropout convert test Co-authored-by: Nxiaoxiaohehe001 <hiteezsf@163.com>
-
- 13 9月, 2021 1 次提交
-
-
由 lidanqing 提交于
-
- 11 9月, 2021 1 次提交
-
-
由 王明冬 提交于
-
- 08 9月, 2021 1 次提交
-
-
由 Zeng Jinle 提交于
* add fleet api for program pass * turn on apply pass for CI test * fix disable fuse_all_optimizer bug * try to test ci * fix CI * fill unspecified op role * fix fuse_allreduce * add ut to improve coverage * remove useless change * improve c++ coverage * follow some comments * test ir pass pipeline * update doc * reduce ut time again
-
- 07 9月, 2021 1 次提交
-
-
由 ceci3 提交于
-
- 06 9月, 2021 1 次提交
-
-
由 joanna.wozna.intel 提交于
* Add fusion_lstm INT8 PTQ * Correct mkldnn_cache_capacity and enable fc_lstm_fuse_pass only for this test * Change mkldnn_cache_capacity
-
- 31 8月, 2021 1 次提交
-
-
由 王明冬 提交于
-
- 30 8月, 2021 1 次提交
-
-
由 ceci3 提交于
* update ernie int8
-
- 27 8月, 2021 1 次提交
-
-
由 joanna.wozna.intel 提交于
* Add calculation for gru op * Correct the types * Remove mkldnn only * Correct mkldnn ifdef * Remove mkldnn ifdef * Separate mkldnn quantizer test * Correct Windows test * Check different cmake fix * Revert cmake change * Cmake change 2 * Cmake change 3
-
- 26 8月, 2021 2 次提交
- 24 8月, 2021 1 次提交
-
-
由 王明冬 提交于
-
- 23 8月, 2021 1 次提交
-
-
由 Wilber 提交于
-
- 17 8月, 2021 2 次提交
-
-
由 chentianyu03 提交于
* copy boost optional.hpp to paddle * copy boost optional.hpp to paddle * move directions * del fluid/utils * modify .hpp to .h * move directions * modify to paddle::optional * add modification description * format code stype for the files in paddle/utils * format code stype
-
由 Zeng Jinle 提交于
* add inplace passes and tests * update * fix use_cuda undefined fix compile error of op compat * add more ut * fix CPU CI error * check adam unique * fix mac/windows ci, improve coverage * fix ci error * follow weihang's comment * fix BlockDesc::MoveFrom * follow qiuliang's comment * update * follow huihuang's comments
-
- 16 8月, 2021 1 次提交
-
-
由 joanna.wozna.intel 提交于
* Remove force_fp32_output from elementwise_add quantization * Fix cpu_quantize_placement test * Review related changes
-
- 11 8月, 2021 1 次提交
-
-
由 Wangzheee 提交于
* fix_fc_reshape_convert * fix
-
- 10 8月, 2021 1 次提交
-
-
由 chentianyu03 提交于
* add any.hpp to utils and replace boost::any with self defined paddle::any * add copy any.hpp to custom op depends * modify any.hpp include path * remove boost from setup.py.in * add copy any.hpp to custom op depends * move any.hpp to paddle/utils/ dirs * move any.h to extension/include direction * copy utils to right directions
-
- 06 8月, 2021 2 次提交
- 05 8月, 2021 2 次提交
-
-
由 chentianyu03 提交于
* replace boost::algorithm::ends_with with self define ends_with function * remove BOOST macro in certain operators * remove boost::lexical_cast * add test for string_helper * add more test case for string_helper * modify join_string func and test case * fix build_strategy_test failed bug * remove string_helper_test from parallel_UT_rule.py
-
由 王明冬 提交于
-
- 02 8月, 2021 2 次提交
-
-
由 Zeng Jinle 提交于
* add basic APIs * add attr_types * follow comments * change pass attr types * add set pass attribute codes * refine PADDLE_THROW
-
由 Huihuang Zheng 提交于
The comment background message is too long, see details at https://github.com/PaddlePaddle/Paddle/pull/34521
-
- 30 7月, 2021 2 次提交
-
-
由 Huihuang Zheng 提交于
-
由 jakpiase 提交于
* test version of matmul_v2 * added matmul_v2 grad kernel * minor changes * minor changes * minor change for CI approval * CI fix * CI fix * added squeeze and squeeze2 kernels * CI fix * CI fix * CI fix * disabled tests when compiled with cuda * added setting format_tag by strides * added sigmoid BF16 FWD/BWD and gelu BF16 BWD * changes after review * Revert "added sigmoid BF16 FWD/BWD and gelu BF16 BWD" This reverts commit 6e3f76720b545abfcff9f6052b46b73a1e745cae. * Revert "Merge branch 'matmul_v2_grad' into squeeze2_op" This reverts commit 06fcf67843a4a7884eccdf67a02a03575e1d4cb8, reversing changes made to 6e3f76720b545abfcff9f6052b46b73a1e745cae. * minor change * added reshape1/2 kernels * moved some functions into private block * CI fix * CI fix * CI fix
-
- 29 7月, 2021 2 次提交
-
-
由 Zeng Jinle 提交于
* add fix op run order pass * add ut for fix_op_run_order * fix ci error * improve coverage * improve coverge again and fix cpu test case * follow some comments
-
由 Huihuang Zheng 提交于
As the title
-
- 28 7月, 2021 2 次提交
-
-
由 jiangcheng 提交于
See https://github.com/PaddlePaddle/Paddle/pull/33949 for details
-
由 Wangzheee 提交于
-
- 22 7月, 2021 1 次提交
-
-
由 王明冬 提交于
-
- 21 7月, 2021 1 次提交
-
-
由 王明冬 提交于
-
- 20 7月, 2021 1 次提交
-
-
由 Pei Yang 提交于
-
- 16 7月, 2021 1 次提交
-
-
由 levi131 提交于
As the title, this PR converts all blocks in program into SSA sub graphs and it is guarded by flag
-
- 15 7月, 2021 2 次提交
-
-
由 王明冬 提交于
[pass enhance] make the attribute check only object to which defined in op proto. test=develop (#34146)
-
由 Aurelius84 提交于
* Refine Constructor logic of ParallelExecutor * Replace executor into ParallelExecutor in run_program_op
-
- 13 7月, 2021 1 次提交
-
-
由 王明冬 提交于
-
- 09 7月, 2021 1 次提交
-
-
由 feng_shuai 提交于
-
- 08 7月, 2021 1 次提交
-
-
由 dyning 提交于
-