CUDA-oxide: Trình biên dịch Rust sang CUDA chính thức từ Nvidia
CUDA-oxide là trình biên dịch thử nghiệm từ Nvidia, cho phép viết nhân GPU bằng ngôn ngữ Rust an toàn và tự nhiên, biên dịch trực tiếp sang mã PTX mà không cần DSL hay ràng buộc ngoại vi.
CUDA-oxide là một dự án mới từ Nvidia Labs nhằm mang ngôn ngữ lập trình Rust vào môi trường GPU. Thay vì phải viết code C++ hoặc sử dụng các DSL (Domain Specific Language) phức tạp, các lập trình viên giờ đây có thể viết nhân GPU (GPU kernels) bằng cú pháp Rust thuần túy.
Trình biên dịch này hoạt động bằng cách chuyển đổi mã Rust trực tiếp sang mã PTX (Parallel Thread Execution) của Nvidia. Điều này có nghĩa là bạn không cần các ràng buộc ngôn ngữ nước ngoài (foreign language bindings) hay các lớp bao bọc (wrappers) phức tạp. Mọi thứ đều là Rust, tận dụng hệ thống kiểu (type system) và mô hình quyền sở hữu (ownership model) đặc trưng của ngôn ngữ này để tăng tính an toàn.
Tình trạng dự án
Hiện tại, dự án đang ở phiên bản v0.1.0, được đánh dấu là giai đoạn alpha sớm. Nvidia cảnh báo rằng người dùng có thể gặp lỗi, tính năng chưa hoàn thiện và sự thay đổi trong API. Tuy nhiên, đội ngũ phát triển hy vọng cộng đồng sẽ thử nghiệm và đóng góp phản hồi để định hình hướng đi của công cụ này.
Tính năng nổi bật
Dưới đây là những lý do chính khiến CUDA-oxide trở nên thú vị với các nhà phát triển:
- Rust trên GPU: Viết nhân GPU sử dụng hệ thống kiểu và mô hình quyền sở hữu của Rust. Mặc dù an toàn là mục tiêu hàng đầu, nhưng GPU có những sắc thái riêng mà lập trình viên cần lưu ý.
- Trình biên dịch SIMT: Đây không phải là một DSL. Nó là một backend tùy chỉnh của rustc để biên dịch Rust thuần túy thành PTX.
- Thực thi không đồng bộ (Async): Kết hợp công việc GPU dưới dạng đồ thị
DeviceOperationlười biếng, lập lịch qua các luồng (stream pools) và chờ kết quả bằng.await.
Bắt đầu nhanh
Để sử dụng CUDA-oxide, bạn cần cài đặt các điều kiện tiên quyết và sử dụng lệnh cargo oxide run. Dự án cung cấp macro #[kernel] để đánh dấu các hàm sẽ chạy trên GPU, giúp mã nguồn gọn gàng và dễ đọc hơn nhiều so với các phương pháp truyền thống.
Macro #[cuda_module] sẽ nhúng tạo phẩm thiết bị (device artifact) đã tạo vào tệp nhị phân của máy chủ (host binary) và tạo ra hàm kernels::load có kiểu dữ liệu, cùng với một phương thức khởi chạy cho mỗi nhân.
Bài viết liên quan

Phần mềm
Intel và AMD vá tổng cộng 70 lỗ hổng bảo mật trong Patch Tuesday tháng 5
13 tháng 5, 2026

Phần mềm
Google tung ra Antigravity 2.0: Ứng dụng lập trình thế hệ mới với công cụ CLI và gói đăng ký AI Ultra
19 tháng 5, 2026

Phần mềm
Plugin Checkmarx Jenkins bị xâm phạm trong cuộc tấn công chuỗi cung ứng
11 tháng 5, 2026
