VietTechiesHIỂU CÔNG NGHỆ. MỞ GÓC NHÌN.
☰ Chuyên mục

NVIDIA thống nhất mạng do GPU khởi tạo trên toàn bộ CUDA Stack qua DOCA GPUNetIO

07/10/2026 · VietTechies · Biên tập

Minh họa khái niệm về phiến vi xử lý kim loại kết nối trực tiếp với cáp mạng đồng trên bề mặt kính.
Ảnh minh họa do AI tạo.

NVIDIA đã phác thảo cách bộ khung DOCA GPUNetIO đóng vai trò làm nền tảng hợp nhất cho các hoạt động truyền thông mạng do GPU khởi tạo trên toàn bộ CUDA software stack. Bằng cách chuẩn hóa các thao tác GPUDirect Async Kernel-Initiated (GDA-KI) dưới một cơ chế chung, công nghệ này thay thế các giải pháp riêng lẻ, phân tán giữa các thư viện trước đây như NCCL, NVSHMEM, UCX/NIXL và Aerial 5G SDK.

Loại bỏ điểm nghẽn trên luồng điều khiển của CPU

Các ứng dụng GPU phân tán truyền thống phụ thuộc vào CPU máy host để quản lý các giao dịch mạng, làm gia tăng độ trễ trên các luồng dữ liệu quan trọng. DOCA GPUNetIO kết hợp GPUDirect RDMA, GDRCopy và GDA-KI để các kernel CUDA có thể trực tiếp quản lý các thao tác Ethernet, RDMA, Verbs và DMA mà không cần truyền giao dịch qua bộ xử lý host.

Phương thức phân phối kép: Mã nguồn mở và bộ SDK

NVIDIA phân phối GPUNetIO dưới hai cấu hình bổ trợ lẫn nhau. Thư viện mã nguồn mở tinh gọn cung cấp giải pháp tập trung vào Verbs cho các framework yêu cầu phương thức truyền tải mạng hoàn toàn mở. Trong khi đó, bộ DOCA SDK toàn diện hoạt động như một tập hợp mở rộng, bổ sung khả năng hỗ trợ cho các giao diện Ethernet, DMA và Communication Channel.

Bản dựng mã nguồn mở có thể tự động phát hiện sự tồn tại của DOCA SDK đầy đủ trong quá trình thực thi thông qua cơ chế tải động với dlopen. Nếu phát hiện SDK, lớp mã nguồn mở sẽ gọi các hàm SDK mã nguồn đóng để mở rộng tính năng; nếu không có, thư viện vẫn tiếp tục vận hành bình thường với phiên bản Verbs mã nguồn mở.

Thiết lập luồng điều khiển và mô hình thực thi

Quá trình thực thi đòi hỏi một mô hình lập trình gồm hai giai đoạn. Đầu tiên, CPU host chạy luồng điều khiển bằng cách khởi tạo các đối tượng hàng đợi mạng, chẳng hạn như hàng đợi Verbs hoặc Ethernet thông qua mlx5dv, rồi xuất các mô tả hàng đợi vào bộ nhớ GPU. Tiếp theo, các kernel CUDA xử lý trực tiếp luồng dữ liệu trên GPU bằng cách gửi các Work Queue Entry (WQE), thông báo cho card mạng và tùy chọn kiểm tra Completion Queue Entry (CQE).

Để thông báo cho phần cứng về khối lượng công việc đang chờ, GPUNetIO hỗ trợ nhiều chế độ doorbell: ghi MMIO trực tiếp thông thường, chế độ BlueFlame dành cho các tác vụ yêu cầu độ trễ thấp nơi toàn bộ WQE được ghi thẳng vào thanh ghi của card mạng, và chế độ hỗ trợ bởi CPU. Chế độ doorbell hỗ trợ bởi CPU chuyển các cập nhật từ GPU qua bộ nhớ chia sẻ mà một luồng CPU host đang quét, phù hợp với các kiến trúc không có kết nối trực tiếp giữa GPU và NIC như DGX Spark.

Tích hợp trên các thư viện truyền thông

Kiến trúc này cho phép các thư viện cấp cao chuẩn hóa cơ chế truyền tải. Kể từ phiên bản 2.27, NCCL đã tích hợp GDA-KI thông qua giao diện GPU-Initiated Networking (GIN) sử dụng backend GPUNetIO Verbs mã nguồn mở, giúp tách biệt các thuật toán tập thể khỏi việc quản lý hàng đợi cấp thấp. Việc tích hợp song song cũng mở rộng sang các mô hình lập trình dựa trên PGAS như NVSHMEM, mang lại hiệu năng cải tiến đồng bộ cho toàn bộ hệ sinh thái GPU.

Ảnh minh họa do AI tạo, không phải ảnh tư liệu.

Nguồn: How DOCA GPUNetIO Unifies GPU-Initiated Networking Across the NVIDIA Software Stack