|
1 | 1 | [<img src="docs/images/flagopen.png">](https://flagopen.baai.ac.cn/) |
2 | 2 |
|
3 | 3 | ## Latest News |
| 4 | +- **[2025/10]** Released [v0.6](https://github.com/FlagOpen/FlagCX/tree/release/v0.6): |
| 5 | + - Supported device-buffer P2P communication to achieve intra-node SendRecv operations. |
| 6 | + - Introduced Device-initiated, Host-launched device-side primitives, enabling kernel-based communication directly from the device. |
| 7 | + - Enhanced automatic tuning functionality, achieving up to 50% performance improvement on Metax platforms for the AllReduce operation. |
4 | 8 | - **[2025/09]** Released [v0.5](https://github.com/FlagOpen/FlagCX/tree/release/v0.5): |
5 | | - - Adds AMD support (hipAdaptor and rcclAdaptor). |
6 | | - - Introduces flagcxNetAdaptor to unify network backends, currently supporting SOCKET, IBRC, UCX and IBUC (experimently). |
7 | | - - Enables zero-copy device-buffer RDMA (user-buffer RDMA) to boost small-message performance. |
8 | | - - Supports automatic tuning in homogeneous scenarios via flagcxTuner. |
9 | | - - Integrates automated PyTorch API tests into CI/CD. |
| 9 | + - Added AMD support (hipAdaptor and rcclAdaptor). |
| 10 | + - Introduced flagcxNetAdaptor to unify network backends, currently supporting SOCKET, IBRC, UCX and IBUC (experimently). |
| 11 | + - Enabled zero-copy device-buffer RDMA (user-buffer RDMA) to boost small-message performance. |
| 12 | + - Supported automatic tuning in homogeneous scenarios via flagcxTuner. |
| 13 | + - Integrated automated PyTorch API tests into CI/CD. |
10 | 14 | - **[2025/08]** Released [v0.4](https://github.com/FlagOpen/FlagCX/tree/release/v0.4): |
11 | | - - Supports heterogeneous training of ERNIE4.5 on Nvidia and Iluvatar GPUs with Paddle + FlagCX. |
12 | | - - Enables more robust and flexible deployments with full support of heterogeneous communication across arbitrary NIC configurations (bug fixes). |
13 | | - - Introduces an early experimental net plugin interface extending its support for both IBRC and SOCKET, along with the ability to register device buffers via DMA-BUF. |
14 | | - - Adds an InterOp-level DSL to allow users designing customized C2C algorithms. |
15 | | - - Provides usage documentation under docs/. |
| 15 | + - Supported heterogeneous training of ERNIE4.5 on Nvidia and Iluvatar GPUs with Paddle + FlagCX. |
| 16 | + - Enabled more robust and flexible deployments with full support of heterogeneous communication across arbitrary NIC configurations (bug fixes). |
| 17 | + - Introduced an early experimental net plugin interface extending its support for both IBRC and SOCKET, along with the ability to register device buffers via DMA-BUF. |
| 18 | + - Added an InterOp-level DSL to allow users designing customized C2C algorithms. |
| 19 | + - Provided usage documentation under docs/. |
16 | 20 | - **[2025/07]** Released [v0.3](https://github.com/FlagOpen/FlagCX/tree/release/v0.3): |
17 | | - - Integrates three additional native communication libraries: HCCL, MUSACCL and MPI. |
18 | | - - Enhances heterogeneous collective communication operations with pipeline optimizations. |
19 | | - - Introduces a device-side function mechanism to enable device-buffer RDMA, complementing the original host-side function mechanism. |
20 | | - - Delivers a full-stack open-source solution, FlagScale + FlagCX, for efficient heterogeneous prefilling-decoding disaggregation. |
| 21 | + - Integrated three additional native communication libraries: HCCL, MUSACCL and MPI. |
| 22 | + - Enhanced heterogeneous collective communication operations with pipeline optimizations. |
| 23 | + - Introduced a device-side function mechanism to enable device-buffer RDMA, complementing the original host-side function mechanism. |
| 24 | + - Delivered a full-stack open-source solution, FlagScale + FlagCX, for efficient heterogeneous prefilling-decoding disaggregation. |
21 | 25 | - **[2025/05]** Released [v0.2](https://github.com/FlagOpen/FlagCX/tree/release/v0.2): |
22 | | - - Integrates three additional native communications libraries, including MCCL, XCCL and DUCCL. |
23 | | - - Improves 11 heterogeneous collective communication operations with automatic topology detection, fully supporting both single-NIC and multi-NIC environments. |
| 26 | + - Integrated three additional native communications libraries, including MCCL, XCCL and DUCCL. |
| 27 | + - Improved 11 heterogeneous collective communication operations with automatic topology detection, fully supporting both single-NIC and multi-NIC environments. |
24 | 28 | - **[2025/04]** Released [v0.1](https://github.com/FlagOpen/FlagCX/tree/release/v0.1): |
25 | | - - Integrates five native communications libraries including NCCL, IXCCL, CNCL, BOOTSTRAP and GLOO. |
26 | | - - Supports 11 heterogeneous collective communication operations using the originally proposed C2C (Cluster-to-Cluster) algorithm. |
27 | | - - Provides a full-stack open-source solution, FlagScale + FlagCX, for efficient heterogeneous training. |
| 29 | + - Integrated five native communications libraries including NCCL, IXCCL, CNCL, BOOTSTRAP and GLOO. |
| 30 | + - Supported 11 heterogeneous collective communication operations using the originally proposed C2C (Cluster-to-Cluster) algorithm. |
| 31 | + - Provided a full-stack open-source solution, FlagScale + FlagCX, for efficient heterogeneous training. |
28 | 32 | - Natively integrated into PaddlePaddle [v3.0.0](https://github.com/PaddlePaddle/Paddle/tree/v3.0.0), with support for both dynamic and static graphs. |
29 | 33 |
|
30 | 34 | ## About |
@@ -87,11 +91,11 @@ FlagCX also integrates with upper-layer applications such as PyTorch and PaddleP |
87 | 91 | | all_to_all_single | ✓ | ✓ | |
88 | 92 | | barrier | ✓ | ✓ | |
89 | 93 |
|
90 | | -The FlagCX PyTorch plugin has undergone comprehensive validation across multiple communication backends, as summarized below: |
| 94 | +In particular, PyTorch support is enabled via the FlagCX Torch Plugin, which provides native integration with the PyTorch distributed backend. This plugin has undergone comprehensive validation across diverse communication backends and hardware platforms, ensuring robust functionality, consistent performance, and compatibility in heterogeneous multi-chip environments, as summarized below: |
91 | 95 |
|
92 | | -| FlagCX Backend | NCCL | IXCCL | CNCL | MCCL | XCCL | DUCCL | HCCL | MUSACCL | RCCL | |
93 | | -| ---------------------- | ---- | ----- | ---- | ---- | ---- | ----- | ---- | ------- | ---- | |
94 | | -| PyTorch Plugin Support | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ☓ | ✓ | |
| 96 | +| FlagCX Backend | NCCL | IXCCL | CNCL | MCCL | XCCL | DUCCL | HCCL | MUSACCL | RCCL | |
| 97 | +|:-----------------|:-----|:------|:-----|:-----|:-----|:------|:-----|:--------|:-----| |
| 98 | +| PyTorch Support | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ☓ | ✓ | |
95 | 99 |
|
96 | 100 | To enable heterogeneous cross-chip communication using the PyTorch DDP FlagCX backend, it is recommended to use identical PyTorch versions across all nodes. Mismatched versions may lead to initialization failures during process group setup. Further compatibility and performance tests will be conducted in future releases, and we warmly welcome community contributions to help expand and strengthen the validation matrix. |
97 | 101 |
|
|
0 commit comments