피드로 돌아가기
CUDA-oxide: Nvidia의 공식 Rust-to-CUDA 컴파일러
GeekNewsGeekNews
AI/ML

CUDA-oxide: Nvidia의 공식 Rust-to-CUDA 컴파일러

Rust-to-PTX 직접 컴파일로 CUDA 메모리 안전성 확보

neo2026년 5월 12일11advanced

Context

기존 Rust CUDA 개발 환경은 NVCC나 CMake 호출에 의존하는 FFI 바인딩 구조로 인해 빌드 속도가 저하됨. 특히 C++ 기반 CUDA 개발 시 Use-after-free 및 데이터 경합으로 인한 정의되지 않은 동작(Undefined Behavior) 제어가 어려움.

Technical Solution

  • DSL이나 외부 바인딩 없이 순수 Rust 코드를 PTX로 직접 컴파일하는 커스텀 rustc 백엔드 설계
  • DisjointSlice 및 ThreadIndex API를 도입하여 스레드별 단일 원소 쓰기를 강제함으로써 가변 쓰기 별칭 문제 해결
  • Rust의 Drop 의미론을 적용하여 cudaFree 수동 호출 없이 메모리 생명주기를 자동 관리하는 구조 구현
  • cuda_launch! 매크로를 통한 커널 인자 타입 강제 및 void* 포인터 배열 사용에 따른 런타임 오류 방지
  • DeviceOperation 그래프 기반의 지연 실행 구조와 .await를 활용한 비동기 GPU 스케줄링 모델 채택
  • 호스트 바이너리에 디바이스 아티팩트를 직접 포함하는 #[cuda_module]을 통한 타입 안전한 로더 생성

1. GPU 커널 작성 시 스레드 간 쓰기 영역이 겹치지 않는 Disjoint 구조 설계 검토

2. NVCC 의존성을 제거한 직접 컴파일 체인 도입을 통한 빌드 파이프라인 최적화 가능성 분석

3. GPU 메모리 해제 누수 방지를 위해 RAII 패턴 적용 가능 여부 확인

4. 비동기 런타임과 GPU 스트림 풀을 연동한 리소스 스케줄링 구조 설계

원문 읽기