RDMA (Remote Direct Memory Access) và RoCE
1. Tổng quan
A. Định nghĩa
RDMA (Remote Direct Memory Access) là công nghệ truyền tải trong đó ứng dụng trên một máy tính đọc và ghi trực tiếp bộ nhớ của máy tính đối tác mà không có sự can thiệp của hệ điều hành hay CPU. Bộ điều hợp mạng (RNIC/HCA) xử lý giao thức truyền tải bằng phần cứng, vượt qua nhân (Kernel Bypass) và loại bỏ việc sao chép dữ liệu (Zero-Copy) — ba trục này cùng nhau đạt được đồng thời độ trễ cực thấp, băng thông cao và mức chiếm dụng CPU thấp. RoCE (RDMA over Converged Ethernet) là cách triển khai ngữ nghĩa (semantics) RDMA này trên Ethernet tiêu chuẩn thay vì trên fabric InfiniBand chuyên dụng.
Định nghĩa RDMA trong một câu, đó là "giao tiếp đã loại bỏ các trung gian — hệ điều hành, ngăn xếp giao thức, các bản sao trung gian — để dữ liệu đi thẳng từ bộ đệm của ứng dụng gửi tới bộ đệm của ứng dụng nhận." Trong giao tiếp TCP/IP truyền thống, một thông điệp được sao chép nhiều lần — bộ đệm ứng dụng → bộ đệm socket của nhân → bộ đệm NIC — và mỗi chặng lại kích hoạt một ngắt CPU và chuyển ngữ cảnh. RDMA để bộ điều hợp DMA dữ liệu trực tiếp vào vùng bộ nhớ đã đăng ký trước (Memory Region), giải phóng hoàn toàn CPU khỏi vai trò "người khuân vác chở dữ liệu."
Về mặt thuật ngữ, RDMA là ngữ nghĩa trừu tượng của "làm gì (truy cập trực tiếp bộ nhớ từ xa)," còn InfiniBand, RoCE và iWARP là các phương thức triển khai của "hiện thực hóa điều đó trên tầng vật lý/truyền tải nào." Ba phương thức này chia sẻ cùng một giao diện lập trình bậc cao (Verbs API), nên từ góc nhìn ứng dụng chúng phần lớn chạy trên cùng một mã bất kể fabric bên dưới là gì. Nhờ sự trừu tượng hóa này, RDMA trở thành một tài sản chung không bị trói buộc vào một nhà cung cấp hay công nghệ đi dây cụ thể.
Vấn đề cốt lõi mà RDMA nhắm tới thường được gọi là "nút thắt cổ chai I/O" hoặc "bức tường di chuyển dữ liệu." Năng lực tính toán đã tăng đều nhờ định luật Moore và sự phát triển của bộ tăng tốc, nhưng các đường truyền thông và bộ nhớ chở dữ liệu tới các đơn vị tính toán ấy lại phát triển chậm hơn tương đối, làm trầm trọng hiện tượng hiệu năng toàn hệ thống bị giới hạn không phải bởi "tính toán" mà bởi "đưa dữ liệu tới đúng chỗ đúng lúc." RDMA là giải pháp tiêu biểu phá bỏ bức tường này ở tầng mạng, và trở thành nền tảng cho các kiến trúc phân rã (disaggregated) muốn coi trung tâm dữ liệu không phải tập hợp nhiều máy chủ mà như một bể tài nguyên bộ nhớ và tính toán lớn duy nhất.
B. Bối cảnh xuất hiện và sự cần thiết
Bối cảnh căn bản khiến RDMA nổi lên là khoảng cách giữa tốc độ CPU trì trệ và băng thông mạng bùng nổ. Trong khi giao diện máy chủ leo từ 10GbE lên 100/200/400/800GbE, tốc độ xử lý ngăn xếp TCP/IP trên CPU đa dụng lại không tăng theo tỷ lệ. Theo quy tắc kinh nghiệm, nếu xử lý một bit lưu lượng cần khoảng 1Hz của CPU, thì để gánh một đường 400Gbps bằng phần mềm phải đổ hàng trăm nhân chỉ riêng cho giao tiếp. Điều này nghĩa là chi phí giao tiếp ăn mòn chính tài nguyên tính toán đáng lẽ dành cho ứng dụng, sinh ra nghịch lý "băng thông thì dư nhưng CPU lại là nút thắt."
Thứ hai là sự lan rộng của các khối công việc nơi độ trễ chi phối thông lượng. Giao tiếp MPI của HPC, lưu trữ phân tán, cơ sở dữ liệu trong bộ nhớ, và gần đây là học AI quy mô lớn đều có hàng nghìn nút thường xuyên trao đổi các thông điệp nhỏ và chờ đợi lẫn nhau. Độ trễ hàng chục micro giây và jitter mà ngăn xếp TCP/IP cộng thêm làm suy giảm mạnh hiệu năng tổng thể trong những khối công việc ràng buộc đồng bộ (synchronization-bound) này. RDMA hạ độ trễ xuống mức 1–2 micro giây nhờ vượt qua nhân và kìm hãm jitter, thay đổi tận gốc hiệu quả của các khối công việc bị "chờ đợi" chi phối.
Thứ ba là nút thắt giao tiếp của thời đại bộ tăng tốc AI. Dù GPU tuôn ra hàng trăm TFLOPS, nếu không cấp dữ liệu liên tục cho GPU ấy thì bộ tăng tốc đắt tiền rơi vào trạng thái nhàn rỗi. Trong các cụm huấn luyện bó hàng nghìn GPU, giao tiếp tập thể (Collective) như All-Reduce chiếm phần đáng kể tổng thời gian huấn luyện, và xử lý giao tiếp này qua đường phần mềm CPU khiến mức sử dụng GPU tụt mạnh. Khi những đường như GPUDirect RDMA — nơi NIC đọc và ghi trực tiếp bộ nhớ GPU — trở nên thiết yếu, RDMA chuyển từ một lựa chọn thành tiền đề cơ bản của hạ tầng AI.
Ba áp lực này không độc lập mà khuếch đại lẫn nhau. Băng thông càng tăng (thứ nhất), giới hạn của xử lý phần mềm càng rõ; khối công việc nhạy độ trễ càng nhiều (thứ hai), giới hạn ấy càng trực tiếp biến thành tổn thất hiệu năng; và bộ tăng tốc AI (thứ ba) đẩy cả hai tới cực hạn. RDMA, vốn từng là độc quyền của HPC, mở rộng sang đám mây và doanh nghiệp chính vì ba áp lực này đã trở thành thách thức chung của toàn trung tâm dữ liệu chứ không chỉ của một lĩnh vực.
C. Đặc trưng
Bản chất của RDMA được tóm trong ba trục: ① vượt qua nhân (Kernel Bypass), ② zero-copy (Zero-Copy), và ③ chuyển giao truyền tải (Transport Offload). Ứng dụng đưa lệnh trực tiếp lên hàng đợi phần cứng mà không đi qua nhân (①), dữ liệu chảy từ bộ nhớ đã đăng ký tới bộ nhớ đối tác không cần sao chép (②), và bộ điều hợp xử lý logic truyền tải như truyền lại, bảo đảm thứ tự, điều khiển luồng bằng phần cứng (③). Ba đặc trưng này chỉ phát huy tác dụng khi khớp vào nhau; nếu dù chỉ một trong số đó quay về phần mềm, lợi thế của RDMA bị pha loãng nhanh chóng.
Một đặc trưng cốt lõi khác là sự tồn tại của các thao tác một phía (one-sided). Trong khi giao tiếp truyền thống là hai phía, có sự tham gia của CPU ở cả hai đầu gửi và nhận, thì RDMA WRITE/READ ghi vào hoặc đọc từ bộ nhớ đối tác trực tiếp mà CPU phía nhận hoàn toàn không tham gia. "Sự truy cập thầm lặng" này biến RDMA thành thứ hơn cả một kênh truyền nhanh — nó trở thành một mô hình lập trình gần với bộ nhớ chia sẻ phân tán.
Cuối cùng, RDMA có đặc trưng trên thực tế lấy truyền tải không mất gói (lossless) làm tiền đề. Đổi lại việc đơn giản hóa logic truyền tải vào phần cứng, nó yếu trong việc hấp thụ linh hoạt các mất gói tùy ý như TCP truyền thống. Khi gói rơi, chi phí truyền lại bằng phần cứng tăng và hiệu năng lao dốc, nên fabric bên dưới phải bảo đảm không làm rơi gói. Tiền đề này chính là điểm khởi đầu sinh ra khác biệt triển khai giữa điều khiển luồng theo tín dụng của InfiniBand và PFC/ECN của RoCE; "dùng RDMA" kéo theo trách nhiệm "phải thiết kế và vận hành một mạng không mất gói."
2. Cấu trúc kiến trúc và nguyên lý hoạt động
Hiệu năng của RDMA đến từ cấu trúc trong đó ứng dụng bỏ qua nhân và đối thoại trực tiếp với phần cứng bộ điều hợp. Sơ đồ cấu trúc dưới đây cho thấy một cấu hình điển hình nơi hai máy chủ giao tiếp qua RDMA.
flowchart LR
subgraph HOSTA["Máy chủ A"]
APPA["Ứng dụng(không gian người dùng)"]
MRA["Bộ nhớ đã đăng ký(Memory Region)"]
RNICA["Bộ điều hợp RDMA(RNIC/HCA)"]
APPA -->|"Verbs(đường điều khiển)"| RNICA
APPA --- MRA
RNICA -.->|"DMA(đường dữ liệu)"| MRA
end
subgraph HOSTB["Máy chủ B"]
RNICB["Bộ điều hợp RDMA(RNIC/HCA)"]
MRB["Bộ nhớ đã đăng ký(Memory Region)"]
APPB["Ứng dụng(không gian người dùng)"]
RNICB -.->|"DMA(đường dữ liệu)"| MRB
APPB --- MRB
end
RNICA <-->|"Fabric không mất gói(InfiniBand/Ethernet)"| RNICB
Cốt lõi của cấu trúc là sự tách biệt giữa đường điều khiển (Control Path) và đường dữ liệu (Data Path). Ứng dụng chỉ đi qua nhân khi bắt đầu giao tiếp, để chuẩn bị tài nguyên (hàng đợi và bộ nhớ); sau đó việc gửi/nhận dữ liệu thực sự đưa Work Request trực tiếp lên hàng đợi phần cứng của bộ điều hợp từ không gian người dùng, hoàn toàn không chạm tới nhân. Cấu trúc "thiết lập một lần (set-up), sau đó vượt qua (bypass)" này loại bỏ tận gốc chi phí lời gọi hệ thống và ngắt phát sinh theo từng gói.
Đơn vị cơ bản của giao tiếp RDMA là cặp hàng đợi (Queue Pair, QP), gồm một hàng đợi gửi (SQ) và một hàng đợi nhận (RQ). Ứng dụng đưa công việc cần gửi hoặc nhận dưới dạng Work Request (WR) lên hàng đợi, và bộ điều hợp xử lý nó bất đồng bộ rồi báo hoàn tất trên hàng đợi hoàn tất (CQ, Completion Queue). Bộ nhớ nơi dữ liệu đi qua được ghim (pin) vào địa chỉ vật lý trước thông qua đăng ký bộ nhớ (Memory Registration), và một khóa cục bộ (lkey) cùng khóa từ xa (rkey) mang quyền truy cập được cấp. Máy chủ từ xa chỉ có thể truy cập bộ nhớ đối tác nếu biết rkey và địa chỉ ảo này, nên rkey vừa là tài nguyên hiệu năng vừa là điểm kiểm soát bảo mật.
Nhìn theo luồng dữ liệu, bộ điều hợp gửi đọc dữ liệu từ bộ đệm cục bộ đã đăng ký qua DMA và phát ra fabric, còn bộ điều hợp nhận ghi dữ liệu đến trực tiếp vào bộ nhớ đích mà đối tác chỉ định, qua DMA. Suốt quá trình này dữ liệu không đi qua bộ đệm socket của nhân, và CPU chỉ xác nhận hoàn tất (bằng polling hoặc sự kiện). Kết quả là số chu kỳ CPU và băng thông bộ nhớ mà một thông điệp tiêu tốn giảm mạnh, cho thông lượng hữu dụng cao hơn nhiều trên cùng phần cứng.
Cặp hàng đợi được phân thành loại truyền tải (Transport Type) theo độ tin cậy và tính kết nối mà nó cung cấp. RC (Reliable Connection) kết nối hai QP theo kiểu 1:1 như TCP, với phần cứng chịu trách nhiệm bảo đảm thứ tự và truyền lại, hỗ trợ cả WRITE/READ một phía lẫn thao tác nguyên tử, nên được dùng rộng rãi nhất. UC (Unreliable Connection) duy trì kết nối nhưng bỏ qua bảo đảm độ tin cậy để giảm chi phí, còn UD (Unreliable Datagram) là loại phi kết nối trong đó một QP giao tiếp với nhiều bên, có khả năng mở rộng tốt cho giao tiếp liên nút quy mô lớn và multicast. Lựa chọn loại truyền tải là sự đánh đổi "độ tin cậy/tính năng ↔ chi phí duy trì trạng thái kết nối/khả năng mở rộng," và trong các cụm AI vượt hàng nghìn nút, các thiết kế hướng khả năng mở rộng như UD hay kết nối động (DC) trở nên quan trọng để tránh bùng nổ trạng thái theo từng kết nối (QP).
Điều đặc biệt đáng lưu ý là đăng ký bộ nhớ là con dao hai lưỡi. Bộ nhớ phải được ghim vào địa chỉ vật lý thì bộ điều hợp mới DMA an toàn được, nhưng bản thân việc đăng ký là một thao tác tốn kém, và nếu lặp lại trên đường giao tiếp thì ngược lại làm tăng độ trễ. Vì vậy trong thực tế, các thiết kế đăng ký trước và tái sử dụng bể bộ đệm, hoặc khấu hao (amortize) chi phí đăng ký bằng tính năng phân trang theo yêu cầu (ODP) của bộ điều hợp hiện đại, là quan trọng. Như vậy hiệu năng RDMA phụ thuộc lớn không chỉ vào thông số phần cứng mà còn vào thiết kế quản lý bộ nhớ.
So sánh với đường TCP/IP truyền thống làm nổi rõ khác biệt cấu trúc này. Trong giao tiếp dựa trên socket, một thông điệp được sao chép từ bộ đệm ứng dụng sang bộ đệm socket của nhân, đi qua ngăn xếp giao thức, và được sao chép lại vào bộ đệm trình điều khiển NIC rồi mới được gửi. Ở phía nhận, các bản sao theo thứ tự ngược và ngắt nhân, softIRQ, chuyển ngữ cảnh lại lặp lại. Trong quá trình này CPU tiêu thời gian không vào tính toán mà vào sao chép dữ liệu và xử lý giao thức, và bộ nhớ đệm CPU bị ô nhiễm bởi dữ liệu giao tiếp, gián tiếp làm giảm cả hiệu năng ứng dụng. RDMA loại bỏ đồng thời cả hai chi phí — sao chép và băng qua nhân — nên băng thông càng lớn và thông điệp càng nhỏ — tức ngân sách xử lý cho mỗi gói càng ít — thì lợi thế tương đối của nó càng rộng ra. Hiểu rằng "lý do RDMA nhanh" không phải vì đường truyền nhanh mà vì nó đã loại bỏ công việc không cần thiết dọc đường dữ liệu đi qua chính là điểm khởi đầu của thiết kế.
3. Các thao tác truyền tải (Verbs) và luồng xử lý
Các thao tác RDMA cung cấp chia rộng thành SEND/RECV hai phía (two-sided) và WRITE/READ/ATOMIC một phía (one-sided). Sơ đồ chi tiết quy trình dưới đây mô tả luồng điển hình trong đó một RDMA WRITE một phía diễn ra.
flowchart TD
A["Ứng dụng gửi: lấy địa chỉ đích và rkey"] --> B["Đưa WR(Post Send to SQ)"]
B --> C["RNIC cục bộ: DMA đọc từ bộ đệm đã đăng ký"]
C --> D["Truyền qua fabric(thứ tự và truyền lại do HW xử lý)"]
D --> E["RNIC từ xa: DMA ghi vào bộ nhớ đích"]
E --> F{"CPU phía nhận tham gia?"}
F -->|"Không(one-sided)"| G["Ứng dụng nhận hoàn tất mà không hay"]
C --> H["Báo hoàn tất lên hàng đợi hoàn tất(CQ)"]
H --> I["Ứng dụng gửi: xác nhận hoàn tất bằng polling/sự kiện"]
SEND/RECV, ngữ nghĩa kênh hai phía (Channel Semantics), giống trao đổi thông điệp của TCP. Phía nhận phải đưa trước một bộ đệm nhận lên RQ, và SEND của bên gửi được chuyển tới bộ đệm đó. Vì cả hai ứng dụng đều tham gia nên nó thích hợp cho trao đổi điều khiển và tín hiệu, nhưng mang gánh nặng nhỏ là phải đưa trước bộ đệm nhận và xử lý hoàn tất ở cả hai phía. Ngược lại, RDMA WRITE/READ, ngữ nghĩa bộ nhớ một phía (Memory Semantics), cho bên gửi thao tác trực tiếp bộ nhớ mà không hề đánh thức CPU phía nhận, miễn là biết địa chỉ ảo và rkey của đối tác. Nhờ tính bất đối xứng này, giao tiếp một chiều trong đó một bên "đẩy dữ liệu vào (WRITE)" hoặc "kéo dữ liệu ra (READ)" trở nên khả thi, cho hiệu năng mạnh mẽ trong kho khóa-giá trị phân tán, nhật ký chia sẻ và tăng tốc RPC.
Nhóm thứ ba, thao tác nguyên tử (Atomic, Compare-and-Swap và Fetch-and-Add), thực hiện đọc-sửa-ghi trên bộ nhớ từ xa một cách nguyên tử. Điều này cung cấp các nguyên thủy đồng bộ trong một vòng khứ hồi mạng duy nhất cho việc triển khai khóa phân tán, bộ đếm và đồng thuận (consensus), bảo đảm nhất quán với ít vòng khứ hồi hơn nhiều so với thiết kế dựa trên thông điệp truyền thống. Chẳng hạn, cập nhật số phiên bản bằng Compare-and-Swap từ xa trong kho khóa-giá trị phân tán giúp triển khai kiểm soát đồng thời lạc quan (optimistic concurrency) mà không đánh thức CPU máy chủ, vượt qua nút thắt xử lý phía máy chủ.
Hàm ý thực tiễn của thao tác một phía là sự "phi tập trung hóa" của CPU máy chủ. Trong RPC truyền thống mọi yêu cầu đều được xử lý qua CPU máy chủ, khiến máy chủ thành điểm nóng; nhưng dùng RDMA READ/WRITE, máy khách truy vấn và cập nhật bộ nhớ máy chủ trực tiếp, giảm mạnh tải CPU máy chủ. Tuy nhiên điều này kéo theo gánh nặng phải thiết kế lại cấu trúc dữ liệu thành "dạng có thể truy cập trực tiếp an toàn từ xa," nên phải cân nhắc kỹ sự đánh đổi giữa lợi ích hiệu năng và độ phức tạp thiết kế. Nói cách khác, thao tác một phía không phải "bộ tăng tốc miễn phí" mà là một quyết định thiết kế làm thay đổi cả mô hình dữ liệu của ứng dụng.
Lựa chọn giữa thao tác một phía và hai phía tùy thuộc vào việc có hiểu biết trước về mẫu giao tiếp hay không. Trong các mẫu sản xuất-tiêu thụ hay bộ đệm chia sẻ nơi bên gửi có thể biết trước "ghi vào đâu trong bộ nhớ đối tác," WRITE một phía né hoàn toàn CPU phía nhận và cho hiệu quả cao nhất. Ngược lại, trong mẫu yêu cầu-phản hồi nơi phía nhận phải xử lý chủ động, SEND/RECV hai phía là tự nhiên. Trong thực tế hai cách thường được pha trộn — trao đổi điều khiển và tín hiệu bằng SEND/RECV trong khi di chuyển phần thân dữ liệu lớn bằng RDMA WRITE/READ. Như vậy lựa chọn thao tác là một bài toán thiết kế điều chỉnh theo mẫu giao tiếp giữa hiệu năng và sự đơn giản của lập trình.
Nguyên lý chung xuyên suốt toàn bộ luồng xử lý là mô hình bất đồng bộ, hướng hoàn tất (completion-driven). Sau khi đưa công việc, ứng dụng không chặn mà làm việc khác, rồi thu kết quả bằng cách polling hàng đợi hoàn tất hoặc nhận thông báo sự kiện. Tính bất đồng bộ này xếp chồng (overlap) nhiều giao tiếp để làm bão hòa fabric, nhưng sự đánh đổi giữa độ trễ và mức chiếm dụng CPU phân nhánh theo phương thức xác nhận hoàn tất (polling so với sự kiện). Polling cho độ trễ thấp nhất nhưng đốt CPU (busy-wait), còn sự kiện tiết kiệm CPU nhưng thêm độ trễ ngắt. Chọn cách nào là một quyết định thiết kế dựa trên độ nhạy độ trễ của khối công việc.
4. So sánh các phương thức triển khai — InfiniBand · RoCE · iWARP
RDMA được triển khai trên ba tầng truyền tải, và mỗi phương thức có những đánh đổi rõ ràng về hiệu năng, khả năng tương thích và độ khó vận hành. Lý do căn bản của khác biệt này nằm ở lựa chọn "bảo đảm truyền tải không mất gói (lossless), đúng thứ tự mà RDMA yêu cầu ở tầng nào và bằng cách nào."
| Phân loại | InfiniBand | RoCE v2 | iWARP |
|---|---|---|---|
| Nền tảng | Fabric IB chuyên dụng | Ethernet(UDP/IP, cổng 4791) | Ethernet(TCP/IP) |
| Định tuyến | Mạng con IB | Định tuyến L3 được | Định tuyến L3 được |
| Bảo đảm không mất gói | Điều khiển luồng theo tín dụng(tích hợp) | Cần PFC+ECN(DCQCN) | TCP xử lý mất gói |
| Độ trễ/hiệu năng | Thấp nhất/cao nhất | Rất cao | Trung bình |
| Độ khó vận hành | Thiết bị/quản lý chuyên dụng | Cần tinh chỉnh Ethernet | Tương đối đơn giản |
| Ứng dụng tiêu biểu | Siêu máy tính HPC/AI | Trung tâm dữ liệu đám mây/AI | Doanh nghiệp đa dụng |
InfiniBand tích hợp điều khiển luồng theo tín dụng vào tầng liên kết để cung cấp mặc định một fabric không mất gói không làm rơi gói, và được cấu thành từ các switch, bộ điều hợp và trình quản lý mạng con chuyên dụng. Nó tốt nhất về độ trễ và thông lượng nhưng đòi hỏi một hệ sinh thái chuyên dụng tách biệt với Ethernet, áp đặt gánh nặng lớn về chi phí và chuyên môn vận hành. Do đó nó chiếm ưu thế trong siêu máy tính HPC/AI hàng đầu nơi chi phí giao tiếp chi phối hiệu năng.
RoCE là phương thức đưa RDMA này lên Ethernet; v1 là khung Ethernet L2 (không định tuyến được), nhưng RoCEv2, với đóng gói UDP/IP (cổng đích 4791), trở nên định tuyến được ở L3 và là tiêu chuẩn trên thực tế cho các trung tâm dữ liệu quy mô lớn. Mấu chốt là tái hiện trên Ethernet có thể mất gói cái tính không mất gói mà RDMA lấy làm tiền đề. Vì thế, PFC (Priority Flow Control) ngăn rơi gói cho một lớp lưu lượng cụ thể, và điều khiển tắc nghẽn dựa trên ECN (DCQCN) điều chỉnh tốc độ gửi. Tuy nhiên nếu PFC thiết kế kém sẽ gây lan tắc nghẽn (congestion spreading) trong đó tắc nghẽn lan ngược dòng, chặn đầu hàng (head-of-line blocking), và nặng hơn là cả bế tắc (deadlock), nên thành bại của RoCE phụ thuộc lớn vào năng lực tinh chỉnh fabric. Hàm ý thực tiễn cốt lõi là "RoCE không phải một InfiniBand dễ dàng mà là lựa chọn chuyển độ khó vận hành sang kỹ thuật mạng."
iWARP đặt RDMA trên TCP/IP tiêu chuẩn, ủy thác bảo đảm không mất gói cho truyền lại và điều khiển tắc nghẽn của TCP. Nhờ đó nó hoạt động cả trên mạng định tuyến thông thường và WAN mà không cần cấu hình Ethernet không mất gói đặc biệt, hạ thấp rào cản áp dụng, nhưng độ phức tạp của việc xử lý ngăn xếp TCP bằng phần cứng khiến nó thua RoCE và InfiniBand về độ trễ và hiệu năng. Lựa chọn giữa ba phương thức cuối cùng tựa trên sự đánh đổi tam giác "hiệu năng đỉnh cao (InfiniBand) ↔ tích hợp Ethernet và mở rộng quy mô lớn (RoCE) ↔ tương thích mạng đa dụng (iWARP)," được quyết định cho phù hợp với khối công việc và năng lực tổ chức.
Lý do thứ bậc tương quan của ba phương thức được tái sắp xếp theo thời gian nằm ở "thay đổi về tính tích hợp và khả năng mở rộng mà trung tâm dữ liệu đòi hỏi." Trong quá khứ, InfiniBand hiệu năng đỉnh cao thống trị HPC, nhưng khi các trung tâm dữ liệu đám mây/AI được xây trên hệ sinh thái Ethernet vốn đã khổng lồ, nhu cầu "tái dùng hệ vận hành, nhân lực và thiết bị Ethernet hiện có trong khi vẫn đạt hiệu năng RDMA" tăng cao, và tại giao điểm đó RoCEv2 nổi lên nhanh chóng. Tức là căng thẳng giữa tối ưu kỹ thuật (InfiniBand) và tính phù hợp hệ sinh thái (Ethernet) đã sinh ra sự thỏa hiệp gọi là RoCE, và Ultra Ethernet bàn ở phần sau có thể coi là bước tiến hóa tiếp theo nhằm vá các điểm yếu của thỏa hiệp này (phụ thuộc PFC và giới hạn điều khiển tắc nghẽn) ở cấp tiêu chuẩn.
5. Chuyên sâu: Ứng dụng AI/HPC và xu hướng mới nhất
Công nghệ RDMA đang tiến hóa nhanh chóng song hành với sự lan rộng của hạ tầng AI. Thứ nhất, GPUDirect RDMA và tăng tốc giao tiếp tập thể. Trong học LLM quy mô lớn, hàng nghìn GPU trao đổi gradient mỗi bước, và GPUDirect RDMA để NIC đọc và ghi trực tiếp bộ nhớ GPU không qua bộ nhớ host, loại bỏ độ trễ sao chép. Thêm vào đó các thư viện giao tiếp tập thể như NCCL tối ưu All-Reduce và All-Gather trên RDMA, và tính toán trong mạng (In-Network Computing, ví dụ: SHARP) trong đó switch thực hiện phép tổng ngay trong mạng, thì bản thân khối lượng giao tiếp được giảm để tối thiểu hóa thời gian nhàn rỗi của GPU. Trên thực tế, cải thiện hiệu quả giao tiếp trong các cụm huấn luyện lớn tác động trực tiếp tới tổng thời gian và chi phí huấn luyện.
Thứ hai, kết hợp với phân rã lưu trữ và bộ nhớ (Disaggregation). Triển khai NVMe-oF (NVMe over Fabrics) trên truyền tải RDMA cung cấp SSD NVMe từ xa với độ trễ gần với đĩa cục bộ, cho phép hạ tầng khả kết hợp (composable) mở rộng tính toán và lưu trữ độc lập. Hơn nữa, gộp bộ nhớ dựa trên CXL và RDMA bổ sung cho nhau, củng cố xu hướng coi toàn trung tâm dữ liệu như một bể tài nguyên khổng lồ duy nhất. Hệ thống tệp phân tán (ví dụ: lưu trữ song song) và DB trong bộ nhớ cũng áp dụng RDMA làm truyền tải back-end để hạ độ trễ xuống mức vài micro giây.
Thứ ba, tiêu chuẩn hóa Ethernet thế hệ tiếp theo nhắm tới thời đại AI. Để vượt qua sự phụ thuộc PFC và giới hạn điều khiển tắc nghẽn của RoCE hiện có, ngành công nghiệp đang tiêu chuẩn hóa một tầng truyền tải mới tối ưu cho khối công việc AI/HPC, lấy Ultra Ethernet Consortium (UEC) làm trung tâm. Cốt lõi là phun gói (packet spraying) và đa đường rải các luồng từng tập trung trên một đường ra nhiều đường, phân phối ít nhạy với thứ tự, và điều khiển tắc nghẽn tinh vi hơn để giảm độ trễ đuôi (tail latency) của giao tiếp tập thể quy mô lớn. Các nền tảng Ethernet tinh chỉnh riêng cho AI như Spectrum-X của NVIDIA cũng là hiện thực thương mại của cùng nhận thức vấn đề. Điều này cho thấy sự chuyển hướng của toàn ngành nhằm "giữ lợi ích của RDMA trong khi thiết kế lại tầng truyền tải cho hợp với mẫu giao tiếp của các cụm AI khổng lồ."
Tài chính và viễn thông cũng là những lĩnh vực ứng dụng mạnh của RDMA. Trong giao dịch độ trễ cực thấp (HFT) và phân phối dữ liệu thị trường, độ trễ cấp micro giây trực tiếp dẫn dắt doanh thu, và RDMA cung cấp độ trễ thấp mang tính tất định (deterministic) với jitter bị kìm hãm, tạo lợi thế cạnh tranh. Ngoài ra, các hệ thống tệp song song như Lustre và GPFS và lưu trữ phân tán như Ceph áp dụng truyền tải RDMA làm back-end để hạ độ trễ đường siêu dữ liệu và dữ liệu, bảo đảm băng thông tổng hợp trong môi trường HPC nơi hàng trăm nút tuôn I/O đồng thời. Như vậy RDMA không phải công nghệ ngách của một ngành cụ thể mà đã mở rộng sang mọi lĩnh vực hiệu năng cao nơi độ trễ và chi phí giao tiếp là nút thắt.
Về con số cụ thể, trong khi đường TCP/IP cho thấy độ trễ hàng chục micro giây và mức chiếm dụng CPU cao, thì RDMA hạ độ trễ liên nút xuống mức 1–2 micro giây và giữ mức chiếm dụng CPU dùng cho giao tiếp ở một chữ số phần trăm. Tuy nhiên các con số như vậy biến thiên lớn theo fabric, kích thước thông điệp và tinh chỉnh, nên nguyên tắc khi áp dụng là kiểm chứng bằng đo thực tế (PoC) trên chính khối công việc của mình. Riêng RoCE thay đổi hiệu năng rất lớn chỉ với một tham số PFC/ECN, nên so sánh thông số mà không có đo chuẩn là nguy hiểm.
Phác họa một ứng dụng thực tế, hãy xét một cụm huấn luyện mô hình ngôn ngữ lớn trên, chẳng hạn, 1.024 GPU. Mỗi bước huấn luyện kích hoạt một All-Reduce trong đó mọi GPU trao đổi gradient, và xử lý giao tiếp này qua TCP/IP và bộ nhớ host làm kéo dài thời gian nhàn rỗi của GPU chờ giao tiếp, hạ mức sử dụng của các bộ tăng tốc đắt tiền. Nếu GPUDirect RDMA để NIC trao đổi bộ nhớ GPU trực tiếp, NCCL tối ưu giao tiếp trên fabric không mất gói RoCEv2, và switch thực hiện phép tổng một phần thay cho nút, thì đoạn giao tiếp được rút ngắn, và cùng một khoản đầu tư GPU có thể hoàn tất huấn luyện trong thời gian ngắn hơn. Vì cải thiện 1% hiệu quả giao tiếp, qua hàng nghìn GPU và nhiều tuần huấn luyện, quy đổi thành tiết kiệm đáng kể về điện năng, thời gian và chi phí, nên thiết kế fabric trở thành biến số cốt lõi của ROI hạ tầng AI.
6. Cân nhắc và hàm ý
RDMA/RoCE là công nghệ cốt lõi để giải nút thắt giao tiếp của thời đại AI/HPC/lưu trữ hiệu năng cao, nhưng chỉ hiểu nó như "một card mạng nhanh" thì rất dễ thất bại khi áp dụng. Từ góc nhìn Kỹ sư chuyên nghiệp, cần thiết kế tích hợp bốn trục sau.
Chiến lược áp dụng (phán đoán tính phù hợp của khối công việc): Lợi ích của RDMA tỷ lệ với "mức độ giao tiếp chi phối hiệu năng tổng thể." Các khối công việc nơi độ trễ và chi phí giao tiếp CPU là nút thắt — HPC/MPI ràng buộc đồng bộ, học AI phân tán quy mô lớn, lưu trữ phân tán/DB trong bộ nhớ — là đối tượng hàng đầu, còn trong các khối công việc web và lô thông thường có tỷ trọng giao tiếp thấp thì hoàn vốn đầu tư bị hạn chế. Trước khi áp dụng, phải phân tích kích thước thông điệp, tần suất và mẫu đồng bộ của lưu lượng của mình để ước lượng lợi-hại.
Đánh đổi (hiệu năng so với độ phức tạp vận hành): Đổi lại việc tích hợp vào hệ sinh thái Ethernet, RoCE đòi hỏi kỹ thuật mạng độ khó cao — tinh chỉnh PFC/ECN/DCQCN, thiết kế lớp lưu lượng không mất gói, và ngăn lan tắc nghẽn cùng bế tắc. InfiniBand có hiệu năng và ổn định vận hành cao nhưng cần thiết bị chuyên dụng và chuyên môn vận hành riêng. Phải quyết định "đặt độ phức tạp ở đâu để đổi lấy hiệu năng" trong tương quan với năng lực tổ chức.
Thiết kế lại bảo mật và cô lập: Vì RDMA vượt qua nhân và truy cập trực tiếp bộ nhớ từ xa, mô hình tường lửa host và kiểm tra gói truyền thống không áp dụng nguyên trạng. Quản lý quyền truy cập rkey/QP, tối thiểu hóa phạm vi đăng ký bộ nhớ, cô lập fabric giữa các thuê bao (VLAN/phân vùng), và mã hóa truyền tải phải được phản ánh sớm trong thiết kế, và trong đám mây đa thuê bao đặc biệt phải làm rõ ranh giới tin cậy của truy cập bộ nhớ từ xa.
Khả năng quan sát vận hành và ứng phó sự cố: RDMA khó soi bằng các công cụ chẩn đoán truyền thống ở tầng nhân/socket (bắt gói, thống kê socket), khiến khó xác định nguyên nhân suy giảm hiệu năng (nút thắt đăng ký bộ nhớ, bão PFC, tắc nghẽn trên một QP cụ thể). Nếu không dựng trước một hệ khả năng quan sát thu thập bộ đếm bộ điều hợp, thống kê thông báo tắc nghẽn và telemetry fabric, thì không truy vết được suy giảm hiệu năng ngắt quãng trong các cụm lớn và cuối cùng để các bộ tăng tốc đắt tiền nhàn rỗi. Phải thiết kế một đường ống giám sát riêng cho RDMA đồng thời với việc áp dụng.
Ứng phó tiêu chuẩn hóa/phụ thuộc và triển vọng: Hiện tinh chỉnh RoCE và điều khiển tắc nghẽn có độ lệch triển khai theo nhà cung cấp lớn và khả năng chuyển đổi thấp. Áp dụng các tiêu chuẩn mở (Verbs, UEC) và thư viện trừu tượng (libibverbs, UCX, v.v.) và thiết kế sao cho logic không gắn trực tiếp với phần cứng cụ thể có thể hạ rủi ro phụ thuộc. Về sau RDMA được kỳ vọng kết hợp với Ultra Ethernet, CXL, GPUDirect và tính toán trong mạng để khẳng định vị thế fabric giao tiếp mặc định của trung tâm dữ liệu AI, nên phải vẽ lộ trình tích hợp cùng các công nghệ liên quan.
Tổng hợp lại, RDMA/RoCE là một sự chuyển dịch kiến trúc "giải phóng CPU khỏi việc chở dữ liệu và mở rộng bộ nhớ ra bên kia mạng." Thay vì thông số từng thiết bị, Kỹ sư chuyên nghiệp phải đọc một cách tích hợp nguyên lý thiết kế vượt qua nhân, zero-copy và chuyển giao truyền tải, cùng sự đánh đổi về việc bảo đảm truyền tải không mất gói ở đâu và bằng cách nào, và rèn khả năng phán đoán phương thức fabric cùng mức tinh chỉnh dựa trên bản chất nút thắt giao tiếp của khối công việc của mình.
Tài liệu tham khảo
- NVIDIA, "What Is RDMA?" — https://www.nvidia.com/en-us/networking/
- IBTA (InfiniBand Trade Association), "RoCE" — https://www.infinibandta.org/roce-initiative/
- Ultra Ethernet Consortium — https://ultraethernet.org/
- RFC 5040, "A Remote Direct Memory Access Protocol Specification" (iWARP) — https://www.rfc-editor.org/rfc/rfc5040
Tóm tắt một câu: RDMA là công nghệ giao tiếp dùng vượt qua nhân, zero-copy và chuyển giao truyền tải để truy cập trực tiếp bộ nhớ từ xa mà không cần CPU can thiệp, đạt độ trễ cực thấp và băng thông cao; còn RoCE triển khai nó trên Ethernet tiêu chuẩn (RoCEv2/UDP/IP) với tính không mất gói dựa trên PFC/ECN, khẳng định vị thế một fabric cốt lõi của trung tâm dữ liệu AI/HPC.