From ee857fc18339798a8d88366b3e37728ae40da31f Mon Sep 17 00:00:00 2001 From: sanbuphy Date: Wed, 1 Mar 2023 14:27:25 +0800 Subject: [PATCH 01/16] add 0302 meeting --- .../2023/2023-03-02-meeting-agenda.md | 42 +++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 pfcc/meetings/2023/2023-03-02-meeting-agenda.md diff --git a/pfcc/meetings/2023/2023-03-02-meeting-agenda.md b/pfcc/meetings/2023/2023-03-02-meeting-agenda.md new file mode 100644 index 000000000..69d4c754e --- /dev/null +++ b/pfcc/meetings/2023/2023-03-02-meeting-agenda.md @@ -0,0 +1,42 @@ +# Paddle Framework Contributor Club 第十七次会议 + +- 本次会议时间:2022-03-02 19:00 + +- 本次会议接入方式: + + - 腾讯会议: + - 会议密码:\*\*\*\*(群内通知) + - [点击链接入会](https://meeting.tencent.com/dm/lZqQq3mMrWST),或添加至会议列表 + +- 本次会议主席:卢雨畋([sanbuphy](https://github.com/sanbuphy)) + +- 本次会议副主席: + +- 本次拟参会 Paddle Framework Contributor 列表: + + | | | | | | | +| ------------------------------------------------- | ----------------------------------------------------- | --------------------------------------------------------- | ----------------------------------------------------- | --------------------------------------------------- | ------------------------------------------------- | +| [jzhang533](https://github.com/jzhang533) | [jeff41404](https://github.com/jeff41404) | [luotao1](https://github.com/luotao1) | [Ligoml](https://github.com/Ligoml) | [TCChenlong](https://github.com/TCChenlong) | [guguguzi](https://github.com/guguguzi) | +| [S-HuaBomb](https://github.com/S-HuaBomb) | [Asthestarsfalll](https://github.com/Asthestarsfalll) | [BrilliantYuKaimin](https://github.com/BrilliantYuKaimin) | [Li-fAngyU](https://github.com/Li-fAngyU) | [liqitong-a](https://github.com/liqitong-a) | [unseenme](https://github.com/unseenme) | +| [isLinXu](https://github.com/isLinXu) | [greatv](https://github.com/greatv) | [SigureMo](https://github.com/SigureMo) | [jinyouzhi](https://github.com/jinyouzhi) | [gsq7474741](https://github.com/gsq7474741) | [thunder95](https://github.com/thunder95) | +| [chenyanlann](https://github.com/chenyanlann) | [yangguohao](https://github.com/yangguohao) | [xiaoguoguo626807](https://github.com/xiaoguoguo626807) | [Liyulingyue](https://github.com/Liyulingyue) | [GeYuYao-hub](https://github.com/GeYuYao-hub) | [fuqianya](https://github.com/fuqianya) | +| [liyongchao911](https://github.com/liyongchao911) | [Yulv-git](https://github.com/Yulv-git) | [Patrick-Star125](https://github.com/Patrick-Star125) | [nlp-zn](https://github.com/nlp-zn) | [OccupyMars2025](https://github.com/OccupyMars2025) | [OuyangChao](https://github.com/OuyangChao) | +| [yang131313](https://github.com/yang131313) | [gglin001](https://github.com/gglin001) | [tizhou86](https://github.com/tizhou86) | [Ainavo](https://github.com/Ainavo) | [ReganYue](https://github.com/ReganYue) | [mrcangye](https://github.com/mrcangye) | +| [peachlcy](https://github.com/peachlcy) | [Rayman96](https://github.com/Rayman96) | [zrr1999](https://github.com/zrr1999) | [xiaohemaikoo](https://github.com/xiaohemaikoo) | [engineer1109](https://github.com/engineer1109) | [enkilee](https://github.com/enkilee) | +| [Zheng-Bicheng](https://github.com/Zheng-Bicheng) | [zhangyuqin1998](https://github.com/zhangyuqin1998) | [RangeKing](https://github.com/RangeKing) | [kevinng77](https://github.com/kevinng77) | [caolonghao](https://github.com/caolonghao) | [AndPuQing](https://github.com/AndPuQing) | +| [lileding](https://github.com/lileding) | [wj-Mcat](https://github.com/wj-Mcat) | [parap1uie-s](https://github.com/parap1uie-s) | [jingsongliujing](https://github.com/jingsongliujing) | [dasenCoding](https://github.com/dasenCoding) | [PureNatural](https://github.com/PureNatural) | +| [zzk0](https://github.com/zzk0) | [gouzil](https://github.com/gouzil) | [yiakwy](https://github.com/yiakwy) | [VigiZhang](https://github.com/VigiZhang) | [huangjiyi](https://github.com/huangjiyi) | [supercodebull](https://github.com/supercodebull) | +| [longranger2](https://github.com/longranger2) | [taixiurong](https://github.com/taixiurong) | [FisherWY](https://github.com/FisherWY) | [Atlantisming](https://github.com/Atlantisming) | [Lemon-er](https://github.com/Lemon-er) | [lizechng](https://github.com/lizechng) | +| [ccsuzzh](https://github.com/ccsuzzh) | [DrRyanHuang](https://github.com/DrRyanHuang) | [RedContritio](https://github.com/RedContritio) | [Lyutoon](https://github.com/Lyutoon) | [PommesPeter](https://github.com/PommesPeter) | [tianxingxia-cn](https://github.com/tianxingxia-cn) | +| [sanbuphy](https://github.com/sanbuphy) | [jjyaoao](https://github.com/jjyaoao) | [kk-2000](https://github.com/kk-2000) | [Tomoko-hjf](https://github.com/Tomoko-hjf) | [edencfc](https://github.com/edencfc) | | + +# 会议议程 + +- 新人介绍 [chengyuma](https://github.com/chengyuma)、[edencfc](https://github.com/edencfc) (5 min) +- 飞桨研发 [zhangjun](https://github.com/zhangjun) 飞桨 TRT 开发分享(10-15min) +- [sanbuphy](https://github.com/sanbuphy) 飞桨 TRT 算子映射开发经验分享(5 min) +- [jzhang533](https://github.com/jzhang533) 飞桨 Python IR 构建实验介绍(10 min) +- [luotao1](https://github.com/luotao1) 飞桨框架实习相关介绍(5-10 min) +- 飞桨产品 [Krystalxxf](https://github.com/Krystalxxf) 社区信息同步:介绍两大开源活动(快乐开源+黑客松),收集贡献指南和框架开发需求(10min) +- PFCC 成员自由发言讨论(5 min) +- 确定下次会议的主席与副主席,以及召开时间和部分议题预告(5 min) From 6a34810b43610371d66eeb69a2d53ef50b0ef0df Mon Sep 17 00:00:00 2001 From: sanbuphy Date: Wed, 1 Mar 2023 14:32:50 +0800 Subject: [PATCH 02/16] add 0302 meeting --- pfcc/meetings/2023/2023-03-02-meeting-agenda.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pfcc/meetings/2023/2023-03-02-meeting-agenda.md b/pfcc/meetings/2023/2023-03-02-meeting-agenda.md index 69d4c754e..738304e89 100644 --- a/pfcc/meetings/2023/2023-03-02-meeting-agenda.md +++ b/pfcc/meetings/2023/2023-03-02-meeting-agenda.md @@ -28,7 +28,7 @@ | [zzk0](https://github.com/zzk0) | [gouzil](https://github.com/gouzil) | [yiakwy](https://github.com/yiakwy) | [VigiZhang](https://github.com/VigiZhang) | [huangjiyi](https://github.com/huangjiyi) | [supercodebull](https://github.com/supercodebull) | | [longranger2](https://github.com/longranger2) | [taixiurong](https://github.com/taixiurong) | [FisherWY](https://github.com/FisherWY) | [Atlantisming](https://github.com/Atlantisming) | [Lemon-er](https://github.com/Lemon-er) | [lizechng](https://github.com/lizechng) | | [ccsuzzh](https://github.com/ccsuzzh) | [DrRyanHuang](https://github.com/DrRyanHuang) | [RedContritio](https://github.com/RedContritio) | [Lyutoon](https://github.com/Lyutoon) | [PommesPeter](https://github.com/PommesPeter) | [tianxingxia-cn](https://github.com/tianxingxia-cn) | -| [sanbuphy](https://github.com/sanbuphy) | [jjyaoao](https://github.com/jjyaoao) | [kk-2000](https://github.com/kk-2000) | [Tomoko-hjf](https://github.com/Tomoko-hjf) | [edencfc](https://github.com/edencfc) | | +| [sanbuphy](https://github.com/sanbuphy) | [jjyaoao](https://github.com/jjyaoao) | [kk-2000](https://github.com/kk-2000) | [Tomoko-hjf](https://github.com/Tomoko-hjf) | [edencfc](https://github.com/edencfc) | [chengyuma](https://github.com/chengyuma) | [edencfc](https://github.com/edencfc) | | # 会议议程 From b382395391761082a0b0bcacb0375ab7df68d849 Mon Sep 17 00:00:00 2001 From: sanbuphy Date: Wed, 1 Mar 2023 14:39:28 +0800 Subject: [PATCH 03/16] fix link --- pfcc/meetings/2023/2023-03-02-meeting-agenda.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pfcc/meetings/2023/2023-03-02-meeting-agenda.md b/pfcc/meetings/2023/2023-03-02-meeting-agenda.md index 738304e89..b75a69642 100644 --- a/pfcc/meetings/2023/2023-03-02-meeting-agenda.md +++ b/pfcc/meetings/2023/2023-03-02-meeting-agenda.md @@ -6,7 +6,7 @@ - 腾讯会议: - 会议密码:\*\*\*\*(群内通知) - - [点击链接入会](https://meeting.tencent.com/dm/lZqQq3mMrWST),或添加至会议列表 + - [点击链接入会](https://meeting.tencent.com/dm/NEPbd5TNdfIN),或添加至会议列表 - 本次会议主席:卢雨畋([sanbuphy](https://github.com/sanbuphy)) From 2f09d0951d7b882e735bc4e74842d9693140f57d Mon Sep 17 00:00:00 2001 From: sanbuphy Date: Wed, 1 Mar 2023 14:47:59 +0800 Subject: [PATCH 04/16] fix --- pfcc/meetings/2023/2023-03-02-meeting-agenda.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pfcc/meetings/2023/2023-03-02-meeting-agenda.md b/pfcc/meetings/2023/2023-03-02-meeting-agenda.md index b75a69642..d1e053948 100644 --- a/pfcc/meetings/2023/2023-03-02-meeting-agenda.md +++ b/pfcc/meetings/2023/2023-03-02-meeting-agenda.md @@ -10,7 +10,7 @@ - 本次会议主席:卢雨畋([sanbuphy](https://github.com/sanbuphy)) -- 本次会议副主席: +- 本次会议副主席:田川 ([gouzil](https://github.com/gouzil)) - 本次拟参会 Paddle Framework Contributor 列表: From 1696d5a90d6f7ca7bbe37cb2a19c8ab3eb69954d Mon Sep 17 00:00:00 2001 From: sanbuphy Date: Wed, 1 Mar 2023 14:56:01 +0800 Subject: [PATCH 05/16] fix --- pfcc/meetings/2023/2023-03-02-meeting-agenda.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pfcc/meetings/2023/2023-03-02-meeting-agenda.md b/pfcc/meetings/2023/2023-03-02-meeting-agenda.md index d1e053948..0a48748c6 100644 --- a/pfcc/meetings/2023/2023-03-02-meeting-agenda.md +++ b/pfcc/meetings/2023/2023-03-02-meeting-agenda.md @@ -36,7 +36,7 @@ - 飞桨研发 [zhangjun](https://github.com/zhangjun) 飞桨 TRT 开发分享(10-15min) - [sanbuphy](https://github.com/sanbuphy) 飞桨 TRT 算子映射开发经验分享(5 min) - [jzhang533](https://github.com/jzhang533) 飞桨 Python IR 构建实验介绍(10 min) -- [luotao1](https://github.com/luotao1) 飞桨框架实习相关介绍(5-10 min) -- 飞桨产品 [Krystalxxf](https://github.com/Krystalxxf) 社区信息同步:介绍两大开源活动(快乐开源+黑客松),收集贡献指南和框架开发需求(10min) +- [luotao1](https://github.com/luotao1) paddle inference对于非cuda-like平台的gpu适配指南(10 min) +- 飞桨产品 [Krystalxxf](https://github.com/Krystalxxf) 社区信息同步:介绍开源活动——飞桨黑客松第四期(5-10min) - PFCC 成员自由发言讨论(5 min) - 确定下次会议的主席与副主席,以及召开时间和部分议题预告(5 min) From 4c1bfefb7c6e375c6cd4579ba37a4aa3ac457fd5 Mon Sep 17 00:00:00 2001 From: sanbuphy Date: Wed, 1 Mar 2023 14:56:25 +0800 Subject: [PATCH 06/16] fix --- pfcc/meetings/2023/2023-03-02-meeting-agenda.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pfcc/meetings/2023/2023-03-02-meeting-agenda.md b/pfcc/meetings/2023/2023-03-02-meeting-agenda.md index 0a48748c6..6930eb6e5 100644 --- a/pfcc/meetings/2023/2023-03-02-meeting-agenda.md +++ b/pfcc/meetings/2023/2023-03-02-meeting-agenda.md @@ -36,7 +36,7 @@ - 飞桨研发 [zhangjun](https://github.com/zhangjun) 飞桨 TRT 开发分享(10-15min) - [sanbuphy](https://github.com/sanbuphy) 飞桨 TRT 算子映射开发经验分享(5 min) - [jzhang533](https://github.com/jzhang533) 飞桨 Python IR 构建实验介绍(10 min) -- [luotao1](https://github.com/luotao1) paddle inference对于非cuda-like平台的gpu适配指南(10 min) +- [luotao1](https://github.com/luotao1) 飞桨 inference 对于非cuda-like平台的gpu适配指南(10 min) - 飞桨产品 [Krystalxxf](https://github.com/Krystalxxf) 社区信息同步:介绍开源活动——飞桨黑客松第四期(5-10min) - PFCC 成员自由发言讨论(5 min) - 确定下次会议的主席与副主席,以及召开时间和部分议题预告(5 min) From bc1a06abc4f311e784e527d554011c2106b9cfea Mon Sep 17 00:00:00 2001 From: sanbuphy Date: Wed, 1 Mar 2023 16:27:39 +0800 Subject: [PATCH 07/16] fix --- pfcc/meetings/2023/2023-03-02-meeting-agenda.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pfcc/meetings/2023/2023-03-02-meeting-agenda.md b/pfcc/meetings/2023/2023-03-02-meeting-agenda.md index 6930eb6e5..08a9519eb 100644 --- a/pfcc/meetings/2023/2023-03-02-meeting-agenda.md +++ b/pfcc/meetings/2023/2023-03-02-meeting-agenda.md @@ -6,7 +6,7 @@ - 腾讯会议: - 会议密码:\*\*\*\*(群内通知) - - [点击链接入会](https://meeting.tencent.com/dm/NEPbd5TNdfIN),或添加至会议列表 + - [点击链接入会](https://meeting.tencent.com/dm/TXHEafZ0OVLv),或添加至会议列表 - 本次会议主席:卢雨畋([sanbuphy](https://github.com/sanbuphy)) @@ -36,7 +36,7 @@ - 飞桨研发 [zhangjun](https://github.com/zhangjun) 飞桨 TRT 开发分享(10-15min) - [sanbuphy](https://github.com/sanbuphy) 飞桨 TRT 算子映射开发经验分享(5 min) - [jzhang533](https://github.com/jzhang533) 飞桨 Python IR 构建实验介绍(10 min) -- [luotao1](https://github.com/luotao1) 飞桨 inference 对于非cuda-like平台的gpu适配指南(10 min) +- [engineer1109](https://github.com/engineer1109) 飞桨 inference 对于非cuda-like平台的gpu适配指南(10 min) - 飞桨产品 [Krystalxxf](https://github.com/Krystalxxf) 社区信息同步:介绍开源活动——飞桨黑客松第四期(5-10min) - PFCC 成员自由发言讨论(5 min) - 确定下次会议的主席与副主席,以及召开时间和部分议题预告(5 min) From fb320d7b68ae27991869ecc9c33acc9db78abfba Mon Sep 17 00:00:00 2001 From: Sanbu <96160062+sanbuphy@users.noreply.github.com> Date: Wed, 1 Mar 2023 18:37:21 +0800 Subject: [PATCH 08/16] Update 2023-03-02-meeting-agenda.md --- pfcc/meetings/2023/2023-03-02-meeting-agenda.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pfcc/meetings/2023/2023-03-02-meeting-agenda.md b/pfcc/meetings/2023/2023-03-02-meeting-agenda.md index 08a9519eb..559d59ba0 100644 --- a/pfcc/meetings/2023/2023-03-02-meeting-agenda.md +++ b/pfcc/meetings/2023/2023-03-02-meeting-agenda.md @@ -32,7 +32,7 @@ # 会议议程 -- 新人介绍 [chengyuma](https://github.com/chengyuma)、[edencfc](https://github.com/edencfc) (5 min) +- 新人介绍 [CollaborativeFiltering](https://github.com/CollaborativeFiltering)、[edencfc](https://github.com/edencfc) (5 min) - 飞桨研发 [zhangjun](https://github.com/zhangjun) 飞桨 TRT 开发分享(10-15min) - [sanbuphy](https://github.com/sanbuphy) 飞桨 TRT 算子映射开发经验分享(5 min) - [jzhang533](https://github.com/jzhang533) 飞桨 Python IR 构建实验介绍(10 min) From 3aeee06094ca748b811e531d92928dfab3219ab0 Mon Sep 17 00:00:00 2001 From: sanbuphy Date: Sun, 26 Feb 2023 13:47:24 +0800 Subject: [PATCH 09/16] fix --- pfcc/meetings/2023/2023-03-02-meeting-agenda.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pfcc/meetings/2023/2023-03-02-meeting-agenda.md b/pfcc/meetings/2023/2023-03-02-meeting-agenda.md index 559d59ba0..7f2fe7074 100644 --- a/pfcc/meetings/2023/2023-03-02-meeting-agenda.md +++ b/pfcc/meetings/2023/2023-03-02-meeting-agenda.md @@ -28,11 +28,11 @@ | [zzk0](https://github.com/zzk0) | [gouzil](https://github.com/gouzil) | [yiakwy](https://github.com/yiakwy) | [VigiZhang](https://github.com/VigiZhang) | [huangjiyi](https://github.com/huangjiyi) | [supercodebull](https://github.com/supercodebull) | | [longranger2](https://github.com/longranger2) | [taixiurong](https://github.com/taixiurong) | [FisherWY](https://github.com/FisherWY) | [Atlantisming](https://github.com/Atlantisming) | [Lemon-er](https://github.com/Lemon-er) | [lizechng](https://github.com/lizechng) | | [ccsuzzh](https://github.com/ccsuzzh) | [DrRyanHuang](https://github.com/DrRyanHuang) | [RedContritio](https://github.com/RedContritio) | [Lyutoon](https://github.com/Lyutoon) | [PommesPeter](https://github.com/PommesPeter) | [tianxingxia-cn](https://github.com/tianxingxia-cn) | -| [sanbuphy](https://github.com/sanbuphy) | [jjyaoao](https://github.com/jjyaoao) | [kk-2000](https://github.com/kk-2000) | [Tomoko-hjf](https://github.com/Tomoko-hjf) | [edencfc](https://github.com/edencfc) | [chengyuma](https://github.com/chengyuma) | [edencfc](https://github.com/edencfc) | | +| [sanbuphy](https://github.com/sanbuphy) | [jjyaoao](https://github.com/jjyaoao) | [kk-2000](https://github.com/kk-2000) | [Tomoko-hjf](https://github.com/Tomoko-hjf) | [edencfc](https://github.com/edencfc) | [CollaborativeFiltering](https://github.com/CollaborativeFiltering) | [cloud2009](https://github.com/cloud2009) | | # 会议议程 -- 新人介绍 [CollaborativeFiltering](https://github.com/CollaborativeFiltering)、[edencfc](https://github.com/edencfc) (5 min) +- 新人介绍 [CollaborativeFiltering](https://github.com/CollaborativeFiltering)、[edencfc](https://github.com/edencfc) 、[cloud2009](https://github.com/cloud2009)(5 min) - 飞桨研发 [zhangjun](https://github.com/zhangjun) 飞桨 TRT 开发分享(10-15min) - [sanbuphy](https://github.com/sanbuphy) 飞桨 TRT 算子映射开发经验分享(5 min) - [jzhang533](https://github.com/jzhang533) 飞桨 Python IR 构建实验介绍(10 min) From 2b0257c574530a8537dedb215313e44d9d27189a Mon Sep 17 00:00:00 2001 From: sanbuphy Date: Tue, 7 Mar 2023 17:18:07 +0800 Subject: [PATCH 10/16] add pfcc-minutes --- .../2023/2023-03-02-meeting-minutes.md | 47 +++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 pfcc/meetings/2023/2023-03-02-meeting-minutes.md diff --git a/pfcc/meetings/2023/2023-03-02-meeting-minutes.md b/pfcc/meetings/2023/2023-03-02-meeting-minutes.md new file mode 100644 index 000000000..1f12e4c62 --- /dev/null +++ b/pfcc/meetings/2023/2023-03-02-meeting-minutes.md @@ -0,0 +1,47 @@ +# Paddle Frawework Contributor Club 第十七次会议纪要 + +## 会议概况 + +- 本次会议时间:2022-03-02 19:00 +- 会议地点:线上会议 +- 参会人:本次会议共有38名成员参会,由来自全国各地的飞桨框架的贡献者组成。本次会议由轮值主席卢雨畋([sanbuphy](https://github.com/sanbuphy))主持。 +- 会议主题:《飞桨 TRT 开发与 inference GPU 适配开发、飞桨 fx 构思分析》 + + +## 会议分享与讨论 + +本次会议主要以飞桨 TRT 算子开发为主题进行相关内容的分享与讨论。 + +以下为主要内容: + +### 1、新成员的自我介绍 +首先,PFCC 新成员 [CollaborativeFiltering](https://github.com/CollaborativeFiltering)、[edencfc](https://github.com/edencfc) 、[cloud2009](https://github.com/cloud2009) 进行了自我介绍,欢迎加入 PFCC! + +### 2、飞桨 TRT 开发经验 + +飞桨研发[zhangjun](https://github.com/zhangjun),主要分享飞桨 TRT 开发经验,详细介绍了常见的飞桨 RT 扩展增加方案与 RT 扩展执行流程,并对 RT 映射做了简单的介绍。 + +### 3、飞桨 TRT 算子映射开发经验分享 + +PFCC成员[sanbuphy](https://github.com/sanbuphy) 针对几个 PR 进行了飞桨 TRT 算子映射开发流程分享。 + +### 4、Python IR 构建实验介绍 + +PFCC成员[jzhang533](https://github.com/jzhang533) 进行了 Python IR 构建实验介绍。目标是以可编程的方式基于这个IR做变换,简化,以适用到其他场景。(如特征提取、性能优化等)之后可以基于这个IR 将paddle模型lower到其他的执行引擎上执行。 + +具体项目:https://github.com/PFCCLab/paddlefx +简介:https://github.com/PFCCLab/paddlefx/discussions/12 + +### 5、"改进飞桨框架的logging系统"志愿者征集 + +PFCC成员[engineer1109](https://github.com/engineer1109) 讲解了有关飞桨 inference 对于非cuda-like平台的gpu适配方法,主要涉及到 Paddle Inference 完成适配需要的接口、OpenCL内存池模型、OpenCL SVM共享虚拟内存、Vulkan、OpenGL等方案。 + + +### 6、黑客松活动同步 + +飞桨产品 [Krystalxxf](https://github.com/Krystalxxf) 进行了社区信息同步,介绍最新的开源活动——飞桨黑客松第四期。 + + +### 下次会议安排 + +确定下次会议的时间为两周后的同一个时间段。主席为[gouzil](https://github.com/gouzil), 副主席[待定](),主题待定。 From 43825115f8207cd322c61b46ddab3ac112d5b3ec Mon Sep 17 00:00:00 2001 From: sanbuphy Date: Tue, 7 Mar 2023 17:20:44 +0800 Subject: [PATCH 11/16] add pfcc-minutes --- pfcc/meetings/2023/2023-03-02-meeting-minutes.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pfcc/meetings/2023/2023-03-02-meeting-minutes.md b/pfcc/meetings/2023/2023-03-02-meeting-minutes.md index 1f12e4c62..7a32a269d 100644 --- a/pfcc/meetings/2023/2023-03-02-meeting-minutes.md +++ b/pfcc/meetings/2023/2023-03-02-meeting-minutes.md @@ -5,7 +5,7 @@ - 本次会议时间:2022-03-02 19:00 - 会议地点:线上会议 - 参会人:本次会议共有38名成员参会,由来自全国各地的飞桨框架的贡献者组成。本次会议由轮值主席卢雨畋([sanbuphy](https://github.com/sanbuphy))主持。 -- 会议主题:《飞桨 TRT 开发与 inference GPU 适配开发、飞桨 fx 构思分析》 +- 会议主题:《飞桨 TRT 开发与 inference GPU 适配开发、飞桨 fx 构思分享》 ## 会议分享与讨论 From 2f83aef64f02d7da8cc2032f5b07342874874f04 Mon Sep 17 00:00:00 2001 From: sanbuphy Date: Wed, 8 Mar 2023 18:02:34 +0800 Subject: [PATCH 12/16] fix --- pfcc/meetings/2023/2023-03-02-meeting-minutes.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pfcc/meetings/2023/2023-03-02-meeting-minutes.md b/pfcc/meetings/2023/2023-03-02-meeting-minutes.md index 7a32a269d..f191d16bc 100644 --- a/pfcc/meetings/2023/2023-03-02-meeting-minutes.md +++ b/pfcc/meetings/2023/2023-03-02-meeting-minutes.md @@ -32,7 +32,7 @@ PFCC成员[jzhang533](https://github.com/jzhang533) 进行了 Python IR 构建 具体项目:https://github.com/PFCCLab/paddlefx 简介:https://github.com/PFCCLab/paddlefx/discussions/12 -### 5、"改进飞桨框架的logging系统"志愿者征集 +### 5、飞桨 inference 对于非cuda-like平台的gpu适配方法 PFCC成员[engineer1109](https://github.com/engineer1109) 讲解了有关飞桨 inference 对于非cuda-like平台的gpu适配方法,主要涉及到 Paddle Inference 完成适配需要的接口、OpenCL内存池模型、OpenCL SVM共享虚拟内存、Vulkan、OpenGL等方案。 From 99a8176c2eed70b1eda21cf5a7bc9c581e960bd3 Mon Sep 17 00:00:00 2001 From: sanbuphy Date: Tue, 4 Apr 2023 10:41:32 +0800 Subject: [PATCH 13/16] add CI --- ...\344\273\245ci\344\270\272\344\276\213.md" | 357 ++++++++++++++++++ 1 file changed, 357 insertions(+) create mode 100644 "reports/docs/dev_guides/86_\343\200\220\345\274\200\346\272\220\347\244\276\345\214\272\345\257\271\346\257\224\347\240\224\347\251\266\343\200\221 \344\273\245ci\344\270\272\344\276\213.md" diff --git "a/reports/docs/dev_guides/86_\343\200\220\345\274\200\346\272\220\347\244\276\345\214\272\345\257\271\346\257\224\347\240\224\347\251\266\343\200\221 \344\273\245ci\344\270\272\344\276\213.md" "b/reports/docs/dev_guides/86_\343\200\220\345\274\200\346\272\220\347\244\276\345\214\272\345\257\271\346\257\224\347\240\224\347\251\266\343\200\221 \344\273\245ci\344\270\272\344\276\213.md" new file mode 100644 index 000000000..ca320b551 --- /dev/null +++ "b/reports/docs/dev_guides/86_\343\200\220\345\274\200\346\272\220\347\244\276\345\214\272\345\257\271\346\257\224\347\240\224\347\251\266\343\200\221 \344\273\245ci\344\270\272\344\276\213.md" @@ -0,0 +1,357 @@ +# No.86: 【开源社区对比研究】 以ci为例 + +## 目录 + +- [任务介绍](#任务介绍) +- [开源贡献流程](#开源贡献流程) + - [Paddle开源贡献流程](#Paddle开源贡献流程) +- [持续集成(CI)](#持续集成CI) +- [如何衡量CI的好坏](#如何衡量CI的好坏) +- [如何提高CI水准](#如何提高CI水准) +- [开源项目CI分析](#开源项目CI分析) + - [Paddle ](#Paddle-) + - [PyTorch](#PyTorch) + - [Tensorflow](#Tensorflow) + - [ONNX](#ONNX) + - [opencv](#opencv) +- [CI比较](#CI比较) + - [paddle的ci对比 github 的ci体验(ci产品本身)](#paddle的ci对比-github-的ci体验ci产品本身) + - [paddle的ci对比其他ci的体验(ci设计本身)](#paddle的ci对比其他ci的体验ci设计本身) +- [总结](#总结) + +## 任务介绍 + +请以社区开发者的视角,通过与其他的知名开源项目(不局限在 AI 框架领域)的对比分析,来产生一份分析报告。报告内容中,请首先进行针对开源贡献当中涉及到的因素和流程做出概要分析,然后,针对 CI 流水线进行专项的细致分析。报告要能够通过与其他开源项目相比,就飞桨框架的 **CI 流水线的使用体验、自动化程度、对项目的保护情况**,等等方面(不限于前述三个方面)给出有论据支撑的分析结论。 + +## 开源贡献流程 + +首先,我们先来了解一下开源项目贡献过程中比较基本要素和运转规律: + +1. 开源项目的贡献方式 + + 在开源项目中,最常见的贡献方式有:报告问题、提交PR、改进与翻译文档、参与讨论、协助测试等等,每种方式都是一个良好开源项目不可或缺的一部分;社区成员通过提交代码、文档、bug报告等多样化方式让开源项目更加文件,同时提高开源项目的影响力。 +2. 开源项目的奖励机制 + + 社区成员和开源项目是相互成就的。开源项目通过贡献者丰富了自身生态及其代码的稳健性、贡献者在开源贡献的过程中提高自身的技术并收获了来自开源社区的认可,甚至是一些物质奖励和精神奖励:代金券、特殊荣誉、名望、专业认证、社区贡献记录等等,同时也可以增加开源社区参与者在业界的认可度。基于社区成员与开源项目的双向互动,在这良性循环的驱使下只会让双方变得越来越好。 + +其次,如果你是一名新的想要参与开源项目的新兴贡献者,大概可以参考以下几个步骤: + +1. 寻找适合自己的项目或对应代码片段:你可以在 GitHub、GitLab、启智等开源平台上寻找感兴趣的项目,解项目的功能、特点以及相关的技术栈和开发语言等信息。选择自己熟悉的领域或者想要学习的领域进行贡献;在选择完项目后,你需要对对应的开源贡献指南进行阅读,并选取自己感兴趣的部分仔细查看。 +2. 提交问题或建议:如果在使用或者阅读开源项目时发现了问题或有好的建议,可以向项目维护人员提交 issue 或 pull request,描述问题或建议,并尽可能提供详细的信息和代码示例。 +3. 阅读PR文档:在开始贡献之前,需要认真阅读项目和PR文档及其代码约定,了解项目的架构、组织结构和开发规范,避免无谓的错误和浪费时间。 +4. 注册和配置环境:在阅读完文档后就进入正式的开发环节,此时需要注册和配置开发环境,包括安装开发工具、依赖库和测试环境等,确保可以顺利编译、运行和测试代码。 +5. 提交 pull request:在对代码进行修改或添加新功能后,需要提交 pull request,描述修改或添加的内容,并附上详细的说明和测试用例。在提交之前,需要确保代码已经过本地测试,否则在线上CI可能会浪费很多不必要的时间。 +6. 等待审核和合并:一旦提交 pull request,就需要等待项目维护人员进行审核和合并。在审核之前,可能会有一些讨论和修正的过程,需要保持耐心和积极性,处理好与维护人员之间的沟通和合作关系。 + +具体的贡献流程,针对不同开源项目都有不同的具体实现,这时候就需要仔细阅读对应官网的文档和文章,在遵守社区良好规范的前提下进行贡献。 + +### Paddle开源贡献流程 + +对于Paddle的开源贡献流程一般为: + +参与开源社群: + +[https://www.paddlepaddle.org.cn/documentation/docs/zh/guides/10\_contribution/community\_contribution\_cn.html](https://www.paddlepaddle.org.cn/documentation/docs/zh/guides/10_contribution/community_contribution_cn.html "https://www.paddlepaddle.org.cn/documentation/docs/zh/guides/10_contribution/community_contribution_cn.html") + +参与代码贡献: + +[https://www.paddlepaddle.org.cn/documentation/docs/zh/dev\_guides/code\_contributing\_path\_cn.html](https://www.paddlepaddle.org.cn/documentation/docs/zh/dev_guides/code_contributing_path_cn.html "https://www.paddlepaddle.org.cn/documentation/docs/zh/dev_guides/code_contributing_path_cn.html") + +参与文档贡献: + +[https://www.paddlepaddle.org.cn/documentation/docs/zh/dev\_guides/docs\_contributing\_guides\_cn.html](https://www.paddlepaddle.org.cn/documentation/docs/zh/dev_guides/docs_contributing_guides_cn.html "https://www.paddlepaddle.org.cn/documentation/docs/zh/dev_guides/docs_contributing_guides_cn.html") + +具体的参与过程和引导都可以参考文档中所述,如果有存在疑问的地方可以在对应的开源社群进行反馈。 + +## 持续集成(CI) + +介绍完基础的开源贡献流程,接下来就进入到持续集成(Continuous Integration, CI)讨论的环节,一个良好的CI是开源项目生命的关键,也是让开源贡献能够稳步进行的重要因素之一。接下来,我们需要对持续集成有一个概览,以便我们更好的理解之后的内容: + +CI是一项极其重要的开发工具,其主要目的在于通过自动化构建、测试等操作,确保每一次代码提交都符合项目规范。作为保护大型项目代码的利器,CI能够有效地防止主代码被破坏而不可运行,同时也能够加快不同贡献者之间协作开发的效率,为开源项目稳定运行保驾护航。 + +1. 持续集成的简介 + + 持续集成是一个软件开发过程,开发人员在整个开发周期中更频繁地集成他们编写的新代码,对构建的每个迭代进行自动化测试,以便更早地识别集成问题,避免在发布的最终合并时出现问题。总的来说,持续集成有助于简化构建过程,从而产生更高质量的软件和得到更可预测的交付时间。 +2. 常用的持续集成工具 + + 常见的CI工具有Jenkins、Travis CI、Circle CI、Github Action等,他们的一些对比如下: + + 其中一些词语的意思解析如下: + + pipeline as code:大意是将复杂的构建流程纳入一个简单的脚本文件,然后用一条命令调用。这样,任意的开发者都能在自己的工作区中执行脚本重建一套一模一样的构建环境,从而消除CI/CD环境由于散乱配置腐化而成的特异性。最显著的例子是GitHub Actions 中通过在仓库配置一个基于 YML 的 DSL 文件来创建一个工作流。 + + ![](https://ai-studio-static-online.cdn.bcebos.com/bb2dfa87046347d7a8caa66e9cfddeae0f8ff2f8e81846d186d1d5c99d17b4ee) + + | | | | | + | -------------------------------------- | ------------------------------------------------------------------------- | ---------------------------------------------------------- | ----------------------------------------------- | + | | CircleCI | TravisCI | Jenkins | + | Software model | Mostly private (some open source) | Some private (some open source) | Open source | + | Supported OS | Linux or MacOS | Linux macOS Windows | All (no limitations) | + | Source Code Repositories | GitHub Bitbucket | GitHub | All (no limitations) | + | Cloud solution | yes | yes | yes | + | Configuration | yml file | yml file | Jenkinsfile | + | Custom cloud / private server solution | Yes (including a free plan) | Yes (no free version) | Custom cloud / private server solution | + | Paid plan details | Based on containers and concurrent jobs (unlimited hours, users, minutes) | Based on concurrent jobs (unlimited hours, users, minutes) | Free to use, requires a dedicated administrator | +3. 持续集成的执行流程 + + 自动化的周期性的集成测试过程,自动完成检出代码、编译构建、运行测试、结果记录、测试统计等任务 + + ![](https://ai-studio-static-online.cdn.bcebos.com/d5be92242984410da9648bf2d6cb7d7677da012114134e00850a8d4c45975ca1) + +4. 持续集成中的问题和挑战 + + 在CI部署过程中,我们可能会遇到很多问题,比如环境管理的混乱、花太多时间在测试代码上、代码豁免导致的流水线瘫痪、问题挤压后的流水线停滞、多条流水线管理困难或流水线拥堵等......这些都需要和仓库管理员保持密切协商和联系,在问题出现的时候第一时间沟通等待合作解决,或是不要太卷了(好多次拥堵是内卷造成)。 + +## 如何衡量CI的好坏 + +参考资料: + +[https://www.jetbrains.com/zh-cn/teamcity/ci-cd-guide/devops-ci-cd-metrics/](https://www.jetbrains.com/zh-cn/teamcity/ci-cd-guide/devops-ci-cd-metrics/ "https://www.jetbrains.com/zh-cn/teamcity/ci-cd-guide/devops-ci-cd-metrics/") + +[https://shenxianpeng.github.io/2021/12/cicd-assessment/](https://shenxianpeng.github.io/2021/12/cicd-assessment/ "https://shenxianpeng.github.io/2021/12/cicd-assessment/") + +这里我参考第二个作者(DevOps攻城狮)的标准: + +| 类别 | 最佳实践标准 | 分数 | 描述 | +| ------ | --------------- | ------ | --------------------------------- | +| **基本** | 🔰**构建任何分支** | **20** | 支持任何分支构建 | +| | 🔰**构建任何PR** | **20** | 支持对任何 Pull Request 在 Merge 之前进行构建 | +| | 🔰上传制品 | 10 | 构建产物上传到制品仓库保存 | +| | 👍容器化构建 | 10 | 推荐使用容器化技术实现Pipeline | +| **质量** | 🔰**自动化测试** | **20** | 支持触发冒烟/单元/回归测试 | +| | 👍性能测试 | 10 | 支持触发性能测试 | +| | 👍代码覆盖率收集 | 10 | 支持获得代码覆盖率 | +| **安全** | 🔰漏洞扫描 | 10 | 支持触发漏洞扫描 | +| | 🔰License扫描 | 10 | 支持触发证书扫描 | +| **分析** | 👍Code Lint | 10 | 支持对PR进行代码格式检查 | +| | 👍静态代码分析 | 10 | 支持对PR进行静态代码分析 | +| | 👍动态代码分析 | 10 | 支持对PR进行动态代码分析 | +| **报告** | 🔰Email或Slack通知 | 10 | 支持通过Email或Slack等方式通知 | + +## 如何提高CI水准 + +在这一阶段,我们可以稍微了解下在基础CI的构建范式之上,我们还能做些什么让CI变得更好: + +- 自动化测试覆盖程度 + +自动化测试覆盖率越高,发现问题的准确性和效率也就越高,能够在第一时间发现软件的问题,从而提高了开发团队的生产力和反应能力;如果自动化测试覆盖不足,软件会更容易出现问题。 + +- 较短的构建和测试过程 + +顾名思义,越快的CI过程能够更快速有效的反馈测试情况。 + +- 测试结果的反馈 + +CI结果的反馈很重要,如果没有及时反馈及时处理容易造成流水线拥堵甚至是分支受损。 + +- 分阶段构建 + 可以将系统分解为较小的子系统 (模块),然后单独地构建每个子系统,如图所示: + +![](https://ai-studio-static-online.cdn.bcebos.com/70f1d3bd6f0d4fc6a99a6dd8d64a87c63936f0e0c4f94c1bbd2a2b9b4cd04cd9) + + +其他更多的CI防御性报告: + +- 自动化测试覆盖率 +- 代码库的某些特征,比如重复代码量、圈复杂度、输入合度、输出合度代码风格问题等缺陷的数量。 +- 每天构建失败的次数。 +- 每次构建所花的时间,包括自动化测试的时间 + +## 开源项目CI分析 + +在这里我主要选择了这几个项目作为CI比较(其他很多开源项目其实也都八九不离十,pytroch几乎算是天花板级别的):Padddle、PyTorch、TensorFlow、ONNX、OpenCV。 + +### Paddle + +首先让我们来看看Paddle,paddle的CI官方解析文档如下: + +[https://www.paddlepaddle.org.cn/documentation/docs/zh/develop/dev\_guides/git\_guides/paddle\_ci\_manual\_cn.html](https://www.paddlepaddle.org.cn/documentation/docs/zh/develop/dev_guides/git_guides/paddle_ci_manual_cn.html "https://www.paddlepaddle.org.cn/documentation/docs/zh/develop/dev_guides/git_guides/paddle_ci_manual_cn.html") + +[https://github.com/PaddlePaddle/Paddle/wiki/paddle\_ci\_manual](https://github.com/PaddlePaddle/Paddle/wiki/paddle_ci_manual "https://github.com/PaddlePaddle/Paddle/wiki/paddle_ci_manual") + +paddle 的CI模块主要为以下几大类 + +![](https://ai-studio-static-online.cdn.bcebos.com/f4496b624c4e405aaff53b04b54a3d842694f8cab6fd43c1b317ceb911da94f9) + + +| CI名 | 作用 | +| ------------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| PR-CE-Framework | 检测框架 API 与预测 API 的核心测试用例是否通过。 | +| PR-CI-Build | 生成当前 PR 的编译产物,并将编译产物上传到 BOS(百度智能云对象存储)中,方便后续的 CI 可以直接复用该编译产物。 | +| PR-CI-CINN | 编译含 CINN(Compiler Infrastructure for Neural Networks,飞桨自研深度学习编译器)的 Paddle,并运行 Paddle 训练框架与 CINN 对接的单测,保证训练框架进行 CINN 相关开发的正确性。 | +| PR-CI-Coverage | 检测当前 PR 在 GPU、Python3 版本的编译与单测是否通过,同时增量代码需满足行覆盖率大于 90% 的要求。 | +| PR-CI-GpuPS | 检测 GPUBOX 相关代码合入后编译是否通过。需 观察下列情况是否发生: | +| PR-CI-GpuPS-PSLIB | 检测 GPUBOX 相关代码合入后编译是否通过。 | +| PR-CI-Inference | 检测当前 PR 对 C++ 预测库编译和单测是否通过。 | +| PR-CI-Kunlun-R200 | 检测 PR 中的修改能否在昆仑芯 XPU 上编译与单测通过。 | +| PR-CI-Model-benchmark | [检测 PR 中的修改是否会导致模型性能下降或者运行报错。 PR-CI-Model-benchmark Manual](https://github.com/PaddlePaddle/Paddle/wiki/PR-CI-Model-benchmark-Manual "检测 PR 中的修改是否会导致模型性能下降或者运行报错。 PR-CI-Model-benchmark Manual") | +| PR-CI-OP-benchmark | [检测 PR 中的修改是否会造成 OP 性能下降或者精度错误。 PR-CI-OP-benchmark Manual](https://github.com/PaddlePaddle/Paddle/wiki/PR-CI-OP-benchmark-Manual "检测 PR 中的修改是否会造成 OP 性能下降或者精度错误。 PR-CI-OP-benchmark Manual") | +| PR-CI-Paddle-Doc-Preview | 文档相关 | +| PR-CI-Py3 | 检测当前 PR 在 CPU、Python3 版本的编译与单测是否通过。 | +| PR-CI-ROCM-Compile | 检测 PR 中的修改能否在海光 DCU 芯片上编译通过。 | +| PR-CI-Static-Check | 检测develop分支与当前PR分支的增量 API 英文文档是否符合规范,以及当变更 API 或 OP 时检测是否经过了 TPM 审批(Approval)。 | +| PR-CI-Windows | 检测当前 PR 在 Windows GPU 环境下编译与单测是否通过,并检测当前 PR 分支相比develop分支是否新增单测代码,如有不同,提示需要审批(Approval)。 | +| PR-CI-Windows-Inference | 检测当前 PR 在 Windows 系统下预测模块的编译与单测是否通过。 | +| CheckPRTemplate | 检查 PR 描述信息是否按照模板填写 | +| PR-CI-APPROVAL | 检测 PR 中的修改是否通过了审批(Approval)。 | +| PR-CI-Clone | 将当前 PR 的代码从 GitHub Clone 到 CI 测试执行的机器,方便后续的 CI 直接使用。 | +| PR-CI-Codestyle-Check | precommit | +| PR-CI-Mac-Python3 | 检测当前 PR 在 MAC 系统下 Python 3.5 版本的编译与单测是否通过,并检测当前 PR 分支相比develop分支是否新增单测代码,如有不同,提示需要审批(Approval)。 | +| PR-CI-Windows-OPENBLAS | 检测当前 PR 在 Windows CPU 系统下编译与单测是否通过。 | + +### PyTorch + +[https://github.com/pytorch/pytorch/tree/master/.github/workflows](https://github.com/pytorch/pytorch/tree/master/.github/workflows "https://github.com/pytorch/pytorch/tree/master/.github/workflows") + +pytorch的CI官方解读文档: + +[https://github.com/pytorch/pytorch/wiki/Continuous-Integration#ci-system-overview](https://github.com/pytorch/pytorch/wiki/Continuous-Integration#ci-system-overview "https://github.com/pytorch/pytorch/wiki/Continuous-Integration#ci-system-overview") + +由于历史原因, pytorch现在有两个CI平台:Github Actions, CirlceCI;而对于pytorch,总的来说有三种类型的CI需要运行,分别为: + +1. 对于主commit的CI,此 CI 工作流集是基准。 +2. 对于PR的CI是主CI 工作流的一个子集,与主提交基准相比较(具体区别可以参考[https://github.com/pytorch/pytorch/wiki/Running-and-writing-tests](https://github.com/pytorch/pytorch/wiki/Running-and-writing-tests "https://github.com/pytorch/pytorch/wiki/Running-and-writing-tests"))。 +3. 夜晚的commit,主要运行二进制 CI 工作流和冒烟测试( smoke tests,对该版本最基本的功能进行测试,保证基本的功能和流程能走通。)。 + +另外,pytorch可以选择性取消、启动部分CI中测试。一些 测试由于不稳定性、与某些平台的不兼容性或其他临时性故障而暂时被禁用,直到问题解决,(详见:[https://github.com/pytorch/test-infra/blob/generated-stats/stats/disabled-tests-condensed.json](https://github.com/pytorch/test-infra/blob/generated-stats/stats/disabled-tests-condensed.json "https://github.com/pytorch/test-infra/blob/generated-stats/stats/disabled-tests-condensed.json"))。 + +要禁用测试,例如,你可以创建一个标题为 `DISABLED test_case_name (test.ClassName)`的PR,详细的例子可参考: `DISABLED test_jit_cuda_extension (`**`main`**`.TestCppExtensionJIT)`。另外,你还可以按照指定规则跳过某些特定平台的测试。 + +此外,pytorch CI还有一个很不错的看板(针对多工作流的情况下清晰掌握现状) + +[https://github.com/pytorch/pytorch/wiki/Using-hud.pytorch.org](https://github.com/pytorch/pytorch/wiki/Using-hud.pytorch.org "https://github.com/pytorch/pytorch/wiki/Using-hud.pytorch.org") + +[https://hud.pytorch.org/](https://hud.pytorch.org/ "https://hud.pytorch.org/") + +![](https://ai-studio-static-online.cdn.bcebos.com/fe827a1bff784379b7e6b3bcef381b1d57beac8918354d2ebb6f5d1588ab3b0b) + + +这个看板甚至可以用来查看一段时期错误构建的分布情况: + +[https://hud.pytorch.org/reliability](https://hud.pytorch.org/reliability "https://hud.pytorch.org/reliability") + +![](https://ai-studio-static-online.cdn.bcebos.com/e67b7e22cc3048dc88832901d1bf180cd3e18fe1543c425088d213edafead584) + +最后,我们来看看pytorch具体有那些CI子任务(由于太多,就只看类别,具体可以看CI看板): + +| CI类别 | 作用 | +| ------------------------ | ------------------------------------------------------------------------------------------------- | +| Lint | 静态分析,基础规范的检查 | +| Linux | linux系统上各版本的构建及测试 | +| Windows | windows系统上各版本的构建及测试 | +| iOS | ios系统上构建测试 | +| Mac | windows系统上各版本的构建及测试 | +| ROCm | AMD ROCm 对应版本的构建及测试 | +| XLA | PyTorch/XLA TPU版本对应的构建和测试 | +| Libtorch | torch C++后端对应构建 | +| Android | Android 系统上构建测试 | +| Binary Linux | linux系统上libtorch二进制库相关 | +| Binary Windows | windows系统上libtorch二进制库相关 | +| Memory Leak Check | 动态分析,内存泄漏检查 | +| Periodic | 定期运行的任务或测试以确保软件的稳定性和可靠性。可能包括运行大量的测试套件、性能基准测试或其他检查。 | +| Docs | 文档相关 | +| Rerun Disabled Tests | 重新跑关闭后的测试 | +| Inductor | TorchIniconductor 深度学习编译器相关的CI,它可以为多个加速器和后端生成快速代码。对于 NVIDIA 和 AMD 图形处理器,它使用 OpenAI Triton 作为关键构件。 | +| Annotations and labeling | 更新下载索引信息等 | +| other | 其他一些杂项任务 | + +另外,值得一提的是,对于CI的结果,pytorch有一个叫做pytorchmergebot的机器人可以报告: + +![](https://ai-studio-static-online.cdn.bcebos.com/07666a1dca0b46689844ef0e86a37335626b951ea8a64c8d875e4b8d6117160d) + +### Tensorflow + +tensorflow的CI使用了jenkins,相对来说资料会少一些: + +For windows you have '**windows-ci.yml**' pipelines which uses visual studio to build and run. + +For mac you have there is '**macos-ci.yml**' + +For linu7x it is '**linux-ci.yml**' + +to build and test pipeline used is '**nightly-pip-package.yml**' + +For tensorflow doc we use '**docs-presubmit.yml**' + +To buld, run and release the packages we use '**release.yml**'You can look over many pipelines in workflows directory. + +### **ONNX** + +onnx的CI官方解读文档: + +[https://github.com/onnx/onnx/blob/main/docs/CIPipelines.md](https://github.com/onnx/onnx/blob/main/docs/CIPipelines.md "https://github.com/onnx/onnx/blob/main/docs/CIPipelines.md") + +总的来说,onnx的CI写的非常好,可以说仅次于pytorch,令人一目了然,抓住了所有的核心要点。 + +| | When it runs | Test | +| ---------------------------------- | --------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| Linux-CI | Every PR | - ONNX C++ tests - Style check (flake8, mypy, and clang-format) - Test doc generation - Test proto generation - Verify node test generation | +| Windows-CI | Every PR | - Test building ONNX in conda environment - Test doc generation - Test proto generation - Verify node test generation | +| Mac-CI | Every PR | - ONNX C++ tests - Test doc generation - Test proto generation - Verify node test generation | +| Windows\_No\_Exception CI | Every PR | - Only ONNX C++ tests - Test selective schema loading | +| Lint / Optional Lint | Every PR | - Not required -- it shows lint warnings for suggestions in PR - misspell - shellcheck | +| Lint / Enforce style | Every PR | - flake8 - isort - black - mypy - clang-format - unix line endings - c++ namespace rules - Auto-generated files are up to date | +| WindowsRelease | Main branch Release branch Weekly | - Release Windows wheel - Release onnx-weekly package - Verify with different dependency versions - latest and min supported numpy version, latest and min supported protobuf version - Verify ONNX with the latest ONNX Runtime PyPI package. | +| LinuxRelease\_aarch64 | Main branch Release branch Weekly | - Release Linux aarch64 wheel - Release onnx-weekly package - Verify with different dependency versions - latest numpy version, latest and min supported protobuf version - Verify ONNX with the latest ONNX Runtime PyPI package | +| LinuxRelease\_x86\_64 | Main branch Release branch Weekly | - Release Linux x86\_64 wheel - Release onnx-weekly package - Test TEST\_HUB=1 - Verify with different dependency versions - latest numpy version, latest and min supported protobuf version - Verify ONNX with the latest ONNX Runtime PyPI package. | +| MacRelease | Main branch Release branch Weekly | - Release Mac wheel - Release onnx-weekly package - Verify with different dependency versions - latest numpy version, latest and min supported protobuf version - Verify ONNX with the latest ONNX Runtime PyPI package. - Test source distribution generation - Test build with source distribution - Release onnx-weekly source distribution | +| Weekly CI with latest onnx.checker | weekly | - Test latest ONNX checker - Test latest ONNX shape inference - With all models from onnx/models | + +### **opencv** + +opencv的CI官方解读文档: + +[https://github.com/opencv/opencv/wiki/CI-configuration](https://github.com/opencv/opencv/wiki/CI-configuration "https://github.com/opencv/opencv/wiki/CI-configuration") + +| CI名 | 作用 | +| ----------- | -------------------------------------------- | +| U20 | ubuntu20.04下针对不同体系的构建与测试(arm64、x64、x64-CUDA) | +| W10 | winndows10 x64下的构建与测试 | +| macOS-ARM64 | macOS ARM64下的构建与测试 | +| macOS-X64 | macOS X64下的构建与测试 | +| ios | ios下的构建(没有测试) | +| Android | 安卓系统下的构建与测试 | +| TIM-VX | khads-vim3: A311D NPU 的 Khads VIM3 开发板模拟器 | +| docs | 生成对应文档,且进行一些关于代码的健全性/linter 检查 | + +另外,opencv可以根据pr中的参数选择性调整测试: + +![](https://ai-studio-static-online.cdn.bcebos.com/a500d55cb31f42aa9a2c084edb5198a25946f03233bc4d32b4e18d7b162f83b8) + +针对特殊的情况,也可以通过CI配置进行相应测试。 + +![](https://ai-studio-static-online.cdn.bcebos.com/78de890ff03a4bb1be86fd838b5d7eb82a6979136ada492abd8fcdffca4485a9) + +## CI比较 + +### paddle的ci对比 github 的ci体验(ci产品本身) + +纯粹从CI服务的角度来说,github的ci有分更细致的阶段,大阶段里面还有小阶段,方便找出每个环节的问题。但是坏处就是没办法一栏全貌 ,这个我觉得只是习惯问题,看个人喜好。 + +另外,目前paddle的CI如果出现部分几个的CI问题,没办法一键选择失败的重构,只能一个个打开后重构或者干脆全部重构,在这一点上也是对开发者有所不便的地方。 + +从其他的角度来说,实际上Paddle的CI也已经比较完善了,但在具体的细节上仍有可优化的地方,我将会在下面的分析中谈到。 + +### **paddle的ci对比其他ci的体验(ci设计本身)** + +参考之前所有开源项目的CI,我整理了一个个人版的CI基准表,并针对上述提到的开源项目填入了相关内容,基准表格如下所示:(评价标准:√表示有较好而完整的功能,O表示功能适当但有待改进,-表示没有或者从文档中不能显式知道是否有对应功能) + +| 功能 | 描述 | Paddle | PyTorch | TensorFlow | ONNX | OpenCV | +| ---------- | --------------------------------- | ------ | ------- | ---------- | ---- | ------ | +| 构建任何PR | 支持对任何 Pull Request 在 Merge 之前进行构建 | √ | √ | √ | √ | √ | +| 自动化测试 | 支持触发冒烟/单元/回归测试 | √ | √ | √ | √ | √ | +| 性能测试 | 支持触发性能测试 | √ | √ | - | √ | - | +| 代码覆盖率收集 | 支持获得代码覆盖率 | √ | √ | - | - | - | +| Code Lint | 支持对PR进行代码格式检查 | √ | √ | √ | √ | √ | +| 静态代码分析 | 支持对PR进行静态代码分析 | √ | √ | √ | √ | √ | +| 动态代码分析 | 支持对PR进行动态代码分析 | - | √ | - | √ | - | +| 结果通知 | 以任何方式第一时间通知提PR者 | - | √ | - | - | - | +| 分阶段构建 | 可以分成两个或更多阶段构建 | - | √ | - | √ | - | +| 选择性构建 | 根据PR中的参数选择性进行构建 | O | √ | - | - | √ | +| 完整的CI报告或看板 | 缺陷特征报告、失败次数报告、构建时间报告等 | - | √ | - | - | - | + +## 总结 + +总的来说,经过大量github上开源项目的CI观察,我们可以认为上述的CI基准是比较完善的,能够较好的反应一个开源项目的CI水平。虽然Paddle的CI在上述基准中表现中上,但还存在一定的可改善空间;在此推荐向pytorch和onnx学习,通过完善一些CI的细节如CI通知、CI重置;完善CI的透明度如CI细节的阐释(如onnx)以及相应的看板,能够让开发者和社区更好的发现对应问题,从而让Paddle的社区协同开发更加稳健可靠,进一步降低沟通成本。 + +最后祝Paddle越来越好,在完善CI的保护下茁壮成长\~ From dc3869cefd5bb54039fc3bf7ff2f935c4218f0b4 Mon Sep 17 00:00:00 2001 From: sanbuphy Date: Tue, 4 Apr 2023 10:47:40 +0800 Subject: [PATCH 14/16] fix --- ...251\266\343\200\221 \344\273\245ci\344\270\272\344\276\213.md" | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename "reports/docs/dev_guides/86_\343\200\220\345\274\200\346\272\220\347\244\276\345\214\272\345\257\271\346\257\224\347\240\224\347\251\266\343\200\221 \344\273\245ci\344\270\272\344\276\213.md" => "reports/docs/dev_guides/85_\343\200\220\345\274\200\346\272\220\347\244\276\345\214\272\345\257\271\346\257\224\347\240\224\347\251\266\343\200\221 \344\273\245ci\344\270\272\344\276\213.md" (100%) diff --git "a/reports/docs/dev_guides/86_\343\200\220\345\274\200\346\272\220\347\244\276\345\214\272\345\257\271\346\257\224\347\240\224\347\251\266\343\200\221 \344\273\245ci\344\270\272\344\276\213.md" "b/reports/docs/dev_guides/85_\343\200\220\345\274\200\346\272\220\347\244\276\345\214\272\345\257\271\346\257\224\347\240\224\347\251\266\343\200\221 \344\273\245ci\344\270\272\344\276\213.md" similarity index 100% rename from "reports/docs/dev_guides/86_\343\200\220\345\274\200\346\272\220\347\244\276\345\214\272\345\257\271\346\257\224\347\240\224\347\251\266\343\200\221 \344\273\245ci\344\270\272\344\276\213.md" rename to "reports/docs/dev_guides/85_\343\200\220\345\274\200\346\272\220\347\244\276\345\214\272\345\257\271\346\257\224\347\240\224\347\251\266\343\200\221 \344\273\245ci\344\270\272\344\276\213.md" From b9ab7a8d5c09cafb4436dfddf28426a23a1f3f6e Mon Sep 17 00:00:00 2001 From: sanbuphy Date: Tue, 4 Apr 2023 10:50:09 +0800 Subject: [PATCH 15/16] fix --- ...1\266\343\200\221 \344\273\245ci\344\270\272\344\276\213.md" | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git "a/reports/docs/dev_guides/85_\343\200\220\345\274\200\346\272\220\347\244\276\345\214\272\345\257\271\346\257\224\347\240\224\347\251\266\343\200\221 \344\273\245ci\344\270\272\344\276\213.md" "b/reports/docs/dev_guides/85_\343\200\220\345\274\200\346\272\220\347\244\276\345\214\272\345\257\271\346\257\224\347\240\224\347\251\266\343\200\221 \344\273\245ci\344\270\272\344\276\213.md" index ca320b551..53947f16c 100644 --- "a/reports/docs/dev_guides/85_\343\200\220\345\274\200\346\272\220\347\244\276\345\214\272\345\257\271\346\257\224\347\240\224\347\251\266\343\200\221 \344\273\245ci\344\270\272\344\276\213.md" +++ "b/reports/docs/dev_guides/85_\343\200\220\345\274\200\346\272\220\347\244\276\345\214\272\345\257\271\346\257\224\347\240\224\347\251\266\343\200\221 \344\273\245ci\344\270\272\344\276\213.md" @@ -1,4 +1,4 @@ -# No.86: 【开源社区对比研究】 以ci为例 +# No.85: 【开源社区对比研究】 以ci为例 ## 目录 From 9b7499a9ec724fbb1d27739960005b5a56b4d44d Mon Sep 17 00:00:00 2001 From: sanbuphy Date: Tue, 4 Apr 2023 15:16:11 +0800 Subject: [PATCH 16/16] fix --- ...6\343\200\221 \344\273\245ci\344\270\272\344\276\213.md" | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git "a/reports/docs/dev_guides/85_\343\200\220\345\274\200\346\272\220\347\244\276\345\214\272\345\257\271\346\257\224\347\240\224\347\251\266\343\200\221 \344\273\245ci\344\270\272\344\276\213.md" "b/reports/docs/dev_guides/85_\343\200\220\345\274\200\346\272\220\347\244\276\345\214\272\345\257\271\346\257\224\347\240\224\347\251\266\343\200\221 \344\273\245ci\344\270\272\344\276\213.md" index 53947f16c..61b704483 100644 --- "a/reports/docs/dev_guides/85_\343\200\220\345\274\200\346\272\220\347\244\276\345\214\272\345\257\271\346\257\224\347\240\224\347\251\266\343\200\221 \344\273\245ci\344\270\272\344\276\213.md" +++ "b/reports/docs/dev_guides/85_\343\200\220\345\274\200\346\272\220\347\244\276\345\214\272\345\257\271\346\257\224\347\240\224\347\251\266\343\200\221 \344\273\245ci\344\270\272\344\276\213.md" @@ -332,7 +332,7 @@ opencv的CI官方解读文档: 从其他的角度来说,实际上Paddle的CI也已经比较完善了,但在具体的细节上仍有可优化的地方,我将会在下面的分析中谈到。 -### **paddle的ci对比其他ci的体验(ci设计本身)** +### paddle的ci对比其他ci的体验(ci设计本身) 参考之前所有开源项目的CI,我整理了一个个人版的CI基准表,并针对上述提到的开源项目填入了相关内容,基准表格如下所示:(评价标准:√表示有较好而完整的功能,O表示功能适当但有待改进,-表示没有或者从文档中不能显式知道是否有对应功能) @@ -350,6 +350,10 @@ opencv的CI官方解读文档: | 选择性构建 | 根据PR中的参数选择性进行构建 | O | √ | - | - | √ | | 完整的CI报告或看板 | 缺陷特征报告、失败次数报告、构建时间报告等 | - | √ | - | - | - | +### ci对项目的保护程度分析 + +总的来说,Paddle的ci对项目的保护还是比较完善的,但和Pytorch比起来还有一定提升的空间。Pytorch有及其庞大的流水线(上百条),对不同系统、不同编译方式(clang/gcc等)都有及其充分的编译、测试流水线;即便是比较相对冷门的功能(比如PyTorch/XLA TPU或者是AMD ROCm)都进行了完整的覆盖,也有周期性的CI做了更进一步的防护。结合静态和动态检查和快速反馈,在CI保护下的pytorch基本可以说是十分牢固的。Paddle则可能相对在不同编译条件、新组建新功能下的测试和快速反馈相对欠缺一些,在这些方面容易造成问题的堆积。 + ## 总结 总的来说,经过大量github上开源项目的CI观察,我们可以认为上述的CI基准是比较完善的,能够较好的反应一个开源项目的CI水平。虽然Paddle的CI在上述基准中表现中上,但还存在一定的可改善空间;在此推荐向pytorch和onnx学习,通过完善一些CI的细节如CI通知、CI重置;完善CI的透明度如CI细节的阐释(如onnx)以及相应的看板,能够让开发者和社区更好的发现对应问题,从而让Paddle的社区协同开发更加稳健可靠,进一步降低沟通成本。