본문으로 건너뛰기

NVIDIA, GPU 커널까지 Rust로 쓰게 합니다

NVIDIA가 Rust로 GPU 커널을 직접 작성하는 CUDA Rust의 두 방식, cuda-oxide와 cutile-rs를 공개했습니다. 컴파일러가 막는 실수와 아직 초기인 단계를 함께 살핍니다.

AI피셜 편집부· 8분 읽기원문 보기 ↗
AI피셜 마스코트 AI가 Rust 코드 카드에서 GPU 칩으로 이어지는 두 갈래 길, 스레드 격자와 타일 블록을 가리키는 가로형 썸네일
Rust로 쓴 GPU 커널이 스레드 방식과 타일 방식 두 갈래로 GPU에 닿는 구조를 설명합니다.· 사진: AI 생성 이미지 (ChatGPT Images 6 Pro)

TL;DR요약

  • NVIDIA는 AI 추론 엔진과 드라이버처럼 Rust로 쓰는 시스템이 늘었지만, GPU에서 도는 커널만은 다른 언어로 써야 했다고 설명합니다. CUDA Rust는 그 커널을 Rust로 쓰고 GPU용 코드인 PTX로 바로 컴파일합니다.
  • cuda-oxide는 스레드 하나가 할 일을 쓰고 수천 개를 띄우는 SIMT 방식이고, cutile-rs는 데이터 조각 하나의 계산을 쓰면 컴파일러가 실제 GPU 스레드 배치를 정하는 Tile 방식입니다. NVIDIA는 Tile을 먼저 쓰라고 권합니다.
  • 두 방식 모두 출력 버퍼를 입력으로 함께 넘기는 코드를 컴파일 오류로 막습니다. 스레드 순서에 따라 결과가 달라지는 버그를 실행 전에 잡는다는 뜻입니다.
  • cuda-oxide는 초기 알파, cutile-rs는 crates.io에 공개돼 Hugging Face의 Grout 추론 엔진과 mistral.rs에서 쓰이고 있다고 NVIDIA는 밝혔습니다. Hacker News에서는 공개 일주일 뒤인 9월 16일 글이 올라와 17일 오전 699점을 받았습니다.
AI피셜 마스코트 AI가 Rust로 옮겨 가는 AI 시스템, GPU 커널이라는 빈칸, cuda-oxide의 스레드 방식, cutile-rs의 타일 방식, 컴파일러가 막는 메모리 충돌, 아직 초기 단계라는 한계를 차례로 설명하는 학습만화
CUDA Rust가 무엇을 바꾸고 무엇이 아직 남았는지 만화로 설명합니다.· 그림: AI 생성 이미지 (ChatGPT Images 6 Pro)

핵심 사실

발표
2026-09-08NVIDIA 기술 블로그 “Introducing CUDA Rust: Two Tracks for Writing GPU Kernels”의 게시일입니다.
SIMT 방식
cuda-oxiderustc 코드 생성 백엔드입니다. 초기 알파이며 고정된 nightly 도구 모음이 필요합니다.
Tile 방식
cutile-rsCUDA 13.3과 안정판 Rust 1.89 이상에서 동작하며 crates.io에 공개됐습니다.
공통 요구 사항
Linux · 연산 능력 8.0 이상 GPU블로그가 밝힌 두 방식의 최소 조건입니다.
HN 반응
699점 · 275댓글2026-09-17 10:14 UTC 관측값이며 계속 바뀝니다.

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 커널 코드가 비스듬히 표시된 이미지
NVIDIA 블로그 글의 대표 이미지입니다. 화면의 코드는 블로그가 예로 든 cuda-oxide 벡터 덧셈 커널의 일부로, 함수 위의 #[kernel] 표시가 GPU에서 실행할 함수라는 뜻입니다.· 사진: NVIDIA Technical Blog 대표 이미지 · 편집 인용 (2026-09-17 조회)

두 갈래: 스레드를 쓰느냐, 데이터 조각을 쓰느냐

CUDA Rust에는 두 방식이 있습니다. 첫째는 cuda-oxide가 맡는 단일 명령·다중 스레드(single instruction, multiple threads, SIMT) 방식입니다. 개발자가 스레드 하나가 할 일을 쓰면 GPU가 같은 일을 수천 개 스레드로 실행합니다. 기존 CUDA C++와 같은 사고방식입니다. 공식

둘째는 cutile-rs가 맡는 Tile 방식입니다. 개발자는 데이터를 나눈 조각(tile) 하나에 어떤 계산을 할지만 쓰고, 그 조각을 실제 GPU 스레드 몇 개로 처리할지는 컴파일러가 정합니다. NVIDIA는 코드에 특정 GPU 구조에 맞춘 선택이 남지 않는다는 이유로 Tile을 먼저 쓰고, 스레드와 메모리를 직접 다뤄야 할 때 SIMT로 내려가라고 권합니다. 공식

왼쪽 Scalar-Centric (CUDA C++) 칸에는 수천 개의 점으로 표시된 스레드와 Manual 표시가, 오른쪽 Tile-Centric (cuTile Rust) 칸에는 TILE 0부터 TILE 3까지 네 블록과 Compiler-Managed 표시가 있는 비교 도식
cutile-rs 문서의 도식입니다. 왼쪽은 개발자가 수천 개 스레드를 직접 관리하는 방식, 오른쪽은 데이터 블록 단위로 쓰고 공유 메모리 배치를 컴파일러가 맡는 방식을 보여 줍니다.· 사진: NVlabs/cutile-rs 문서 도식 · Apache License 2.0 · SVG 원본을 PNG로 렌더링

두 방식은 요구 조건도 다릅니다. 블로그에 따르면 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는 텐서의 소유권 자체가 실행 경계를 따라 이동하기 때문에 더 강한 보장이라고 블로그는 설명합니다. 공식

Compiler Pipeline 제목 아래 Rust Source에서 rustc Frontend, Stable MIR, MIR Dialect, LLVM Dialect, LLVM IR를 거쳐 PTX로 내려가는 세로 흐름도
cuda-oxide 문서의 컴파일 흐름도입니다. #[kernel]이 붙은 Rust 함수가 Rust 컴파일러의 중간 수준 표현(mid-level intermediate representation, MIR), Rust로 만든 Pliron 중간 표현, LLVM 중간 표현(intermediate representation, IR)을 차례로 거쳐 GPU용 PTX 파일이 됩니다.· 사진: NVlabs/cuda-oxide 문서 도식 · Apache License 2.0 · SVG 원본을 PNG로 렌더링

아직은 초기 단계입니다

NVIDIA는 두 프로젝트 모두 초기 단계이며 실제 서비스 환경에 쓸 준비가 되지 않았다고 분명히 밝혔습니다. cuda-oxide는 초기 알파이고, cutile-rs는 crates.io에 공개돼 Hugging Face의 Grout 추론 엔진과 mistral.rs에서 쓰이고 있습니다. 지원 범위가 불완전하고 API도 바뀔 수 있으며, SIMT 방식에서 공유 메모리를 쓰려면 아직 unsafe 코드가 필요합니다. 공식

구분cuda-oxidecutile-rs
방식SIMT: 스레드 하나의 동작을 작성Tile: 데이터 조각 하나의 계산을 작성
Rust 도구날짜가 고정된 nightly안정판 1.89 이상
상태초기 알파crates.io 공개, 외부 프로젝트 사용
라이선스Apache License 2.0Apache License 2.0

이 글은 공개 일주일 뒤인 9월 16일 11시 15분(UTC) Hacker News에 올라왔고, 17일 10시 14분(UTC) 관측 기준 699점과 댓글 275개로 최근 24시간 점수 1위였습니다. 같은 날 GeekNews에도 소개됐습니다. 데이터

