PFCCLab / Camp

飞桨护航计划集训营
10 stars 67 forks source link

[WeeklyReports] 2024.02.25~2024.03.08 周报汇总 #132

Closed AndSonder closed 4 months ago

AndSonder commented 6 months ago

[WeeklyReports] 2024.02.25~2024.03.08 周报汇总

请各位学员在本 issue 下以 comment 的形式填写周报摘要,ddl 本周五晚,格式示例如下:

### 姓名

xxx

### 本周工作

1. xxx
2. xxx

### 下周工作

1. xxx
2. xxx

### 详细周报链接:

- https://github.com/PFCCLab/Camp/pulls/xxx

项目一:PIR 算子补全与兼容机制建设

项目二:PIR 控制流专项

项目三:PIR Python API 升级及机制建设

项目四:动转静 SOT 模块 Python 3.12 支持

项目五:算子支持复数计算专项

项目六:模型迁移工具建设

项目七:框架 API 易用性提升

项目八:组合机制算子专项和机制建设

项目九:高阶微分的性能分析和优化

项目十:静态图半自动并行训练性能优化

项目十一:全自动并行架构升级

项目十二:科学计算领域拓展专项(DeePMD-kit、光学案例)

项目十三:科学计算领域拓展专项(超分重构方向)

项目十四:科学计算领域拓展专项(领域流体方向)

项目十五:科学计算领域拓展专项(领域气象方向)

项目十六:CINN 支持动态 Shape 专项(前端方向)

项目十七:CINN 支持动态 Shape 专项(PIR 部分)

项目十八:CINN 静态 shape 下鲁棒性和性能优化

项目二十:CINN 支持动态 Shape 专项 (后端模型扩量)

项目二十一:Paddle CMake 治理和编译优化

项目二十二:PaddleMIX 套件能力建设(文图方向)

项目二十三:PaddleMIX 套件能力建设(图文方向)

项目二十四:大模型训练稳定性和高效低价小模型快速收敛

项目二十六:推理 Pass & 融合算子优化

yulangz commented 6 months ago

姓名

王海涛

本周工作

  1. 大模型子图导出

    CINN 编译器用于将动态图转为静态图,对提升 Paddle 性能表现具有重要作用。为了确保 CINN 的鲁棒性,需要对目标大模型进行子图导出,摸底模型结构,生成 CINN 测试,主要进行以下几方面工作:

    1. 走通大模型动转静以及 SOT 子图导出流程
    2. 导出 QWen 子图,并对照子图与原模型结构
    3. 导出 Stable Diffusion 子图,并对照子图与原模型结构

    PR:

下周工作

  1. 继续大模型子图导出
  2. 熟悉 CINN 的设计与实现

详细周报链接:

- https://github.com/PFCCLab/Camp/pulls/xxx

YibinLiu666 commented 6 months ago

姓名

YibinLiu666

本周工作

  1. paddle高阶微分性能分析

    • 测试paddle现有高阶微分算子组合实现与大算子实现的性能。
    • 性能分析,定位到大算子性能较差的高阶微分算子,分析原因
  2. 高阶微分算子组合实现添加

下周工作

  1. 添加上述pr中实现算子的单测
  2. 优化部分微分大算子的性能
  3. 实现log_triple_grad和prod_double_grad的组合实现

详细周报链接

https://github.com/PFCCLab/Camp/pull/134

AndSonder commented 6 months ago

姓名

卢畅

实习项目

静态图半自动并行训练性能优化

本周工作

本项目的主要工作是针对 Paddle 静态图模型的半自动并行训练性能优化,本周主要工作如下:

  1. 为 VPP 适配 send_recv_overlap

相关 PR:

  1. 优化 all_reduce_matmul_grad_overlapping

相关 PR:

  1. 修复 allreduce_matmul_grad_overlapping 和 master_grad 同时开启时候的 bug

