GPU / AI

GPUDirect Storage với KvikIO: đọc dữ liệu thẳng vào GPU

Bài kỹ thuật NVIDIA ngày 22/10/2026 giải thích KvikIO, cuFile và cách xác nhận dữ liệu thực sự đi qua đường GPUDirect Storage thay vì CPU.

thuemaychu.vn
Minh họa luồng dữ liệu tốc độ cao đi trực tiếp từ ổ NVMe vào bộ nhớ GPU

Một GPU mạnh vẫn có thể phải chờ nếu dữ liệu đi từ ổ lưu trữ qua bộ nhớ CPU rồi mới tới GPU. Với huấn luyện, ảnh y tế hoặc pipeline phân tích lớn, nút thắt I/O có thể làm GPU rảnh nhưng chi phí vẫn chạy. Ngày 22/10/2026, NVIDIA đăng hướng dẫn dùng KvikIO trong Python để đọc dữ liệu vào bộ nhớ GPU qua GPUDirect Storage.

Ba lớp cần phân biệt

Theo NVIDIA Technical Blog, GPUDirect Storage (GDS) là công nghệ tạo đường dữ liệu trực tiếp giữa storage được hỗ trợ và bộ nhớ GPU. cuFile là API C truy cập GDS, còn KvikIO cung cấp giao diện Python và C++ ở lớp cao hơn.

Vai trò từng lớp
LớpVai tròĐiểm dễ hiểu sai
KvikIOAPI Python/C++ và chọn gọi cuFile hay POSIXGọi KvikIO chưa chắc đã dùng GDS
cuFileĐăng ký tệp và bộ đệm GPU, chọn đường truyềnVào cuFile vẫn có thể rơi về đường CPU
nvidia-fsMô-đun kernel cho đường tăng tốcPhải được tải và topology phải phù hợp
POSIX compatibilityĐưa dữ liệu qua bộ nhớ hostỨng dụng vẫn chạy nhưng không đạt đường trực tiếp

Có hai quyết định chọn đường độc lập: KvikIO quyết định gọi cuFile hay dùng tương thích POSIX; sau đó cuFile quyết định dùng nvidia-fs hay đường qua CPU. Vì vậy, chương trình chạy thành công không chứng minh GDS đã hoạt động.

Cấu hình NVIDIA dùng trong hướng dẫn

Ví dụ của hãng được thử trên hệ thống x86_64 có GPU H100, CUDA 13.3, cuFile 1.18, NVMe cục bộ định dạng ext4 và topology PIX — dữ liệu đi qua tối đa một cầu PCIe. IOMMU và ACS được tắt để giữ truyền peer-to-peer; nvidia-fs được nạp.

Đây là cấu hình thử nghiệm, không phải yêu cầu áp dụng nguyên xi cho mọi trung tâm dữ liệu. Việc tắt IOMMU hoặc ACS có ảnh hưởng tới mô hình cô lập và ảo hóa; đội vận hành phải đánh giá an toàn, khả năng PCI passthrough và chính sách nhà cung cấp trước khi thay đổi.

Cách xác nhận đường dữ liệu

  1. Kiểm tra GPU, driver, CUDA, phiên bản cuFile và ma trận storage/file system được NVIDIA hỗ trợ.
  2. Xem topology GPU–NVMe bằng nvidia-smi topo -nvme; ghi nhận cầu PCIe và NUMA thay vì chỉ nhìn tốc độ ổ.
  3. Xác nhận nvidia-fs đã nạp và chạy gdscheck theo tài liệu NVIDIA.
  4. Đặt CUFILE_STATS_LEVEL=3, chạy workload đại diện và đọc thống kê bằng gds_stats.
  5. Phân biệt bộ đếm nvfs của đường tăng tốc với bộ đếm posix của đường qua CPU.
  6. Thử nhiều kích thước khối, độ sâu hàng đợi và số luồng; ngưỡng KVIKIO_GDS_THRESHOLD có thể đổi đường thực thi.
  7. Đo thông lượng, p95, CPU, thời gian GPU chờ dữ liệu và hiệu năng đầu cuối, không chỉ benchmark ổ đĩa.

