# paddlepaddle/paddle architecture

> Architecture diagram of the GitHub repository paddlepaddle/paddle, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-28). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/paddlepaddle/paddle
- Repository: https://github.com/paddlepaddle/paddle

## Overview

PaddlePaddle is a deep-learning framework spanning model training and inference, automatic/distributed parallelism, differentiation, and compiler/runtime optimization. A principal workflow is to define a model, loss, and optimizer; use the static auto-parallel engine to build and execute programs; and obtain training or inference outputs. Separate branches represent pipeline parallelism, IR/compiler facilities, and optimized inference integrations. The README documents broader capabilities than the sampled source demonstrates; unsampled subsystem links are therefore omitted rather than inferred.

Main entry points: [`python/paddle/distributed/auto_parallel/static/engine.py`](https://github.com/paddlepaddle/paddle/blob/develop/python/paddle/distributed/auto_parallel/static/engine.py) (Auto-parallel engine), [`paddle/pir/include/core/storage_manager.h`](https://github.com/paddlepaddle/paddle/blob/develop/paddle/pir/include/core/storage_manager.h) (IR storage manager), [`paddle/fluid/operators/tensorrt/tensorrt_engine_op.h`](https://github.com/paddlepaddle/paddle/blob/develop/paddle/fluid/operators/tensorrt/tensorrt_engine_op.h) (TensorRT operator), [`python/paddle/distributed/fleet/meta_parallel/pipeline_parallel.py`](https://github.com/paddlepaddle/paddle/blob/develop/python/paddle/distributed/fleet/meta_parallel/pipeline_parallel.py) (Pipeline parallel)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_python_api["Python training"]
  node_auto_engine["Auto-parallel engine<br/>[engine.py]"]
  node_model_loss["Model and loss"]
  node_optimizer["Optimizer"]
  node_train_results["Training outputs"]
end

subgraph group_parallel["Parallel execution"]
  node_pipeline_parallel["Pipeline parallel"]
  node_pipeline_optimizer["Pipeline optimizer<br/>[pipeline.py]"]
end

subgraph group_ir_compiler["IR and compiler"]
  node_pir_storage[("IR storage manager<br/>[storage_manager.h]")]
  node_pir_storage_impl["Storage implementation<br/>[storage_manager.cc]"]
  node_ap_interpreter["AP expression interpreter<br/>[interpreter.h]"]
  node_ap_drr["DRR rewriting<br/>[drr_interpreter.h]"]
  node_ap_codegen["Kernel code generation<br/>[op_code_gen_ctx.h]"]
end

subgraph group_runtime["Execution runtime"]
  node_program_executor["Program executor"]
  node_partial_grad["Partial gradients"]
  node_phi_dispatch["Kernel dispatch"]
  node_device_context["Device context<br/>[device_ctx.h]"]
end

subgraph group_inference["Inference integrations"]
  node_trt_operator["TensorRT operator"]
  node_trt_engine["TensorRT engine<br/>[engine.cc]"]
  node_custom_engine_manager["Custom engine manager"]
end

node_developer(("Model developer"))

node_developer -->|"configures"| node_auto_engine
node_auto_engine -->|"accepts"| node_model_loss
node_auto_engine -->|"accepts"| node_optimizer
node_auto_engine -->|"runs programs"| node_program_executor
node_program_executor -->|"returns outputs"| node_train_results
node_developer -->|"configures"| node_pipeline_parallel
node_developer -->|"configures"| node_pipeline_optimizer
node_pir_storage -->|"implemented by"| node_pir_storage_impl
node_trt_operator -->|"prepares and executes"| node_trt_engine
node_developer -.->|"registers integration"| node_custom_engine_manager

click node_auto_engine "https://github.com/paddlepaddle/paddle/blob/develop/python/paddle/distributed/auto_parallel/static/engine.py"
click node_pipeline_parallel "https://github.com/paddlepaddle/paddle/blob/develop/python/paddle/distributed/fleet/meta_parallel/pipeline_parallel.py"
click node_pipeline_optimizer "https://github.com/paddlepaddle/paddle/blob/develop/python/paddle/incubate/optimizer/pipeline.py"
click node_partial_grad "https://github.com/paddlepaddle/paddle/blob/develop/paddle/fluid/imperative/partial_grad_engine.cc"
click node_pir_storage "https://github.com/paddlepaddle/paddle/blob/develop/paddle/pir/include/core/storage_manager.h"
click node_pir_storage_impl "https://github.com/paddlepaddle/paddle/blob/develop/paddle/pir/src/core/storage_manager.cc"
click node_ap_interpreter "https://github.com/paddlepaddle/paddle/blob/develop/paddle/ap/include/axpr/interpreter.h"
click node_ap_drr "https://github.com/paddlepaddle/paddle/blob/develop/paddle/ap/include/drr/drr_interpreter.h"
click node_ap_codegen "https://github.com/paddlepaddle/paddle/blob/develop/paddle/ap/include/code_gen/op_code_gen_ctx.h"
click node_phi_dispatch "https://github.com/paddlepaddle/paddle/blob/develop/paddle/ap/include/paddle/phi/kernel_dispatch_helper.h"
click node_device_context "https://github.com/paddlepaddle/paddle/blob/develop/paddle/ap/include/kernel_dispatch/device_ctx.h"
click node_trt_operator "https://github.com/paddlepaddle/paddle/blob/develop/paddle/fluid/operators/tensorrt/tensorrt_engine_op.h"
click node_trt_engine "https://github.com/paddlepaddle/paddle/blob/develop/paddle/fluid/platform/tensorrt/engine.cc"
click node_custom_engine_manager "https://github.com/paddlepaddle/paddle/blob/develop/paddle/fluid/custom_engine/custom_engine_manager.cc"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_auto_engine,node_model_loss,node_optimizer,node_train_results toneBlue
class node_pipeline_parallel,node_pipeline_optimizer toneAmber
class node_pir_storage,node_pir_storage_impl,node_ap_interpreter,node_ap_drr,node_ap_codegen toneMint
class node_program_executor,node_partial_grad,node_phi_dispatch,node_device_context toneRose
class node_trt_operator,node_trt_engine,node_custom_engine_manager,node_developer toneIndigo
```

## Components

### Python training

- [Auto-parallel engine](https://github.com/paddlepaddle/paddle/blob/develop/python/paddle/distributed/auto_parallel/static/engine.py): `python/paddle/distributed/auto_parallel/static/engine.py`
- **Model and loss**
- **Optimizer**
- **Training outputs**

### Parallel execution

- [Pipeline parallel](https://github.com/paddlepaddle/paddle/blob/develop/python/paddle/distributed/fleet/meta_parallel/pipeline_parallel.py): `python/paddle/distributed/fleet/meta_parallel/pipeline_parallel.py`
- [Pipeline optimizer](https://github.com/paddlepaddle/paddle/blob/develop/python/paddle/incubate/optimizer/pipeline.py): `python/paddle/incubate/optimizer/pipeline.py`

### IR and compiler

- [IR storage manager](https://github.com/paddlepaddle/paddle/blob/develop/paddle/pir/include/core/storage_manager.h): `paddle/pir/include/core/storage_manager.h`
- [Storage implementation](https://github.com/paddlepaddle/paddle/blob/develop/paddle/pir/src/core/storage_manager.cc): `paddle/pir/src/core/storage_manager.cc`
- [AP expression interpreter](https://github.com/paddlepaddle/paddle/blob/develop/paddle/ap/include/axpr/interpreter.h): `paddle/ap/include/axpr/interpreter.h`
- [DRR rewriting](https://github.com/paddlepaddle/paddle/blob/develop/paddle/ap/include/drr/drr_interpreter.h): `paddle/ap/include/drr/drr_interpreter.h`
- [Kernel code generation](https://github.com/paddlepaddle/paddle/blob/develop/paddle/ap/include/code_gen/op_code_gen_ctx.h): `paddle/ap/include/code_gen/op_code_gen_ctx.h`

### Execution runtime

- **Program executor**
- [Partial gradients](https://github.com/paddlepaddle/paddle/blob/develop/paddle/fluid/imperative/partial_grad_engine.cc): `paddle/fluid/imperative/partial_grad_engine.cc`
- [Kernel dispatch](https://github.com/paddlepaddle/paddle/blob/develop/paddle/ap/include/paddle/phi/kernel_dispatch_helper.h): `paddle/ap/include/paddle/phi/kernel_dispatch_helper.h`
- [Device context](https://github.com/paddlepaddle/paddle/blob/develop/paddle/ap/include/kernel_dispatch/device_ctx.h): `paddle/ap/include/kernel_dispatch/device_ctx.h`

### Inference integrations

- [TensorRT operator](https://github.com/paddlepaddle/paddle/blob/develop/paddle/fluid/operators/tensorrt/tensorrt_engine_op.h): `paddle/fluid/operators/tensorrt/tensorrt_engine_op.h`
- [TensorRT engine](https://github.com/paddlepaddle/paddle/blob/develop/paddle/fluid/platform/tensorrt/engine.cc): `paddle/fluid/platform/tensorrt/engine.cc`
- [Custom engine manager](https://github.com/paddlepaddle/paddle/blob/develop/paddle/fluid/custom_engine/custom_engine_manager.cc): `paddle/fluid/custom_engine/custom_engine_manager.cc`

### Other components

- **Model developer**

## Connections

- Model developer → Auto-parallel engine: configures
- Auto-parallel engine → Model and loss: accepts
- Auto-parallel engine → Optimizer: accepts
- Auto-parallel engine → Program executor: runs programs
- Program executor → Training outputs: returns outputs
- Model developer → Pipeline parallel: configures
- Model developer → Pipeline optimizer: configures
- IR storage manager → Storage implementation: implemented by
- TensorRT operator → TensorRT engine: prepares and executes
- Model developer → Custom engine manager: registers integration
