Skip to content

Commit 0807e7e

Browse files
committed
Merge branch 'main' of https://github.com/PFCCLab/Camp into weeklyreport-20260308
2 parents 82969f5 + 322a495 commit 0807e7e

26 files changed

+581
-21
lines changed

WeeklyReports/hackathon_10th/02_algorithm1832/[WeeklyReport]2026.01.05~2026.01.18.md renamed to WeeklyReports/Hackathon_10th/02_algorithm1832/[WeeklyReport]2026.01.05~2026.01.18.md

File renamed without changes.
Lines changed: 81 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,81 @@
1+
### 姓名
2+
3+
杨锃砚
4+
5+
6+
7+
### 实习项目
8+
9+
Paddle API兼容性增强
10+
11+
12+
13+
### 本双周工作
14+
15+
1. **torch.std对齐**
16+
17+
- https://github.com/PaddlePaddle/Paddle/pull/77006
18+
- https://github.com/PaddlePaddle/PaConvert/pull/804
19+
- https://github.com/PaddlePaddle/PaConvert/pull/813
20+
- https://github.com/PaddlePaddle/docs/pull/7680
21+
- 状态:CI通过,等待合入
22+
- 所属:API兼容性增强任务
23+
- 描述:
24+
- 在PaConvert增强对应的测试用例,补充中文文档修改
25+
- 内容详情详见上次双周周报
26+
27+
2. **abs_下沉**
28+
29+
- https://github.com/PaddlePaddle/Paddle/pull/77294
30+
- https://github.com/PaddlePaddle/PaConvert/pull/811
31+
- https://github.com/PaddlePaddle/docs/pull/7697
32+
- 状态:全部已合入
33+
- 所属:API兼容性增强任务、inplace API下沉系列任务
34+
- 描述:
35+
- 在PaConvert增强对应的测试用例,补充中文文档修改
36+
- 内容详情详见上次双周周报
37+
38+
3. **`paddle.utils.data.*`对齐**
39+
40+
- https://github.com/PaddlePaddle/Paddle/pull/77391
41+
- https://github.com/PaddlePaddle/Paddle/pull/77446
42+
- https://github.com/PaddlePaddle/Paddle/pull/77451
43+
- https://github.com/PaddlePaddle/Paddle/pull/77591
44+
- https://github.com/PaddlePaddle/PaConvert/pull/817
45+
- 状态:CI通过,等待合入
46+
- 所属:API兼容性增强任务
47+
- 描述:
48+
- 实现了上个双周的方案,通过`paddle.utils`的按需导入,延后了对应类和方法的导入时机,不会触发循环依赖,同时补充了对应的单测
49+
- PaConvert测试过程中发现存在`torch.utils.data.dataloader.default_collate`这个用法,在torch文档里没有写,paddle的API差异文档也没写,但PaConvert做了测试,所以后来加了一下别名
50+
- 目前处理了"仅API调用方式不一致"的所有API(10个API)
51+
52+
4. **装饰器优化**
53+
54+
- https://github.com/PaddlePaddle/Paddle/pull/77497
55+
- https://github.com/PaddlePaddle/Paddle/pull/77561
56+
- 状态:全部已合入,系列任务进行中
57+
- 所属:API兼容性增强任务、衍生的杂项任务
58+
- 描述:
59+
- 有些API为了实现兼容性,使用了自己定义的装饰器,后来定义了通用的别名装饰器,自定义装饰器性能会比通用装饰器差一点,所以尽量替换为通用装饰器
60+
- 通用装饰器`ParamAliasDecorator`可以处理任意别名情况,但性能较差,将单参数别名和双参数别名的替换为`param_one_alias``param_two_alias`提高性能
61+
62+
63+
64+
### 下双周工作
65+
66+
1. **`paddle.utils.data.*`对齐**的中文文档修改
67+
2. **装饰器优化**进行下一子任务:自定义装饰器代码可读性差,通过overload维护方法签名增强可读性
68+
3. **inplace API下沉系列任务**进行下一子任务:inplace API的`python_api_info.yaml`解析处理(原先逻辑似乎是直接用非inplace版本的配置,不够灵活)
69+
4. 继续认领完成其它任务
70+
71+
72+
73+
### 导师点评
74+
75+
杨锃砚同学半个月来积极开展工作,顺利完成了多个API的兼容性增强,同时完成3个API机制优化的工作:
76+
77+
1. inplace下沉机制优化
78+
2. `torch.utils.data.*`批量对齐与导入路径设计
79+
3. 装饰器性能与可读性优化
80+
81+
API机制优化的工作,相比单个API更有难度,体现出对Paddle代码有了较好理解。后续将上述工作继续收尾,由于机制优化工作更为重要,在日常工作中需优先开展,然后再开展剩余API的对齐。
Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
### 姓名
2+
3+
杨锃砚
4+
5+
6+
7+
### 实习项目
8+
9+
Paddle API兼容性增强
10+
11+
12+
13+
### 本双周工作
14+
15+
1. **使用overload增强自定义别名装饰器可读性**
16+
17+
- https://github.com/PaddlePaddle/Paddle/pull/77632
18+
- 状态:已合入
19+
- 所属:衍生的杂项任务
20+
- 描述:
21+
- 部分逻辑重复的自定义装饰器换成通用装饰器,提高性能
22+
- 对于自定义添加别名的装饰器,对应方法增加overload(paddle调用方式、torch调用方式),增加代码可读性
23+
- 添加了一些示例代码
24+
- 目前只有示例代码包含的用法,才会在static-check中检查到,经过文档检查,实际上仍然存在部分方法示例代码并没有覆盖此函数所有的用法。在这种情况下,如果overload或者函数签名写的不对,则检查不出来。本PR添加的示例代码主要是为了通过static-check检验添加的overload是否和调用一致
25+
- 原先对python的overload的作用和可变参数类型不太理解,所以此PR后面又经过了几次修订才被合入,非常感谢@SigureMo, @zhwesky2010的指导
26+
27+
2. **python_api_info.yaml支持inplace API的配置**
28+
29+
- https://github.com/PaddlePaddle/Paddle/pull/77751
30+
- https://github.com/PaddlePaddle/Paddle/pull/77778
31+
- https://github.com/PaddlePaddle/Paddle/pull/77824
32+
- 状态:已合入
33+
- 所属:inplace API下沉系列任务
34+
- 描述:
35+
- 原先代码生成逻辑存在一些冗余,且将解析得到的python_api_info作为类成员进行存储,实际上此信息只在子类中进行使用,#77751#77778将对应的逻辑从父类移除,实际检索python_api_info的逻辑放到`monkey_patch_gen``python_c_gen`内部
36+
- 对于inplace API,原先逻辑实际上是复用python_api_info中对于非inplace版本API的内容,对于需要单独添加pre-process或者arg-mapper的那些inplace API,对应的定义不会生效。#77824在前面PR整理的逻辑上,对于inplace和非inplace版本的API分别调用代码生成,读取各自的python_api_info。除此之外还整理了代码生成的逻辑,添加了一些注释,将可复用的逻辑抽成方法
37+
38+
39+
40+
### 下双周工作
41+
42+
1. 优化兼容性装饰器的报错提示信息
43+
2. 优化API的英文文档,完善兼容性别名的说明
44+
3. 如有时间剩余,继续认领完成其它任务
45+
46+

