Đây là một chủ đề rất "nóng" trong thiết kế AI Ethernet Fabric. Nếu bài trước nói về Rail Design, thì hình này giải thích một vấn đề khó hơn: làm thế nào để cân bằng tải (Load Balancing) giữa các đường Spine mà vẫn đảm bảo hiệu năng cho GPU?
AI Data Center – Vì sao Load Balancing lại quan trọng với Backend Network?
Trong một AI Cluster hiện đại, mỗi máy chủ GPU thường có nhiều kết nối 400G hoặc 800G đi lên các switch Leaf, sau đó tiếp tục đi qua nhiều Spine.
Kiến trúc Spine-Leaf mang lại rất nhiều đường đi song song (Equal-Cost Paths). Nếu không có cơ chế cân bằng tải hiệu quả, một số liên kết sẽ bị quá tải trong khi các liên kết khác gần như không được sử dụng, làm giảm hiệu quả của toàn bộ AI Fabric.
Tuy nhiên, cân bằng tải trong AI không đơn giản như mạng doanh nghiệp thông thường. Các ứng dụng AI phân tán như PyTorch Distributed, TensorFlow Distributed hay NVIDIA NCCL liên tục thực hiện các phép Collective Communication như AllReduce, AllGather và Broadcast. Những lưu lượng này có đặc điểm là các luồng dữ liệu rất lớn, kéo dài và đặc biệt nhạy cảm với độ trễ cũng như thứ tự gói tin.
Đó là lý do các AI Fabric hiện đại sử dụng nhiều kỹ thuật cân bằng tải khác nhau.
1. ECMP – Cách cân bằng tải truyền thống
ECMP (Equal-Cost Multi-Path) là cơ chế mặc định trong hầu hết các mạng Spine-Leaf.
Switch sẽ băm (hash) thông tin của gói tin, thường dựa trên 5-tuple hoặc UDP Flow, để chọn một trong các đường có cùng chi phí.
Ưu điểm của ECMP là:
Tuy nhiên, với AI Training, ECMP bộc lộ một hạn chế lớn. Một luồng NCCL hoặc RDMA có thể chiếm toàn bộ băng thông của một đường truyền trong khi các đường khác vẫn còn trống. Vì ECMP luôn giữ nguyên một flow trên cùng một đường đi, nó không thể tận dụng hết tài nguyên của mạng.
2. Flowlet Load Balancing – Chia nhỏ luồng dữ liệu
Để giải quyết hạn chế của ECMP, nhiều AI Fabric áp dụng Flowlet Load Balancing.
Một flowlet là một nhóm các gói tin liên tiếp trong cùng một kết nối, được ngăn cách với nhóm tiếp theo bằng một khoảng nghỉ rất ngắn. Khoảng nghỉ này đủ để các gói của nhóm trước rời khỏi mạng trước khi nhóm mới được gửi đi.
Điều đó cho phép switch chuyển flowlet tiếp theo sang một đường khác mà vẫn tránh được hiện tượng gói đến sai thứ tự.
Ví dụ, một phiên AllReduce kéo dài có thể được chia thành nhiều flowlet. Khi một liên kết bắt đầu đông, các flowlet tiếp theo sẽ được chuyển sang một Spine khác đang nhàn rỗi, giúp khai thác tốt hơn toàn bộ băng thông của Fabric mà không gây xáo trộn thứ tự gói tin.
Flowlet là một giải pháp cân bằng giữa hiệu quả và tính ổn định, vì nó tận dụng được nhiều đường truyền nhưng vẫn bảo vệ các giao thức nhạy cảm với packet reordering.
3. Per-Packet Load Balancing – Tận dụng tối đa mọi đường truyền
Một số AI Fabric tiến thêm một bước với Per-Packet Load Balancing (PPLB).
Thay vì giữ nguyên một flow hoặc một flowlet trên cùng một đường, PPLB có thể quyết định đường đi cho từng gói tin riêng lẻ dựa trên tình trạng tắc nghẽn hoặc lịch trình truyền tải tại thời điểm đó.
Ưu điểm là khả năng khai thác băng thông gần như tối đa trên tất cả các liên kết song song.
Tuy nhiên, cái giá phải trả là các gói có thể đến đích không theo đúng thứ tự. Khi đó, NIC hoặc switch phải thực hiện cơ chế sắp xếp lại (packet reordering) trước khi dữ liệu được chuyển lên GPU.
Do đó, PPLB chỉ thực sự hiệu quả khi phần cứng mạng và NIC hỗ trợ tốt việc xử lý packet reordering với độ trễ rất thấp.
4. IB Destination Pair – Cách tiếp cận của RDMA
Trong các hệ thống sử dụng RDMA, việc cân bằng tải còn phải tính đến Queue Pair (QP).
Mỗi phiên truyền RDMA sử dụng một cặp hàng đợi gồm:
Cặp này được nhận diện bằng một QP Number duy nhất.
Mạng sẽ thực hiện cân bằng tải dựa trên Destination Queue Pair, nghĩa là tất cả các gói thuộc cùng một QP phải đi theo cách đảm bảo chúng đến đích đúng thứ tự. Điều này rất quan trọng vì RDMA bỏ qua phần lớn ngăn xếp TCP/IP của hệ điều hành để đạt độ trễ cực thấp, nên việc mất thứ tự gói tin có thể làm giảm hiệu năng hoặc gây lỗi trong quá trình truyền dữ liệu.
Trong các AI Fabric chạy RoCEv2, việc nhận biết và xử lý theo Queue Pair giúp cân bằng tải hiệu quả mà vẫn giữ được tính toàn vẹn của các phiên RDMA.
Dynamic Load Balancing (DLB) – Xu hướng của AI Fabric
Điểm nổi bật của hình là khái niệm Dynamic Load Balancing (DLB).
Thay vì sử dụng một thuật toán cố định, DLB liên tục quan sát trạng thái của Fabric để quyết định cách phân phối lưu lượng. Tùy theo loại ứng dụng và điều kiện mạng, DLB có thể kết hợp nhiều cơ chế như ECMP, Flowlet hoặc Per-Packet nhằm đạt hiệu quả tối ưu.
Trong các AI Data Center hiện đại, DLB thường đi cùng với các cơ chế như:
Sự kết hợp này giúp Fabric vừa tận dụng tối đa các đường truyền song song, vừa duy trì độ trễ thấp và hạn chế packet reordering. Kết luận
Trong mạng doanh nghiệp truyền thống, ECMP thường đã đủ để cân bằng tải giữa các đường Spine. Nhưng trong AI Data Center, nơi hàng nghìn GPU liên tục trao đổi dữ liệu thông qua các phép Collective Communication, yêu cầu cao hơn nhiều. Các kỹ thuật như Flowlet Load Balancing, Per-Packet Load Balancing và RDMA Queue Pair-Aware Load Balancing được phát triển để khai thác tối đa băng thông của Fabric mà vẫn đảm bảo thứ tự gói tin và độ trễ thấp.
Đó cũng là lý do các nền tảng AI Networking hiện đại của Cisco, NVIDIA, Broadcom hay Arista đều đầu tư mạnh vào Dynamic Load Balancing. Trong kỷ nguyên AI Factory, hiệu quả của mạng không chỉ phụ thuộc vào tốc độ 400G hay 800G, mà còn phụ thuộc vào khả năng phân phối thông minh từng luồng dữ liệu qua toàn bộ Spine-Leaf Fabric. Đây là yếu tố quyết định để các GPU luôn được "nuôi dữ liệu" đầy đủ và đạt hiệu suất huấn luyện cao nhất.
AI Data Center – Vì sao Load Balancing lại quan trọng với Backend Network?
Trong một AI Cluster hiện đại, mỗi máy chủ GPU thường có nhiều kết nối 400G hoặc 800G đi lên các switch Leaf, sau đó tiếp tục đi qua nhiều Spine.
Kiến trúc Spine-Leaf mang lại rất nhiều đường đi song song (Equal-Cost Paths). Nếu không có cơ chế cân bằng tải hiệu quả, một số liên kết sẽ bị quá tải trong khi các liên kết khác gần như không được sử dụng, làm giảm hiệu quả của toàn bộ AI Fabric.
Tuy nhiên, cân bằng tải trong AI không đơn giản như mạng doanh nghiệp thông thường. Các ứng dụng AI phân tán như PyTorch Distributed, TensorFlow Distributed hay NVIDIA NCCL liên tục thực hiện các phép Collective Communication như AllReduce, AllGather và Broadcast. Những lưu lượng này có đặc điểm là các luồng dữ liệu rất lớn, kéo dài và đặc biệt nhạy cảm với độ trễ cũng như thứ tự gói tin.
Đó là lý do các AI Fabric hiện đại sử dụng nhiều kỹ thuật cân bằng tải khác nhau.
1. ECMP – Cách cân bằng tải truyền thống
ECMP (Equal-Cost Multi-Path) là cơ chế mặc định trong hầu hết các mạng Spine-Leaf.
Switch sẽ băm (hash) thông tin của gói tin, thường dựa trên 5-tuple hoặc UDP Flow, để chọn một trong các đường có cùng chi phí.
Ưu điểm của ECMP là:
- Đơn giản.
- Hiệu quả với lưu lượng thông thường.
- Không làm thay đổi thứ tự gói tin trong cùng một luồng.
Tuy nhiên, với AI Training, ECMP bộc lộ một hạn chế lớn. Một luồng NCCL hoặc RDMA có thể chiếm toàn bộ băng thông của một đường truyền trong khi các đường khác vẫn còn trống. Vì ECMP luôn giữ nguyên một flow trên cùng một đường đi, nó không thể tận dụng hết tài nguyên của mạng.
2. Flowlet Load Balancing – Chia nhỏ luồng dữ liệu
Để giải quyết hạn chế của ECMP, nhiều AI Fabric áp dụng Flowlet Load Balancing.
Một flowlet là một nhóm các gói tin liên tiếp trong cùng một kết nối, được ngăn cách với nhóm tiếp theo bằng một khoảng nghỉ rất ngắn. Khoảng nghỉ này đủ để các gói của nhóm trước rời khỏi mạng trước khi nhóm mới được gửi đi.
Điều đó cho phép switch chuyển flowlet tiếp theo sang một đường khác mà vẫn tránh được hiện tượng gói đến sai thứ tự.
Ví dụ, một phiên AllReduce kéo dài có thể được chia thành nhiều flowlet. Khi một liên kết bắt đầu đông, các flowlet tiếp theo sẽ được chuyển sang một Spine khác đang nhàn rỗi, giúp khai thác tốt hơn toàn bộ băng thông của Fabric mà không gây xáo trộn thứ tự gói tin.
Flowlet là một giải pháp cân bằng giữa hiệu quả và tính ổn định, vì nó tận dụng được nhiều đường truyền nhưng vẫn bảo vệ các giao thức nhạy cảm với packet reordering.
3. Per-Packet Load Balancing – Tận dụng tối đa mọi đường truyền
Một số AI Fabric tiến thêm một bước với Per-Packet Load Balancing (PPLB).
Thay vì giữ nguyên một flow hoặc một flowlet trên cùng một đường, PPLB có thể quyết định đường đi cho từng gói tin riêng lẻ dựa trên tình trạng tắc nghẽn hoặc lịch trình truyền tải tại thời điểm đó.
Ưu điểm là khả năng khai thác băng thông gần như tối đa trên tất cả các liên kết song song.
Tuy nhiên, cái giá phải trả là các gói có thể đến đích không theo đúng thứ tự. Khi đó, NIC hoặc switch phải thực hiện cơ chế sắp xếp lại (packet reordering) trước khi dữ liệu được chuyển lên GPU.
Do đó, PPLB chỉ thực sự hiệu quả khi phần cứng mạng và NIC hỗ trợ tốt việc xử lý packet reordering với độ trễ rất thấp.
4. IB Destination Pair – Cách tiếp cận của RDMA
Trong các hệ thống sử dụng RDMA, việc cân bằng tải còn phải tính đến Queue Pair (QP).
Mỗi phiên truyền RDMA sử dụng một cặp hàng đợi gồm:
- Send Queue.
- Receive Queue.
Cặp này được nhận diện bằng một QP Number duy nhất.
Mạng sẽ thực hiện cân bằng tải dựa trên Destination Queue Pair, nghĩa là tất cả các gói thuộc cùng một QP phải đi theo cách đảm bảo chúng đến đích đúng thứ tự. Điều này rất quan trọng vì RDMA bỏ qua phần lớn ngăn xếp TCP/IP của hệ điều hành để đạt độ trễ cực thấp, nên việc mất thứ tự gói tin có thể làm giảm hiệu năng hoặc gây lỗi trong quá trình truyền dữ liệu.
Trong các AI Fabric chạy RoCEv2, việc nhận biết và xử lý theo Queue Pair giúp cân bằng tải hiệu quả mà vẫn giữ được tính toàn vẹn của các phiên RDMA.
Dynamic Load Balancing (DLB) – Xu hướng của AI Fabric
Điểm nổi bật của hình là khái niệm Dynamic Load Balancing (DLB).
Thay vì sử dụng một thuật toán cố định, DLB liên tục quan sát trạng thái của Fabric để quyết định cách phân phối lưu lượng. Tùy theo loại ứng dụng và điều kiện mạng, DLB có thể kết hợp nhiều cơ chế như ECMP, Flowlet hoặc Per-Packet nhằm đạt hiệu quả tối ưu.
Trong các AI Data Center hiện đại, DLB thường đi cùng với các cơ chế như:
- Adaptive Routing, giúp chuyển hướng lưu lượng khi phát hiện tắc nghẽn.
- ECN (Explicit Congestion Notification), cho phép thiết bị mạng báo hiệu tình trạng nghẽn mà không cần làm rơi gói.
- PFC (Priority Flow Control), đảm bảo lưu lượng RDMA không bị mất gói trên các lớp ưu tiên quan trọng.
- Congestion Control, giúp điều chỉnh tốc độ truyền của các GPU để tránh hiện tượng nghẽn kéo dài.
Sự kết hợp này giúp Fabric vừa tận dụng tối đa các đường truyền song song, vừa duy trì độ trễ thấp và hạn chế packet reordering. Kết luận
Trong mạng doanh nghiệp truyền thống, ECMP thường đã đủ để cân bằng tải giữa các đường Spine. Nhưng trong AI Data Center, nơi hàng nghìn GPU liên tục trao đổi dữ liệu thông qua các phép Collective Communication, yêu cầu cao hơn nhiều. Các kỹ thuật như Flowlet Load Balancing, Per-Packet Load Balancing và RDMA Queue Pair-Aware Load Balancing được phát triển để khai thác tối đa băng thông của Fabric mà vẫn đảm bảo thứ tự gói tin và độ trễ thấp.
Đó cũng là lý do các nền tảng AI Networking hiện đại của Cisco, NVIDIA, Broadcom hay Arista đều đầu tư mạnh vào Dynamic Load Balancing. Trong kỷ nguyên AI Factory, hiệu quả của mạng không chỉ phụ thuộc vào tốc độ 400G hay 800G, mà còn phụ thuộc vào khả năng phân phối thông minh từng luồng dữ liệu qua toàn bộ Spine-Leaf Fabric. Đây là yếu tố quyết định để các GPU luôn được "nuôi dữ liệu" đầy đủ và đạt hiệu suất huấn luyện cao nhất.