NVIDIA, Rust로 GPU 커널을 직접 작성하는 CUDA Rust 공개. SIMT용 cuda-oxide와 Tile용 cutile-rs 두 트랙
- NVIDIA가 CUDA Rust를 공개했다. GPU 커널을 Rust로 작성해 래퍼 없이 PTX로 직접 컴파일하며, SIMT 트랙(cuda-oxide)과 Tile 트랙(cutile-rs) 두 갈래로 나뉜다. 기존 CUDA C++/Python과 대응하는 구조다.
- cuda-oxide는 NVlabs가 만든 rustc 코드젠 백엔드로, Pliron IR 프레임워크와 LLVM을 써서 SIMT 커널을 PTX로 낮춘다. 고정된 nightly 툴체인과 LLVM이 필요하고 아직 초기 알파 단계다.
- cutile-rs는 안정 Rust 1.89+와 CUDA 13.3에서 커스텀 LLVM 없이 동작하며 crates.io에 게시됐다. 컴파일러가 스레드 매핑과 메모리 레이아웃을 CUDA Tile IR JIT로 처리하고, 이미 HuggingFace Grout 추론 엔진과 mistral.rs에서 쓰인다.
- 두 프로젝트 모두 컴파일 시점에 메모리 안전성을 강제한다. cuda-oxide는 DisjointSlice와 런치 계약으로 앨리어싱을 막고, cutile-rs는 텐서 분할과 소유권으로 배타적 접근을 보장한다.
- NVIDIA는 CUDA Rust와 CUDA C++, CUDA Python 사이의 상호 운용성을 지원해 프론트엔드 선택이 다른 생태계를 막지 않게 할 계획이다. CUDA Rust는 2027년까지 성숙시킨다는 방침이다.
Hacker News opinions
WGPU랑 cudarc 쓰고 있는데 안정화되면 cuda-oxide부터 써보고 싶음. cudarc 호스트 부분이랑 비슷한데 커널은 Rust 방언이라 호스트/디바이스 구조체 공유가 되고, 대신 기존 CUDA 커널 예제를 못 씀. 리눅스 전용에 async 필수였던 게 아직 걸림.
cudarc가 좋은 건 예제 찾기 쉽고 내가 보는 코드랑 1:1로 대응돼서임. CUDA 자체도 힘든데 방언까지 생기면 기존 자료를 못 믿게 됨. 그래도 환경 설정이 덜 필요한 건 확실히 좋음.
NVIDIA가 HuggingFace를 인수했고 Candle 크레이트도 있으니 Rust 네이티브 커널로 가는 건 자연스러운 흐름 아니냐.
커널이 Rust로 작성되는 건 아무도 신경 안 씀. 커널은 C로 쓰는 거고 더 편하게 쓰고 싶으면 Triton 같은 DSL이 답임.
"The launch is checked rather than trusted" 문장 보고 NVIDIA도 완전 AI 작성 글을 올리는구나 싶었음. AI 생성 요약 박스까지 따로 붙어 있더라.
NVIDIA가 AI를 온갖 곳에 쓰는데 '심지어 NVIDIA도?'라고 놀라는 건 이상함. 맥도날드가 불건강한 음식 낸다고 놀라는 꼴임.
pre-1.0에 nightly까지 필요한 소프트웨어임. 커널에서 문제 터지면 cuda-oxide, Rust, CUDA, Tile 중 어디가 원인인지 나눠서 봐야 하고, CUDA만 클로즈드라 그 레벨 이슈는 NVIDIA 고쳐줄 때까지 기다려야 함.
LLM이 다 써주는 시대에 Rust 배울 의욕이 좀 꺾였는데, 이건 아직 LLM이 학습 못 한 영역이라 오히려 다시 흥미가 생김.
LLM은 라이브러리별 학습 없이도 Rust 잘 씀. 배우기 싫은 건 그냥 게으른 거고, 공짜로 훌륭한 선생이 생긴 셈인데 그걸 핑계로 삼는 건 좀.
이 글만 봐도 NVIDIA 안에서 아무도 이 프로젝트를 신경 안 쓴다는 게 보임. 신경 썼으면 공지문을 사람이 직접 썼겠지.
CUDA 진짜 싫음. 한번 C++ 코드베이스에 들어오면 벤더 종속이랑 #ifdef 지옥에서 못 빠져나옴. 커널은 별도 파일에 쓰고 수동으로 런치하는 게 낫고, 요즘은 Triton이 더 편함.
D3D12나 Metal도 CUDA만큼 독점인데 이게 풍자냐. 그리고 커널 별도 파일에 수동 런치는 CUDA에서도 원래 그렇게 함.
수동 런치가 제일 오류 나기 쉬운 부분임. 그리드랑 인자까지 컴파일러가 검사해주는 게 CUDA가 인기 있는 진짜 이유고, DCompute처럼 커널을 별도 모듈에 두고도 그 이득을 다 가져가는 방법도 있음.
vectorware랑은 어떻게 비교되는지 궁금함.
Rust로 커널 쓰면 CUDA 디버깅 세션이 덜 고통스러워질 듯. CUDA C++이 워낙 고생스러워서 기다리고 있었음.
NVIDIA 전용이라는 게 아쉬움. Rust-GPU 쪽이 더 유망해 보임.
이런 거 하나 있으면 좋겠다고 생각했는데 나왔네. 커널 프로그래밍에 Rust 안전성이 들어오는 건 판을 바꿀 수 있음.