GPU로 계산을 돌리는 프로그램은 두 부분으로 나뉩니다. CPU에서 데이터를 준비하는 코드와, GPU 안에서 수천 개 스레드로 동시에 실행되는 함수인 GPU 커널(GPU kernel)입니다. NVIDIA는 9월 8일 기술 블로그에서 이 커널까지 Rust로 직접 쓰는 CUDA Rust를 소개했습니다. 공식
NVIDIA는 이유를 이렇게 설명합니다. 추론 엔진, 서빙 인프라, 드라이버처럼 AI 시스템을 받치는 코드는 점점 Rust로 쓰이고, NVIDIA의 Nova Linux 드라이버와 Dynamo도 Rust를 씁니다. 그런데 GPU 커널만은 Rust에서 실행을 지시할 수 있을 뿐, 커널 자체는 다른 언어로 써야 했습니다. CUDA Rust는 Rust로 쓴 커널을 NVIDIA GPU용 어셈블리 형식인 PTX(Parallel Thread eXecution)로 바로 컴파일합니다. 공식
![어두운 화면에 초록색과 흰색 글자로 #[kernel] GPU entry point, #[launch_contract], pub fn vecadd 같은 Rust 커널 코드가 비스듬히 표시된 이미지](/images/posts/nvidia-cuda-rust-gpu-kernels/nvidia-blog-hero-source-v1.0.0.webp)
두 갈래: 스레드를 쓰느냐, 데이터 조각을 쓰느냐
CUDA Rust에는 두 방식이 있습니다. 첫째는 cuda-oxide가 맡는 단일 명령·다중 스레드(single instruction, multiple threads, SIMT) 방식입니다. 개발자가 스레드 하나가 할 일을 쓰면 GPU가 같은 일을 수천 개 스레드로 실행합니다. 기존 CUDA C++와 같은 사고방식입니다. 공식
둘째는 cutile-rs가 맡는 Tile 방식입니다. 개발자는 데이터를 나눈 조각(tile) 하나에 어떤 계산을 할지만 쓰고, 그 조각을 실제 GPU 스레드 몇 개로 처리할지는 컴파일러가 정합니다. NVIDIA는 코드에 특정 GPU 구조에 맞춘 선택이 남지 않는다는 이유로 Tile을 먼저 쓰고, 스레드와 메모리를 직접 다뤄야 할 때 SIMT로 내려가라고 권합니다. 공식

두 방식은 요구 조건도 다릅니다. 블로그에 따르면 cuda-oxide는 Linux, 연산 능력(compute capability) 8.0 이상의 GPU, CUDA 툴킷 12.x 이상, clang, 날짜가 고정된 nightly Rust가 필요합니다. cutile-rs는 CUDA 13.3과 안정판 Rust 1.89 이상이면 되고 별도 LLVM 설치가 필요 없습니다. 공식
컴파일러가 먼저 막는 실수
GPU에서는 수천 개 스레드가 정해진 순서 없이 같은 메모리에 접근합니다. 두 스레드가 같은 주소에 동시에 닿고 그중 하나가 값을 쓰면, 실행 순서에 따라 결과가 달라집니다. 이런 버그는 테스트를 통과했다가 실제 서비스에서 드러나는 경우가 많습니다.
NVIDIA 블로그는 출력 버퍼를 같은 커널의 입력으로도 넘기는 코드를 예로 듭니다. cuda-oxide에서는 이 코드가 E0502 오류로, cutile-rs에서는 E0382 오류로 컴파일되지 않습니다. cuda-oxide는 커널을 실행하는 호출마다 이를 검사하고, cutile-rs는 텐서의 소유권 자체가 실행 경계를 따라 이동하기 때문에 더 강한 보장이라고 블로그는 설명합니다. 공식

아직은 초기 단계입니다
NVIDIA는 두 프로젝트 모두 초기 단계이며 실제 서비스 환경에 쓸 준비가 되지 않았다고 분명히 밝혔습니다. cuda-oxide는 초기 알파이고, cutile-rs는 crates.io에 공개돼 Hugging Face의 Grout 추론 엔진과 mistral.rs에서 쓰이고 있습니다. 지원 범위가 불완전하고 API도 바뀔 수 있으며, SIMT 방식에서 공유 메모리를 쓰려면 아직 unsafe 코드가 필요합니다. 공식
| 구분 | cuda-oxide | cutile-rs |
|---|---|---|
| 방식 | SIMT: 스레드 하나의 동작을 작성 | Tile: 데이터 조각 하나의 계산을 작성 |
| Rust 도구 | 날짜가 고정된 nightly | 안정판 1.89 이상 |
| 상태 | 초기 알파 | crates.io 공개, 외부 프로젝트 사용 |
| 라이선스 | Apache License 2.0 | Apache License 2.0 |
이 글은 공개 일주일 뒤인 9월 16일 11시 15분(UTC) Hacker News에 올라왔고, 17일 10시 14분(UTC) 관측 기준 699점과 댓글 275개로 최근 24시간 점수 1위였습니다. 같은 날 GeekNews에도 소개됐습니다. 데이터






댓글
댓글 관련 문의: hello@aifficial.net
댓글을 불러오는 중입니다…