相关 PR:

  1. 将 reduce 的 op 移动到 optimize 阶段以提高性能

相关 PR:

  1. 阅读 Zero-Bubble 的论文

下周工作

  1. 阅读 Zero-Bubble 相关代码,了解其实现原理
  2. 初步编写 Zero-Bubble 的实现方案并与导师讨论以完善方案

详细周报链接

gouzil commented 6 months ago

姓名

田川

本周工作

  1. 适配 SOT 字节码 https://github.com/PaddlePaddle/Paddle/pull/62218
  2. 解决 FOR_ITERresume 异常 https://github.com/PaddlePaddle/Paddle/pull/62155

下周工作

  1. 修复剩余 debug 模式下的段错误问题 https://github.com/PaddlePaddle/Paddle/issues/61174#issuecomment-1978136598

详细周报链接:

unseenme commented 6 months ago

姓名

Github ID: unseenme

本周工作

  1. CINN后端代码学习,了解CINN底层IR
  2. 学习符号表达式与整数集合
  3. 学习如何在Linux下使用Docker编译CINN
  4. 表达式化简AutoSimplify考察

下周工作

  1. 表达式化简AutoSimplify代码分析与缺陷挖掘。
  2. 表达式化简AutoSimplify测试与Bug总结。
  3. 对导师提供的测试结果进行分析归纳。(将于导师提供测试结果之后进行)

详细周报链接:

silverling commented 6 months ago

姓名

凌少鹏

Github ID:silverling

本周工作

  1. 分析编译多种 CUDA 架构的 libphi.so 时链接器的报错原因
  2. 尝试清理源码文件以及头文件中的无用 #include
  3. 初步优化 CMake 编译架构,逐步添加 Clang/LLVM 支持
  4. 与导师讨论分析了接下来的优化方向
  5. 相关 PR:

下周工作

  1. 分模块编译 PHI,划分 CUDA 算子单独编译
  2. 完善 Clang/LLVM 支持
  3. 完善 CMake 中的代码规范,优化 deprecated 代码

详细周报链接:

huangjiyi commented 6 months ago

姓名

黄济懿

实习项目

PIR 控制流专项

本周工作

  1. 修复 PIR 控制流模型测试 BUG

  2. 将 pir::DenseTensorType 从 OperatorDialect 下沉到 BuiltinDialect

下周工作

  1. PIR 控制流模型测试 BUG 修复
  2. 其他 PIR 控制流相关工作

详细周报链接:

xingmingyyj commented 6 months ago

姓名

朱新明

本周工作

统计新旧IR下算子签名差异

  1. 统计旧IR下算子全集
  2. 统计新IR下算子全集
  3. op_compat.yaml信息应用于旧IR算子签名
  4. 比较新旧IR下算子签名差异

    PIR静态图适配op_callstack属性

  5. PIR动转静适配op_callstack属性
  6. Review分布式算子注册相关PR

详细周报链接:

lishuai-97 commented 6 months ago

姓名

李帅

Github ID: lishuai-97

本周工作

  1. 学习XXX梯度裁剪算法原理、实现方式
  2. 大模型训练稳定性探索、小规模模型复现

下周工作

  1. 完善在小规模开源模型上loss spike的复现
  2. 在toy expample上验证改进的优化算法
  3. 阅读符号优化器相关论文,提供理论支撑

详细周报链接:

Tsaiyue commented 6 months ago

姓名

蔡越

本周工作

  1. 完成AnimateAnyone前向推理对齐,解除从huggingface权重下载依赖并支持fp16;
  2. 编写ai studio角色动作生成项目,相较仓库新增客制化动作视频生成功能;
  3. 分析源库两阶段训练流程,确立基于paddlenlp.Trainer构建使用sharding优化策略的训练流程。

下周工作

  1. 基于paddlenlp.Trainer实现AnimateAnyone两阶段训练steploss对齐,按照no trainer->对齐loss->trainer的流程进行。