WeeklyReports/hackathon_10th/2_Manfredss/2026.01.05~2026.01.18.md renamed to WeeklyReports/Hackathon_10th/2_Manfredss/[WeeklyReport]2026.01.05~2026.01.18.md

File renamed without changes.
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
### 姓名
2+
戚文斐
3+
4+
### 实习项目
5+
Paddle API 兼容性增强
6+
7+
### 本周工作
8+
1. [PR #77300](https://github.com/PaddlePaddle/Paddle/pull/77300)
9+
paddle.nn.funtional.relu / paddle.nn.functional.leaky_relu / paddle.nn.functional.relu_ / paddle.nn.functional.leaky_relu_ 以及 paddle.relu 对齐, 使用装饰器。PR 已合入
10+
2. [PR #77194](https://github.com/PaddlePaddle/Paddle/pull/77194) paddle.randint 对齐, 使用装饰器。PR 已合入
11+
3. [PR #77078](https://github.com/PaddlePaddle/Paddle/pull/77078) paddle.inverse 对齐, 采用 cpp 下称机制。在对齐过程中发现现有的 api patch 机制存在缺陷,表现为 CI/CE-Framework 测试不通过, 经本地测试确认此缺陷:
12+
```bash
13+
pytest paddletest/framework/api/linalg/test_inv.py # Test Fail
14+
```
15+
通过调研发现缺陷存在于代码生成器。改进措施:生成器增强,扩展 monkey_patch_gen.py 以支持通用模块路径。
16+
- 新增 `generic_funcs_map` 储存 (`module_path`, `method_name`, `method`) 元组
17+
- 修改 `ClassifyAPIByPrefix` 函数将未匹配的 `paddle.*` 前缀纳入通用映射表
18+
- 在运行时通过 `getattr()` 动态调用目标模块并设置属性
19+
20+
修改文件:`paddle/fluid/eager/auto_code_generator/generator/monkey_patch_gen.py`
21+
结论:未来添加类似路径的 API,如 paddle.fft.* 等时,只要在 yaml 文件中配置即可
22+
PR 已合入
23+
4. [PR #77168](https://github.com/PaddlePaddle/Paddle/pull/77168) paddle.deg2rad 对齐,使用装饰器。PR 已合入
24+
5. [PR #77333](https://github.com/PaddlePaddle/Paddle/pull/77333) 新增 paddle.addcmul api,对齐 pytorch 别名,但是现有测试的 coverage test 依然不够标准,有待后续跟进。整体实现已完成,已被 Approved。待 coverage test 完善后最终 review。
25+
6. [PR #77170](https://github.com/PaddlePaddle/Paddle/pull/77170) paddle.lerp 对齐,实验了能否将 `weight` 参数的值的类型改为 `Scalar` 然后采用 cpp 下沉。结论是不可以,因为 `weight` 需要接受多元素,而 `Scalar` 只能接受标量。现在尝试采用 mapper 的方式进行cpp 下沉。在 `paddle/fluid/pybind/args_mapper.cc` 中添加辅助函数 `LerpMapper``LerpInplaceMapper` 并在 `python_api_info.yaml` 中添加 `Lerp``LerpInplace` 的参数映射关系。目前在研究 inplace 版本和不是 inplace 版本能否共用一个 Mapper,解决后再进行 review。
26+
27+
### 下周工作
28+
1. 继续 paddle.addcmul 和 paddle.lerp 的收尾工作,争取合并 PR
29+
2. 检查上述所有 api 的 paconvert 是否正常,并修改对应的中文文档
30+
3. 有时间认领 paddle.nn.ParameterDict, paddle.nn.functional.pixel_shuffle, paddle.mm 和 paddle.Tensor.tile 这几个 api 的对齐工作。
31+
32+
### 导师点评
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
### 姓名
2+
戚文斐
3+
4+
### 实习项目
5+
Paddle API 兼容性增强
6+
7+
### 本周工作
8+
1. [PR #77749](https://github.com/PaddlePaddle/Paddle/pull/77749) 实现新 api `paddle.nn.utils.rnn.pad_sequence``paddle.nn.utils.rnn.unsequence`。PR 已合入
9+
2. [PR #77973](https://github.com/PaddlePaddle/Paddle/pull/77973) `paddle.mm` 对齐, 新增 out 参数。PR 已合入
10+
3. [PR #78004](https://github.com/PaddlePaddle/Paddle/pull/78004) `paddle.nn.ParameterDict` 对齐, 使用装饰器。PR 已合入
11+
4. [PR #77891](https://github.com/PaddlePaddle/Paddle/pull/77891)`paddle.relu` 添加别名 `paddle.nn.functional.relu`。PR 已合入
12+
5. [PR #77889](https://github.com/PaddlePaddle/Paddle/pull/77889) 修复 paddle.atan2,移除 `Atan2Functor<int32_t>``Atan2Functor<int64_t>`。PR 已合入
13+
14+
### 下周工作
15+
1. 对齐 paddle.amp.GradScaler,需要对齐参数顺序、参数名称、参数的默认值和调用路径。计划先调研新增一个专用装饰器的可行性,不行的话对齐 paddle.cuda.amp.GradScaler。同时强化 paconvert 中的测试。
16+
2. 本地测试 paddle.addcmul,精简 unit test.
17+
3. 修复 paddle.randint。需要参考[文档](https://www.paddlepaddle.org.cn/documentation/docs/zh/develop/guides/model_convert/convert_from_pytorch/api_difference/torch_more_args/torch.randint.html)
18+
4. 有时间认领剩余任务
19+
20+
### 导师点评
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
### 姓名
2+
3+
徐启越
4+
5+
### 实习项目
6+
7+
FlashAttention 低精度训练算法研究与 Kernel 开发
8+
9+
### 本周工作
10+
11+
1. 搭建 CUDA Kernel + PyTorch Baseline 的统一测试框架 (ArcaLunar/kernel-bench)
12+
- 基于 PyTorch C++/CUDA Extension 设计 kernel adapter,便于后续 SageAttention / FA+FlashMask/ Sage+FlashMask 算子的统一接入和测试
13+
- 设计 metric registry,便于后续对所有算子在不同指标上进行统一测试,且易于拓展
14+
- 设计 reporter,便于导出为 csv,json 供进一步分析
15+
2. 研读 SageAttention 算法细节与实现
16+
3. 研读 FlashMask 算法细节与实现
17+
4. 基于已有 Sage Attention 和 FlashMask 实现,开发 Sage+FlashMask(尚未进行测试,ArcaLunar/sage-flashmask)
18+
19+
### 下周计划
20+
21+
1. 进一步添加 metric 支持(如速度,FLOPs 等等)
22+
2. Sage+FlashMask 算子开发
23+
3. 将 Sage+FlashMask, Sage, FA+FlashMask 接入框架进行测试
24+
4. 根据测试结果和性能分析,对算子进行优化
25+
26+
### 导师点评
27+
28+
29+
30+
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
### 姓名
2+
杨晓春
3+
4+
### 实习项目
5+
Paddle C++ API生态兼容建设
6+
7+
### 本周工作
8+
TensorBody.h 下新增若干接口,PR链接如下:
9+
https://github.com/PaddlePaddle/Paddle/pull/77514
10+
https://github.com/PaddlePaddle/Paddle/pull/77543
11+
https://github.com/PaddlePaddle/Paddle/pull/77542
12+
https://github.com/PaddlePaddle/Paddle/pull/77540
13+
https://github.com/PaddlePaddle/Paddle/pull/77539
14+
https://github.com/PaddlePaddle/Paddle/pull/77520
15+
https://github.com/PaddlePaddle/Paddle/pull/77515
16+
https://github.com/PaddlePaddle/Paddle/pull/77436
17+
https://github.com/PaddlePaddle/Paddle/pull/77417
18+
19+
### 下周工作
20+
继续完善 TensorBody.h 文件及相关测试
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
### 姓名
2+
杨晓春
3+
4+
### 实习项目
5+
Paddle C++ API生态兼容建设
6+
7+
### 本周工作
8+
TensorBody.h 下新增 'data' 'cpu' 'meta' 'toBackend' 'is_variable' 'item' 'packed_accessor' 'index' 'index_put_' 'cuda' 'set_requires_grad' 'mutable_grad' 兼容接口
9+
PaddlePaddle/Paddle#77182 PaddlePaddle/Paddle#77417
10+
11+
部分接口未提交PR
12+
13+
### 下周工作
14+
继续完善 TensorBody.h 文件及相关测试
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
### 姓名
2+
3+
LiaoYFBH
4+
5+
### 实习项目
6+
7+
[PaddleOCR + ERNIE × Open-Source Ecosystem 高价值开源项目案例征集]
8+
9+
### 本周工作
10+
11+
1. 完成了第一个dify agent的搭建,实现了每天根据用户指定的研究内容为用户推送arxiv更新论文的功能,因为使用的星河社区大模型API的dify插件还没被合并,暂时还不能导出DSL文件建立仓库。
12+
1. 搭建了文心飞桨星河社区大模型API的dify插件,提交了PR:[Add ernie-paddle-aistudio-api plugin by LiaoYFBH · Pull Request #1993 · langgenius/dify-plugins](https://github.com/langgenius/dify-plugins/pull/1993)
13+
14+
#### 问题疑惑与解答
15+
16+
暂无
17+
18+
### 下周工作
19+
20+
1. 打算做由上传论文,直接导出可用于汇报PPT的工作流。
21+
1. 思考用dify做代码agent是否可行。
22+
1. 整理搭建过程的文档。
23+
1. 创建个人公众号
24+
1. 构思下一个智能体。
25+
26+
### 导师点评

0 commit comments

Comments
 (0)