Khi nào GDS có giá trị?

GDS đáng thử khi dữ liệu lớn, được đọc liên tục và CPU đang tốn đáng kể thời gian sao chép. Ví dụ gồm huấn luyện từ tập dữ liệu ảnh, phân tích dữ liệu bằng cuDF, xử lý ảnh khoa học và nạp nhiều shard mô hình. Với tập dữ liệu nhỏ đã nằm trong cache hoặc workload chủ yếu bị giới hạn bởi tính toán, khác biệt có thể thấp.

NVIDIA nêu KvikIO đã được dùng trong cuDF, cuCIM, cuPhoton và các workload Presto tăng tốc GPU. Đây là ví dụ của hệ sinh thái hãng, không phải cam kết tốc độ cho mọi storage. Hiệu năng còn phụ thuộc NVMe, RAID, hệ thống tệp, mạng RDMA, NUMA và số GPU tranh chấp I/O.

Tác động tới thuê GPU server tại Việt Nam

Khi đặt GPU server cho pipeline dữ liệu, doanh nghiệp nên hỏi không chỉ loại GPU mà cả số lane PCIe, topology NVMe, băng thông storage và khả năng kiểm soát kernel. Một VPS GPU bị giới hạn quyền host có thể không cho nạp nvidia-fs hoặc thay IOMMU; cần xác minh trước thay vì giả định GDS luôn khả dụng.

Câu hỏi thường gặp

KvikIO chạy thành công có nghĩa GDS đang hoạt động không?

Không. KvikIO và cuFile đều có thể chọn đường tương thích qua CPU. Hãy kiểm tra bộ đếm nvfs và posix bằng thống kê cuFile.

GPUDirect Storage có thay thế hệ thống tệp không?

Không. GDS tạo đường truyền dữ liệu hiệu quả hơn nhưng vẫn phụ thuộc storage, hệ thống tệp và cấu hình được hỗ trợ.

Có nên tắt IOMMU và ACS trên mọi máy không?

Không. Đây là cấu hình trong ví dụ NVIDIA; thay đổi có tác động tới cô lập và ảo hóa, cần đánh giá theo hạ tầng cụ thể.

Nguồn tham khảo

NVIDIA Technical Blog, đăng ngày 22/10/2026: How to Read Data into GPU Memory in Python with NVIDIA GPUDirect Storage.

Bước tiếp theo

Kỹ sư AI nên chuẩn bị loại GPU, dung lượng và loại NVMe, hệ thống tệp, kích thước tập dữ liệu, pattern đọc và mục tiêu thông lượng. Gửi thông tin qua trang Thuê GPU Server để trao đổi cấu hình benchmark; khả năng cung cấp GDS hoặc quyền kernel chỉ được xác nhận sau khi đối chiếu hạ tầng thực tế.

Cần máy chủ cho workload này?

NOC thuemaychu.vn hỗ trợ chọn CPU, GPU và băng thông. PoC trong 24 giờ.

Bài viết liên quan

Ảnh minh họa máy chủ GPU và hệ thống rack làm mát bằng chất lỏngGPU / AI

NVIDIA B300 và GB300: chọn máy chủ hay rack Blackwell Ultra?

DGX B300 và GB300 NVL72 là hai cách triển khai hạ tầng Blackwell Ultra ở quy mô khác nhau. So sánh chúng chỉ bằng số GPU hoặc con số PFLOPS dễ bỏ qua khả năng tận dụng tài nguyên và chi phí vận hành. Bài này hướng tới người đang chuẩn bị cấu hình AI, không phải bảng giá phần cứng.

Đọc tiếp
Xem tất cả bài viết
GọiFBZaloSalesZaloOA