NVIDIA, Rust 네이티브 GPU 프로그래밍 지원 발표

1 day ago 8

CUDA Rust는 다른 언어로 작성한 커널을 호출하는 래퍼를 넘어, GPU 커널 자체를 Rust로 작성하고 네이티브 PTX로 컴파일하는 두 가지 개발 경로를 제공함 cuda-oxide는 스레드와 메모리를 직접 제어하는 SIMT 방식이며, cutile-rs는 데이터 타일 단위로 계산을 작성하고 실제 스레드 배치를 컴파일러에 맡기는 방식임 NVIDIA는 Tile을 먼저 선택하고, 아키텍처별 제어나 직접적인 메모리 및 스레드 관리가 필요할 때 SIMT를 사용할 것을 권장함 두 경로 모두 Rust의 빌림과 소유권으로 입력과 출력 버퍼가 같은 메모리를 잘못 참조하는 상황을 컴파일 시점에 차단함. 다만 SIMT의 공유 메모리 사용에는 현재 unsafe가 필요함 두 프로젝트 모두 프로덕션용으로 준비되지 않은 초기 단계임. cuda-oxide는 초기 알파이며, cutile-rs는 외부 프로젝트에서 사용 중이지만 기능이 불완전하고 API도 변경될 예정임 Rust에서 커널까지 작성하는 CUDA 추론 엔진, 서빙 인프라, 드라이버, 에이전트 런타임 등 AI 시스템 계층에서 Rust 사용이 늘고 있음. 성능을 유지하면서 여러 종류의 버그를 컴파일 시점에 잡을 수 있기 때문임 NVIDIA도 Nova Linux 드라이버를 Rust로 작성하고, NVIDIA Dynamo를 Rust 코어 위에 구축했으며, NVTX에 Rust 바인딩을 제공함 기존에는 Rust에서 GPU 커널을 호출하더라도 커널 자체는 다른 언어로 작성하는 경우가 많았음. CUDA Rust는 GPU에서 실행할 커널까지 Rust로 작성하고 PTX로 컴파일하는 경로를 제공함 NVIDIA는 2026년 9월 Rust 네이티브 GPU 프로그래밍에 대한 투자를 발표했으며, 2027년 이후에도 CUDA Rust를 발전시킬 계획임 CUDA C++와 CUDA Python은 성숙한 도구 체인이지만, CUDA Rust는 아직 초기 단계임 스레드를 직접 제어하는 SIMT와 데이터 단위로 작성하는 Tile SIMT는 스레드 하나가 수행할 작업을 작성하고 수천 개의 스레드를 실행하는 방식으로, CUDA C++와 numba-cuda에서 사용하는 모델임 Tile은 데이터를 타일이라는 묶음으로 나눠 계산을 작성하고, 실제 GPU 스레드에 작업을 배치하는 일은 Tile IR 컴파일러에 맡기는 방식임 C++와 Python에서도 사용할 수 있음 NVIDIA는 Tile부터 검토하고, 세밀한 제어가 필요할 때 S...

Read Entire Article