详细周报链接:

zeroRains commented 6 months ago

姓名

卢林军

本周工作

  1. 前向拆解square算子
  2. 前向拆解binary_cross_entropy_with_logits算子
  3. 反向拆解put_along_axis算子
  4. 前向拆解elu算子

下周工作

  1. 学习在组合机制下,添加组合算子对动态shape支持的代码实现。
  2. 尝试对一些组合算子添加动态shape的支持。

详细周报链接:

Yang-Changhui commented 6 months ago

姓名

杨昌辉

本周工作

1.完成earthformer论文的阅读,并形成文档 2.支持ICAR-ENSO数据集,搭建了earthformer的网络,完成了基本训练

下周工作

1.完成推理对齐,解决遇到的bug 2.完成模型的完整训练

详细周报链接:

yinfan98 commented 6 months ago

姓名

尹帆

本周工作

  1. 调研OnnxRuntime,FasterTransformer,PyTorch,OneDNN,OpenVINO融合算子实现
  2. 产出文档并分析Paddle缺失的算子
  3. 开会沟通并确定待实现的算子列表
  4. 学习torch.inductor,torch.dynamo等优化手段

下周工作

  1. PyTorch,OnnxRuntime实现ViT并分析其中融合pass
  2. 实现gemm_transpose_fusion pass+kernel
  3. 实现fused_bias_act/fused_rms_norm/fused_layer_norm pass

详细周报链接:

zhaojiameng commented 6 months ago

姓名

赵加孟

本周工作

  1. 原始代码校验

  2. 转换paddle代码

下周工作

  1. 手动转换剩余代码

  2. 原始代码训练部分验证,尝试训练出缺失的权重文件

详细周报链接:

NKNaN commented 6 months ago

姓名

李睿文

本周工作

  1. 针对 nn.functional.upsamplingnn.Upsample 的功能增强
  2. 尝试 nn.functional.ctc_lossnn.CTCLoss 的功能增强
  3. 针对 paddle.median 的功能增强
  4. 针对 paddle.nonzero 的bug修复

下周工作

  1. 完善已提交的 pr
  2. 继续修改其他框架 API

详细周报链接:

lshpku commented 6 months ago

姓名

梁书豪

本周工作

  1. reduce算子为例,借助CINN输出的log,理解CINN的工作流程
  2. 看CINN前端的关键Pass和后端的Tactic的代码

下周工作

  1. 检查Convert0DTo1DPass所影响的单测用例,提出修改思路
  2. 继续看后端代码中PostProcess的部分

详细周报链接:

ZelinMa557 commented 6 months ago

姓名

马欣楷

本周工作

  1. 理解cinn前端pass执行流程
  2. 重构lower_cinn_fusion_op_pass中的group结构体

下周工作

  1. 尽早合入重构pr
  2. 尝试解决cinn部分单测问题

详细周报链接:

RedContritio commented 6 months ago

姓名

Github ID: RedContritio

本周工作

  1. 对存在于 paconvert/api_mappings.json 但缺失的映射文档进行补充,添加对应映射文档。
  2. 面向更新的 Paddle API 功能,更新映射文档

下周工作

  1. 继续补充完善可映射但缺失的部分映射文档;
  2. 添加映射主目录生成时对 api_aliases 的处理;
  3. 面向更新升级的 Paddle API,更新映射文档、映射方法与测试用例。

详细周报链接:

cocoshe commented 6 months ago

姓名

叶柯

实习项目

PaddleMIX 套件能力建设(图文方向)

本周工作

本周主要工作如下:

  1. 完成CogAgent前向推理对齐以及单测添加:
  2. 完成qwen-vl的单测添加:

下周工作

  1. InternLM-XComposer前向和训练对齐
  2. fuyu-8b前向对齐

详细周报链接:

zbt78 commented 6 months ago

姓名

周波涛

实习项目

算子支持复数计算专项

