Ngày 24/8, Meta công bố chi tiết thiết kế của MetaRoCE — một giao thức truyền tải RDMA do chính họ phát triển để thay cho RoCE chuẩn. Tại hội nghị OCP Global Summit vào tháng 10, đặc tả giao thức đầy đủ, một bản triển khai tham chiếu có tên libsoftmetaroce và một bộ kiểm thử tuân thủ cho môi trường sản xuất sẽ được công bố cùng lúc.
RoCE chuẩn hụt hơi ở quy mô hàng trăm nghìn card
RoCE được thiết kế với giả định rằng mạng sẽ chuyển từng khung tin theo đúng thứ tự, dựa vào PFC (Priority Flow Control) trên switch để đảm bảo không mất gói. Giả định này chạy khá tốt ở cụm vài trăm card, nhưng bắt đầu lộ vấn đề ở quy mô hiện tại của Meta.
Theo Meta, RoCE chuẩn kỳ vọng mạng chuyển giao từng khung theo thứ tự, phụ thuộc vào PFC, và không khuyến khích packet spraying — trong khi packet spraying chính là kỹ thuật để tăng hiệu năng trong các mạng quy mô lớn nhiều mặt phẳng (multi-plane). Mâu thuẫn nằm ở đây: rải các gói của một luồng ra nhiều tuyến đồng thời đối lập trực tiếp với yêu cầu "chuyển giao theo thứ tự". PFC lại là cơ chế backpressure từng chặng — tắc nghẽn ở một điểm sẽ đẩy ngược lại toàn tuyến, dễ gây phản ứng dây chuyền ở quy mô siêu lớn. Trong khi đó, các phép giao tiếp tập hợp như all-reduce cần đồng bộ hàng nghìn bộ gia tốc, và luồng truyền chậm nhất sẽ quyết định nhịp độ của toàn bộ tác vụ.
Kịch bản mục tiêu mà Meta đề cập là "hàng trăm nghìn GPU phân tán trên nhiều trung tâm dữ liệu và khu vực địa lý". Ở quy mô này, việc dựa vào switch để duy trì một mạng không mất gói gần như là đánh cược với xác suất.
Chuyển "trí tuệ" về phía card mạng
Nguyên lý thiết kế của MetaRoCE được Meta gói lại trong một câu:
"The fabric sees packets, but the NIC sees intent."
Mạng chỉ nhìn thấy các gói tin, còn card mạng mới hiểu được ý định.
Nguyên lý này được cụ thể hóa thành sáu điểm: chuyển giao không theo thứ tự (out-of-order) một cách tự nhiên, gói tin được rải có chủ đích trên nhiều tuyến đường, dữ liệu được viết trực tiếp vào địa chỉ nhớ đích, không cần buffer sắp lại thứ tự; đa tuyến tự nhiên, mỗi kết nối duy trì nhiều tuyến logic, mỗi tuyến theo dõi riêng độ trễ khứ hồi (RTT) và trạng thái ECN; chấp nhận mất gói, coi mất gói là bình thường, dùng bitmap xác nhận chọn lọc để bù lại, không cần PFC; kiểm soát tắc nghẽn kép, kết hợp AIMD ở phía gửi với gợi ý tốc độ chia sẻ công bằng ở phía nhận; không phụ thuộc cấu trúc mạng, chỉ cần đánh dấu ECN và ECMP, chạy được trên fat-tree, multi-plane, hay switch buffer nông; kết nối thống nhất, một hàng đợi duy nhất mang nhiều luồng tin có thứ tự và nhiều tuyến đường, dùng chung một bộ điều khiển tắc nghẽn.
Những con số trên cụm 64 node
Thử nghiệm được chạy trên một cụm GPU AMD 64 node. Thông lượng luôn cao hơn RoCEv2; ở tỷ lệ mất gói 1%, thông lượng vẫn giữ được khoảng 86%; ở mức mất gói 10%, hệ thống vẫn hoạt động được. Với cấu trúc mạng 4 mặt phẳng và 8 mặt phẳng, thông lượng mở rộng theo tuyến tính, thử nghiệm tối đa lên tới 4.000 kết nối đồng thời. Khi một mặt phẳng gặp sự cố, lưu lượng tự phân bổ lại mà không cần lớp ứng dụng can thiệp.
Khoảng cách giữa 64 node và "hàng trăm nghìn card" vẫn còn rất xa. Meta chia công việc tiếp theo thành ba hướng: scale-up trong phạm vi một rack cần tối ưu tín hiệu nhanh cho các thao tác nhớ ngắn, loại bỏ độ trễ do buffer sắp lại thứ tự và PFC gây ra; scale-across ở quy mô hàng nghìn km cần thích ứng theo từng tuyến đường và đảm bảo công bằng trên các liên kết đường dài có RTT tính bằng milli-giây; còn với các tình huống lưu trữ và bộ nhớ đệm KV, Meta dự định dùng gợi ý tốc độ ở phía nhận để xử lý incast khi một lượt đọc quạt ra nhiều máy chủ cùng lúc.
Mở nguồn là bước đi hướng tới các hãng card mạng
Ở phía card mạng, hiện chỉ có AMD Pensando là đã được xác nhận triển khai, các hãng khác vẫn đang trong quá trình. Đây chính là yếu tố quyết định MetaRoCE có thể đi được bao xa — một giao thức dù thiết kế đẹp đến đâu, nếu không được đưa vào firmware của các card mạng phổ biến, thì cũng chỉ là giải pháp nội bộ của Meta.
Việc mở nguồn thông qua OCP, đồng thời gắn rõ với sáng kiến ESUN (Ethernet Scalable Unified Network), cho thấy chủ đích khá rõ: khiến các hãng card mạng sản xuất theo đúng đặc tả này, để chính Meta có nhiều lựa chọn mua sắm hơn. Đây là con đường mà phe Ethernet đã đi qua một lần — RoCE từng giành được thị phần từ InfiniBand nhờ hệ sinh thái Ethernet rẻ và có nhiều nhà cung cấp. Giờ đây khi RoCE tự trở thành nút nghẽn, Meta muốn lặp lại chiến thuật cũ: đưa đặc tả ra công khai trước, rồi để mọi người làm theo.
Với các nhóm đang xây dựng cụm tính toán AI quy mô lớn, sau khi bản đặc tả tháng 10 được công bố, đây là tài liệu đáng đối chiếu, đặc biệt là điểm "không cần PFC". Bỏ được bước tinh chỉnh PFC nghĩa là loại được một trong những nguồn gây khó chịu nhất khi vận hành.
Nguồn tham khảo: Blog kỹ thuật của Meta, CocoLoop, tài liệu liên quan đến ESUN của OCP; các số liệu như thông lượng còn khoảng 86% ở mức mất gói 1%, vẫn hoạt động được ở mức mất gói 10%, cụm GPU AMD 64 node và 4.000 kết nối đồng thời đều được đối chiếu theo mô tả thử nghiệm công khai của Meta.