RDMA over Converged Ethernet (RoCEv2)
RDMA cho phép dữ liệu đi trực tiếp giữa các GPU thông qua NIC, bỏ qua CPU để tối ưu hiệu năng. RoCEv2 sử dụng giao thức UDP có thể định tuyến (Routable UDP) và được triển khai trên NIC của máy chủ.
Truyền dữ liệu không mất gói (Lossless Transport)
Mặc dù RoCEv2 hoạt động trên nền UDP, mạng vẫn đảm bảo truyền dữ liệu gần như không mất gói nhờ hai cơ chế:
Hai cơ chế này phối hợp để xây dựng một Lossless Ethernet Fabric, đáp ứng yêu cầu của AI và HPC.
Cấu trúc gói tin RoCEv2
Một gói RoCEv2 gồm các thành phần:
Ethernet Header
VLAN (802.1Q - nếu có)
IP Header
UDP Header
InfiniBand Transport Header (IB BTH)
Payload
ICRC
FCS
Điểm đáng chú ý là RoCEv2 sử dụng UDP/IP thay vì lớp liên kết InfiniBand, nên có thể hoạt động trên hạ tầng Ethernet thông thường.
Vì sao AI cần GPU giao tiếp trực tiếp với GPU?
Khi huấn luyện một mô hình AI lớn, dữ liệu không nằm trên một GPU duy nhất.
Ví dụ một mô hình có 800 tỷ tham số có thể được chia cho hàng trăm GPU.
Sau mỗi vòng huấn luyện (training step), các GPU phải trao đổi:
Nếu việc trao đổi này phải đi qua CPU thì CPU sẽ nhanh chóng trở thành nút thắt cổ chai.
Chính vì vậy NVIDIA phát triển GPUDirect RDMA, cho phép GPU truyền dữ liệu trực tiếp qua NIC đến GPU trên máy chủ khác mà không cần CPU sao chép dữ liệu.
Luồng dữ liệu diễn ra như thế nào?
Hình bên phải mô tả quá trình giao tiếp giữa hai máy chủ AI.
Trình tự diễn ra như sau:
Toàn bộ quá trình gần như không phải sao chép dữ liệu qua RAM hệ thống, giúp giảm đáng kể độ trễ và tăng băng thông.
RDMA là gì?
RDMA (Remote Direct Memory Access) là công nghệ cho phép một máy tính đọc hoặc ghi trực tiếp vào vùng nhớ của máy khác mà không cần CPU của hai bên xử lý dữ liệu.
Trong môi trường AI, GPUDirect RDMA còn tiến thêm một bước.
Thay vì chỉ truy cập RAM của máy chủ khác, dữ liệu được truyền trực tiếp giữa bộ nhớ GPU (HBM) của các máy chủ.
Có thể hình dung như sau:
Không dùng RDMA
GPU
↓
CPU
↓
RAM
↓
NIC
↓
Network
↓
NIC
↓
RAM
↓
CPU
↓
GPU
Với RDMA:
GPU
↓
NIC
↓
Network
↓
NIC
↓
GPU
CPU gần như không phải xử lý đường đi của dữ liệu.
Tại sao RoCEv2 lại sử dụng UDP?
Nhiều người thắc mắc vì sao một hệ thống yêu cầu độ tin cậy cao như AI lại chọn UDP thay vì TCP.
Lý do là TCP mang theo nhiều cơ chế như xác nhận gói tin, đánh số thứ tự, truyền lại và điều khiển cửa sổ truyền, giúp tăng độ tin cậy nhưng cũng làm tăng độ trễ và tiêu tốn tài nguyên CPU.
Trong khi đó, với RoCEv2, việc truyền dữ liệu được tăng tốc nhờ RDMA và phần cứng của NIC, còn mạng Ethernet được thiết kế để hầu như không xảy ra mất gói. Vì vậy không cần đến các cơ chế phức tạp của TCP.
ECN và PFC – Hai công nghệ làm nên Lossless Ethernet
Để RoCEv2 hoạt động hiệu quả, mạng Ethernet phải được tối ưu cho lưu lượng AI.
ECN (Explicit Congestion Notification) phát hiện khi hàng đợi trên switch bắt đầu đầy và đánh dấu các gói tin thay vì chờ đến khi phải loại bỏ chúng. NIC gửi sẽ nhận biết tín hiệu này và chủ động giảm tốc độ truyền.
PFC (Priority Flow Control) hoạt động ở lớp Ethernet. Khi một hàng đợi ưu tiên có nguy cơ tràn bộ đệm, switch sẽ gửi tín hiệu PAUSE chỉ cho lớp lưu lượng đó, thay vì dừng toàn bộ đường truyền như cơ chế Ethernet truyền thống.
Sự kết hợp giữa ECN và PFC giúp mạng đạt trạng thái gần như không mất gói, duy trì độ trễ thấp và ổn định cho các tác vụ AI phân tán.
Vai trò của switch AI trong hạ tầng mạng
Một switch Ethernet thông thường chưa đủ để phục vụ AI ở quy mô lớn.
Các AI Fabric Switch hiện đại của Cisco, NVIDIA hay Arista đều hỗ trợ:
Những tính năng này giúp hàng nghìn GPU có thể đồng bộ dữ liệu liên tục mà không bị tắc nghẽn.
Kết luận
Hình trên minh họa cách các GPU trên nhiều máy chủ hoạt động như một hệ thống thống nhất nhờ sự kết hợp giữa NCCL, CUDA, GPUDirect RDMA, RoCEv2 và hạ tầng Ethernet Lossless. Thay vì phải đi qua CPU và bộ nhớ hệ thống, dữ liệu được truyền trực tiếp từ GPU này sang GPU khác thông qua NIC và mạng Ethernet tốc độ cao. Để đạt hiệu năng tối đa, hạ tầng mạng AI không chỉ cần băng thông lớn mà còn phải hỗ trợ ECN, PFC và các cơ chế tối ưu cho RoCEv2, biến Ethernet thành một AI Fabric có độ trễ thấp, gần như không mất gói và đủ khả năng mở rộng để phục vụ các cụm AI với hàng nghìn GPU.
RDMA cho phép dữ liệu đi trực tiếp giữa các GPU thông qua NIC, bỏ qua CPU để tối ưu hiệu năng. RoCEv2 sử dụng giao thức UDP có thể định tuyến (Routable UDP) và được triển khai trên NIC của máy chủ.
Truyền dữ liệu không mất gói (Lossless Transport)
Mặc dù RoCEv2 hoạt động trên nền UDP, mạng vẫn đảm bảo truyền dữ liệu gần như không mất gói nhờ hai cơ chế:
- ECN (Explicit Congestion Notification) để phát hiện và báo hiệu tình trạng tắc nghẽn.
- PFC (Priority Flow Control) để tạm dừng các luồng ưu tiên khi có nguy cơ tràn bộ đệm.
Hai cơ chế này phối hợp để xây dựng một Lossless Ethernet Fabric, đáp ứng yêu cầu của AI và HPC.
Cấu trúc gói tin RoCEv2
Một gói RoCEv2 gồm các thành phần:
Ethernet Header
VLAN (802.1Q - nếu có)
IP Header
UDP Header
InfiniBand Transport Header (IB BTH)
Payload
ICRC
FCS
Điểm đáng chú ý là RoCEv2 sử dụng UDP/IP thay vì lớp liên kết InfiniBand, nên có thể hoạt động trên hạ tầng Ethernet thông thường.
Vì sao AI cần GPU giao tiếp trực tiếp với GPU?
Khi huấn luyện một mô hình AI lớn, dữ liệu không nằm trên một GPU duy nhất.
Ví dụ một mô hình có 800 tỷ tham số có thể được chia cho hàng trăm GPU.
Sau mỗi vòng huấn luyện (training step), các GPU phải trao đổi:
- Gradient
- Weight
- Activation
- Tensor
Nếu việc trao đổi này phải đi qua CPU thì CPU sẽ nhanh chóng trở thành nút thắt cổ chai.
Chính vì vậy NVIDIA phát triển GPUDirect RDMA, cho phép GPU truyền dữ liệu trực tiếp qua NIC đến GPU trên máy chủ khác mà không cần CPU sao chép dữ liệu.
Luồng dữ liệu diễn ra như thế nào?
Hình bên phải mô tả quá trình giao tiếp giữa hai máy chủ AI.
Trình tự diễn ra như sau:
- Framework như PyTorch hoặc TensorFlow khởi động quá trình huấn luyện.
- CUDA thực thi các phép tính trên từng GPU.
- NCCL xác định GPU nào cần đồng bộ dữ liệu.
- GPU gửi dữ liệu trực tiếp đến NIC bằng công nghệ GPUDirect RDMA.
- NIC đóng gói dữ liệu thành gói RoCEv2 và truyền qua mạng Ethernet tốc độ cao.
- NIC ở máy chủ đích nhận dữ liệu và ghi trực tiếp vào bộ nhớ GPU đích, không cần CPU tham gia.
Toàn bộ quá trình gần như không phải sao chép dữ liệu qua RAM hệ thống, giúp giảm đáng kể độ trễ và tăng băng thông.
RDMA là gì?
RDMA (Remote Direct Memory Access) là công nghệ cho phép một máy tính đọc hoặc ghi trực tiếp vào vùng nhớ của máy khác mà không cần CPU của hai bên xử lý dữ liệu.
Trong môi trường AI, GPUDirect RDMA còn tiến thêm một bước.
Thay vì chỉ truy cập RAM của máy chủ khác, dữ liệu được truyền trực tiếp giữa bộ nhớ GPU (HBM) của các máy chủ.
Có thể hình dung như sau:
Không dùng RDMA
GPU
↓
CPU
↓
RAM
↓
NIC
↓
Network
↓
NIC
↓
RAM
↓
CPU
↓
GPU
Với RDMA:
GPU
↓
NIC
↓
Network
↓
NIC
↓
GPU
CPU gần như không phải xử lý đường đi của dữ liệu.
Tại sao RoCEv2 lại sử dụng UDP?
Nhiều người thắc mắc vì sao một hệ thống yêu cầu độ tin cậy cao như AI lại chọn UDP thay vì TCP.
Lý do là TCP mang theo nhiều cơ chế như xác nhận gói tin, đánh số thứ tự, truyền lại và điều khiển cửa sổ truyền, giúp tăng độ tin cậy nhưng cũng làm tăng độ trễ và tiêu tốn tài nguyên CPU.
Trong khi đó, với RoCEv2, việc truyền dữ liệu được tăng tốc nhờ RDMA và phần cứng của NIC, còn mạng Ethernet được thiết kế để hầu như không xảy ra mất gói. Vì vậy không cần đến các cơ chế phức tạp của TCP.
ECN và PFC – Hai công nghệ làm nên Lossless Ethernet
Để RoCEv2 hoạt động hiệu quả, mạng Ethernet phải được tối ưu cho lưu lượng AI.
ECN (Explicit Congestion Notification) phát hiện khi hàng đợi trên switch bắt đầu đầy và đánh dấu các gói tin thay vì chờ đến khi phải loại bỏ chúng. NIC gửi sẽ nhận biết tín hiệu này và chủ động giảm tốc độ truyền.
PFC (Priority Flow Control) hoạt động ở lớp Ethernet. Khi một hàng đợi ưu tiên có nguy cơ tràn bộ đệm, switch sẽ gửi tín hiệu PAUSE chỉ cho lớp lưu lượng đó, thay vì dừng toàn bộ đường truyền như cơ chế Ethernet truyền thống.
Sự kết hợp giữa ECN và PFC giúp mạng đạt trạng thái gần như không mất gói, duy trì độ trễ thấp và ổn định cho các tác vụ AI phân tán.
Vai trò của switch AI trong hạ tầng mạng
Một switch Ethernet thông thường chưa đủ để phục vụ AI ở quy mô lớn.
Các AI Fabric Switch hiện đại của Cisco, NVIDIA hay Arista đều hỗ trợ:
- RoCEv2
- ECN
- PFC
- QoS ưu tiên lưu lượng AI
- Telemetry thời gian thực
- Độ trễ cực thấp
- Cổng mạng 400G và 800G
Những tính năng này giúp hàng nghìn GPU có thể đồng bộ dữ liệu liên tục mà không bị tắc nghẽn.
Kết luận
Hình trên minh họa cách các GPU trên nhiều máy chủ hoạt động như một hệ thống thống nhất nhờ sự kết hợp giữa NCCL, CUDA, GPUDirect RDMA, RoCEv2 và hạ tầng Ethernet Lossless. Thay vì phải đi qua CPU và bộ nhớ hệ thống, dữ liệu được truyền trực tiếp từ GPU này sang GPU khác thông qua NIC và mạng Ethernet tốc độ cao. Để đạt hiệu năng tối đa, hạ tầng mạng AI không chỉ cần băng thông lớn mà còn phải hỗ trợ ECN, PFC và các cơ chế tối ưu cho RoCEv2, biến Ethernet thành một AI Fabric có độ trễ thấp, gần như không mất gói và đủ khả năng mở rộng để phục vụ các cụm AI với hàng nghìn GPU.