本周工作

  1. 学习静态图中attrs为scalar的实现原理。目前根据op.yaml自动生成代码时Scalar类型被转换成了float,但是为了支持complex,此处感觉应该为Scalar
  2. log、log2、log10、log1p的复数支持进行中
  3. pow复数支持中的 pow部分,elementwish_pow还在完善中

相关pr:https://github.com/PaddlePaddle/Paddle/pull/62448

下周工作

  1. 完成pow复数支持
  2. 继续阅读源码,弄懂算子输出类型和梯度类型从何而来,具体由什么确定;为什么有的算子的op.yaml中推导过程为UnchangedInferMeta,但输出类型和输入类型却不一样;而有的算子用自定义的InferMeta,但输入类型和输出类型却一样。
  3. 修复log、log2、log10、log1p中输入类型为int时的backward

详细周报链接:

xusuyong commented 6 months ago

姓名

徐苏勇

本周工作

  1. 为DeepMD-kit的paddle后端增加 water_tensor polar 案例
  2. 将原paddle2分支的代码整理到paddle分支。相关PR:- https://github.com/HydrogenSulfate/deepmd-kit/pull/6

下周工作

  1. 为paddleScience增加光学案例

详细周报链接:

fty1777 commented 6 months ago

姓名

Github ID: fty1777

本周工作

  1. 配置CINN开发环境,熟悉codebase

  2. 熟悉符号推导相关代码和数据结构

  3. 实现SplitOp的符号推导

    • PaddlePaddle/Paddle#62394

下周工作

  1. 尽早完成SplitOp的PR合入
  2. 根据需求动态调整,进一步分配其他算子的推导实现

详细周报链接:

WintersMontagne10335 commented 6 months ago

姓名

马贺达

本周工作

  1. 阅读 CINN 相关笔记、源码,并产出流程图
  2. 复习 CUDA 基础知识
  3. 尝试修复CINN的框架 bug

下周工作

  1. 修复CINN的框架子图 bug 5-6个
  2. 继续熟悉 CINN 源码,重点阅读 static group schedule 相关内容,完善流程图

详细周报链接:

zrr1999 commented 6 months ago

姓名

詹荣瑞

本周工作

  1. 迁移 fused_multi_transformer/fused_bias_dropout_residual_layer_norm 到 PHI。

    相关 PR:

  2. PIR test_errors 相关单测适配

    相关 ISSUE:

    相关 PR:

下周工作

  1. 继续推进 PIR test_errors 相关单测适配。
  2. 完成 dtype 的统一工作,相关 PR:

详细周报链接:

zyt1024 commented 6 months ago

姓名

张玉涛

本周工作

  1. 添加复数算子支持

下周工作

  1. 研究fill_constant中复数测试存在的问题

详细周报链接:

Corle-hyz commented 6 months ago

姓名

何咏哲

本周工作

  1. 调研vPipe工作
  2. 讨论异构环境下的全自动并行方案

下周工作

  1. 继续思考原本的全自动并行方案在异构环境下需要改进的地方。
  2. 提出一些经验策略进行启发式搜索,进一步缩小搜索空间。

详细周报链接:

DUCH714 commented 6 months ago

姓名

于天池

本周工作

  1. 阅读GINO论文。
  2. 熟悉GINO代码文件。
  3. 数据输入输出整理归纳。
  4. 阅读针对GION代码邻接矩阵过大问题尝试使用的巨图随机采样技术
  5. 阅读TSONN论文。

下周工作

  1. 复现GION

详细周报链接:

Xinyu302 commented 6 months ago

姓名

杨新宇

本周工作

  1. 配置CINN开发环境,熟悉codebase
  2. 熟悉符号推导相关代码和数据结构
  3. 实现TaskAlongAxis和PutAlongAxis的符号推导:

下周工作

  1. 进一步完成其他算子的推导实现

详细周报链接:

sunzhongkai588 commented 6 months ago

营员变动公示: