엔비디아가 AI 시스템의 핵심 영역인 GPU 커널 개발에 프로그래밍 언어 러스트(Rust)를 본격 도입한다. 기존에는 러스트로 CUDA 커널을 호출하는 수준에 머물렀으나, 앞으로는 GPU 커널 자체를 러스트로 직접 작성해 네이티브 PTX 코드로 컴파일하는 ‘CUDA 러스트’를 추진하며 소프트웨어 생태계 전환에 나섰다.

엔비디아는 8일(현지시간) CUDA 러스트를 공개하고 2027년 이후까지 관련 기술을 지속 발전시킬 계획이라고 밝혔다. CUDA C++와 CUDA 파이썬이 구축해 온 엔터프라이즈급 개발 환경에 러스트를 추가해 선택지를 넓히겠다는 구상이다.

이번 러스트 도입은 AI 시스템 소프트웨어 전반에서 메모리 안전성과 안정성을 확보하는 일이 시급해졌기 때문이다. AI 시스템 계층의 소프트웨어가 끊임없이 수정되는 상황에서, 러스트는 고성능을 유지하면서도 컴파일 단계에서 메모리 오류와 데이터 경합을 사전에 차단할 수 있다는 강점이 있다. 엔비디아는 이미 '노바(Nova)' 리눅스 드라이버와 '다이나모(Dynamo)' 코어, NVTX 바인딩 등에 러스트를 적극 적용해 왔다.

CUDA 러스트는 개발 방식에 따라 ‘SIMT’와 ‘타일(Tile)’ 두 가지 경로로 나뉜다. SIMT는 수천개 스레드의 병렬 실행을 직접 제어하는 전통적 방식이며, 타일은 데이터 단위로 연산을 정의하면 컴파일러가 스레드와 메모리 배치를 자동 최적화하는 고수준 방식이다. 엔비디아는 일반 개발 환경에서는 타일 방식을 우선 활용하고, 세밀한 제어가 필요한 경우 SIMT를 선택하도록 권고한다.

이와 함께 공개된 오픈소스 프로젝트 '쿠다-옥사이드(cuda-oxide)'와 '큐타일-rs(cutile-rs)'는 각 모델을 러스트로 구현한 결과물이다. 쿠다-옥사이드는 러스트의 소유권 시스템으로 스레드 간 메모리 충돌을 차단하는 SIMT 기반 프로젝트다.

반면 큐타일-rs는 타일 연산을 자동 처리하며, 별도 툴체인 없이 안정 버전 러스트를 지원해 진입 장벽을 낮췄다. 두 프로젝트 모두 운영 환경에서 재현하기 힘든 별칭(aliasing) 메모리 오류를 사전에 차단하는 데 중점을 둔다.

다만 CUDA 러스트는 아직 초기 단계로 상용화까지는 과제가 남아있다. 쿠다-옥사이드와 큐타일-rs 모두 API 변화가 지속되는 연구 프로젝트이며, SIMT 방식의 경우 공유 메모리 활용 시 여전히 'unsafe' 영역을 요구한다.

현재 큐타일-rs는 패키지 리포지토리(Crates.io)에 공개돼 허깅페이스의 'Grout'과 'mistral.rs' 등 외부 추론 엔진에 적용되기 시작했다. 엔비디아는 향후 C++ 및 파이썬 생태계와의 상호 운용성을 강화해 기존 CUDA 자산과의 단절 없이 러스트 도입을 확대할 방침이다.

박찬 기자 cpark@aitimes.com