Skip to content

2023飞桨黑客松护航计划‐IR PASS专项

zhangyuqin1998 edited this page Oct 12, 2023 · 15 revisions

零、环境准备

  1. 机器申请 Ai-studio开发机器申请链接

  2. 编译Paddle

cmake ..  -GNinja -DPY_VERSION=3.8 -DON_INFER=ON -DWITH_TESTING=ON -DWITH_INFERENCE_API_TEST=OFF -DWITH_MKL=ON -DWITH_GPU=ON -DWITH_MKLDNN=ON -DWITH_CUSTOM_DEVICE=OFF -DWITH_DISTRIBUTE=OFF

一、参考学习文档

IR&Pass Infra 相关

Phi 算子库及定义 Codegen 相关

二、工作内容

Fuse kernel 迁移至 Phi 与新 IR Fuse op 定义自动生成 @Xinyu302

编号 Op 后端 所属pass PR
示例 multihead_matmul gpu multihead_matmul_fuse_pass.cc PR#56846 
示例 conv2d_fusion gpu conv_elementwise_add_act_fuse_pass.cc  
1 fused_multi_transformer gpu fuse_multi_transformer_layer_pass.cc  
2 fused_multi_transformer_int8 gpu fuse_multi_transformer_layer_pass.cc  
3 fused_embedding_eltwise_layernorm gpu embedding_eltwise_layernorm_fuse_pass.cc PR#57865 
4 fusion_transpose_flatten_concat gpu transpose_flatten_concat_fuse_pass.cc PR#57865 
5 skip_layernorm gpu skip_layernorm_fuse_pass.cc  
6 fusion_transpose_flatten_concat gpu transpose_flatten_concat_fuse_pass.cc  
7 fc cpu/gpu fc_fuse_pass.cc  
8 fused_bias_dropout_residual_layer_norm gpu preln_residual_bias_fuse_pass.cc  
9 fused_bn_add_activation gpu fuse_bn_add_act_pass.cc  
10 fused_fc_elementwise_layernorm gpu fc_elementwise_layernorm_fuse_pass.cc PR#57865 
11 fused_feedforward gpu fused_feedforward_pass.cc  
12 fused_attention gpu fused_attention_pass.cc  
13 self_dp_attention cpu self_attention_fuse_pass.cc  
14 fusion_repeated_fc_relu cpu repeated_fc_relu_fuse_pass.cc  
15 fusion_gru cpu fc_gru_fuse_pass.cc  
16 fusion_seqconv_eltadd_relu cpu seqconv_eltadd_relu_fuse_pass.cc  
17 fusion_seqexpand_concat_fc cpu seq_concat_fc_fuse_pass.cc  
18 fusion_squared_mat_sub cpu squared_mat_sub_fuse_pass.cc  
19 fusion_seqpool_concat cpu seqpool_concat_fuse_pass.cc  
20 fusion_seqpool_cvm_concat cpu seqpool_cvm_concat_fuse_pass.cc

Pass 推全

  1. TODO

常量折叠 Pass 与新 IR Infra 关键机制设计与实现 @zhangyuqin1998

  1. 根据常量折叠Pass的需求对新IR中Parameter的机制与管理方式重新进行设计(需要熟悉训练和推理场景下IR Program的加载、保存、执行等关键流程)
  2. 设计机制支持Op在Pass阶段进行常量计算

新IR Pass 推理单测基础设施搭建 @Xinyu302

在Python端打通新IR跑模型推理的流程(包括:模型加载,模型转换为新IR,Pass优化,模型推理执行),并封装为通用接口用于后续Pass推全时进行模型的批量验证。