자주 묻는 질문

이제 CUDA C++ 대신 Rust를 써야 합니까?
아닙니다. NVIDIA는 CUDA C++와 CUDA Python을 성숙한 도구로 두고, 이미 쓰는 기술 스택에 맞는 언어를 고르라고 권합니다. 두 Rust 프로젝트는 아직 실제 서비스 환경에 쓸 준비가 되지 않았다고 밝혔습니다.
Rust로 GPU를 다루는 방법은 전에도 있지 않았습니까?
있었습니다. NVIDIA는 Rust-GPU, rust-cuda, CubeCL 같은 선행 프로젝트를 언급하고 rust-cuda 관리자들과 협업하고 있다고 적었습니다. 새로운 점은 CUDA를 만드는 회사가 직접 커널 작성 도구를 내고 개발 인력을 투입한다는 것입니다.
cuda-oxide와 cutile-rs 중 무엇부터 시험해 보면 됩니까?
NVIDIA는 Tile 방식인 cutile-rs를 먼저 쓰고, 스레드와 메모리를 직접 제어해야 할 때 SIMT 방식인 cuda-oxide로 내려가라고 권합니다. cutile-rs는 안정판 Rust에서 동작해 설치 조건도 더 가볍습니다.
컴파일러가 GPU의 모든 동시성 버그를 막아 줍니까?
그렇지 않습니다. 블로그의 예는 출력 버퍼를 입력으로 함께 넘기는 대표적인 실수를 막는 수준입니다. SIMT 방식에서 공유 메모리를 쓰려면 아직 unsafe 코드가 필요하다고 NVIDIA는 밝혔습니다.

출처 · 4

  1. 1NVIDIA Technical Blog: Introducing CUDA Rust: Two Tracks for Writing GPU Kernels공식 발표developer.nvidia.com/blog/introducing-cuda-rust-two-tracks-for-writing-gpu-kernels/
  2. 2NVlabs/cuda-oxide GitHub 저장소공식 발표github.com/NVlabs/cuda-oxide
  3. 3NVlabs/cutile-rs GitHub 저장소공식 발표github.com/NVlabs/cutile-rs
  4. 4Hacker News 토론: Nvidia announces native GPU programming in Rust보도news.ycombinator.com/item?id=49724881

이 글의 마크다운 원문: /posts/nvidia-cuda-rust-gpu-kernels/md/ · 인용 시 출처를 “AI피셜”으로 표기해 주세요.

이 글이 도움이 됐다면 추천해 주세요.

동료에게도 보내 주세요.

댓글

댓글 관련 문의: hello@aifficial.net

0 / 1000

댓글을 불러오는 중입니다…

AI피셜 주간 하이라이트

한 주 동안 AI 소식에서 중요한 것만 골라 월요일 아침에 보내드릴게요

같은 태그·카테고리의 글을 골랐습니다.

캘리포니아 산타클라라에 있는 NVIDIA 본사 건물 외관
업계 동향· 6

NVIDIA, Hugging Face 129억 달러 인수 — 개방 유지

NVIDIA가 9월 3일 Hugging Face를 $12,930,300,000에 인수한다고 발표했습니다. 거래 배경(7월 침해 사건·거절했던 제안)과 '개방 플랫폼 유지' 약속을 정리했습니다.

  • #NVIDIA
  • #Hugging Face
  • #인수합병
Artemis 과거 pyproject.toml의 authors 항목에 Pierre-Louis Favreau, Jean-Pierre Lo, Nicolas Dehandschoewercker 세 이름이 적힌 화면
AI와 사회· 6

Google Artemis, 스타트업 코드 출처를 뒤늦게 추가

Minitap이 Google의 휴대폰 조작 AI Artemis에서 자사 코드와 같은 흔적을 발견했다고 밝혔어요. 이튿날 저장소는 23개 파일에 출처를 추가했어요.

  • #Google
  • #AI 에이전트
  • #오픈소스