skills/pfcclab/paddle-skills/paddle-eager-graph

paddle-eager-graph

SKILL.md

Paddle 动态图(Eager Mode)导航索引

Paddle 动态图边执行边建图:前向执行时构建反向图,调用 backward() 时按拓扑序执行反向图。

前向调用链路

Python paddle.add(x, y)
① ops_api.cc          ─ Python-C 映射,GetTensorFromArgs 提取 Tensor
② eager_op_function.cc ─ 参数解析 / Dist Tensor / 释放 GIL / backend 选择
③ dygraph_functions.cc ─ AMP / Type Promotion / 创建 GradNode / 构建反向图
④ api.cc              ─ KernelKey 构造 / Kernel 选择 / PrepareData / InferMeta
⑤ PHI Kernel 执行

关键文件表

层级 代码路径 代码生成器
① Python-C 映射 paddle/fluid/pybind/ops_api.cc ops_api_gen.py
② 动态图 C++ 接口 paddle/fluid/pybind/eager_op_function.cc python_c_gen.py
③ 自动微分函数 paddle/fluid/eager/api/generated/.../dygraph_functions.cc eager_gen.py
④ PHI 算子库接口 paddle/phi/api/lib/api.cc tensor_operants_gen.py

反向关键数据结构

数据结构 一句话描述
AutogradMeta Tensor 持有的反向元信息:梯度、来源 GradNode、slot/rank 位置
GradNodeBase 反向节点基类,纯虚 operator() 执行反向计算
GradSlotMeta 描述 GradNode 某个 slot 的 meta 信息与出边 Edge
Edge 指向后继 GradNode 的边,含 in_slot_id_in_rank_
TensorWrapper GradNode 中保存前向 Tensor 的包装器,含 inplace 版本快照
GradTensorHolder 反向执行期间临时存放与聚合梯度的二维 buffer

调试场景速查

调试场景 阅读哪个参考文档
前向调用链路 / Kernel 选择问题 forward-call-chain.md
反向梯度不正确 / 拓扑排序问题 backward-execution.md
数据结构成员 / 内存泄漏排查 autograd-data-structs.md
自定义反向 PyLayer pylayer.md
复数梯度 / Wirtinger 导数 complex-autograd.md
Inplace 操作 / 版本追踪 inplace.md

社区资料(L3 层)

Weekly Installs
3
GitHub Stars
1
First Seen
3 days ago
Installed on
claude-code3
mcpjam2
kilo2
junie2
windsurf2
zencoder2