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.

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.
| Lớp | Vai trò | Điểm dễ hiểu sai |
|---|---|---|
| KvikIO | API Python/C++ và chọn gọi cuFile hay POSIX | Gọi KvikIO chưa chắc đã dùng GDS |
| cuFile | Đăng ký tệp và bộ đệm GPU, chọn đường truyền | Vào cuFile vẫn có thể rơi về đường CPU |
| nvidia-fs | Mô-đun kernel cho đường tăng tốc | Phả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
- Kiểm tra GPU, driver, CUDA, phiên bản cuFile và ma trận storage/file system được NVIDIA hỗ trợ.
- 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 độ ổ. - Xác nhận
nvidia-fsđã nạp và chạygdschecktheo tài liệu NVIDIA. - Đặt
CUFILE_STATS_LEVEL=3, chạy workload đại diện và đọc thống kê bằnggds_stats. - Phân biệt bộ đếm
nvfscủa đường tăng tốc với bộ đếmposixcủa đường qua CPU. - Thử nhiều kích thước khối, độ sâu hàng đợi và số luồng; ngưỡng
KVIKIO_GDS_THRESHOLDcó thể đổi đường thực thi. - Đ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
GPU / AINVIDIA 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.
GPU / AIllm-d 1.0: khi nào nên dùng suy luận LLM phân tán?
Google công bố llm-d 1.0, ngăn xếp mã nguồn mở để phân phối suy luận LLM trên Kubernetes. Bài viết phân tích tính năng, số liệu do hãng công bố và khi nào kiến trúc này đáng dùng.
Data CenterGoogle Distributed Cloud air-gapped thêm AI và mạng 100 Gbps
Google mở rộng Distributed Cloud air-gapped với AI cục bộ, tìm kiếm doanh nghiệp, HGX B300 và các nâng cấp mạng. Bài viết tách rõ GA, preview và yêu cầu kiến trúc.