HyperAIHyperAI

Command Palette

Search for a command to run...

CUDA 초기 개발팀은 cuTile이 Triton을 "특별히 겨냥한" 것이라고 강하게 비판했습니다. 과연 Tile 패러다임은 GPU 프로그래밍 생태계의 경쟁 구도를 재편할 수 있을까요?

Featured Image

CUDA 출시 후 거의 20년 만인 2025년 12월, NVIDIA는 최신 버전인 CUDA 13.1을 출시했습니다. 핵심적인 변화는 새로운 CUDA Tile(cuTile) 프로그래밍 모델에 있습니다.GPU 커널 구조는 "타일 기반" 프로그래밍 모델을 통해 재구성되어 개발자가 기본 CUDA C++ 코드를 직접 조작하지 않고도 고성능 커널을 작성할 수 있습니다.이는 GPU 프로그래밍 생태계에 있어 분명 주목할 만한 이정표입니다. NVIDIA가 AI 시대의 맞춤형 연산자에 대한 증가하는 수요를 충족하고 소프트웨어 생태계의 지속성을 더욱 강화하기 위해 출시한 새로운 제품군일 수 있습니다.

cuTile이 공개된 후, 개발자 커뮤니티에서는 사용자 정의 연산자의 개발 주기, Triton과의 직접적인 경쟁, 그리고 파이썬의 기본 진입점이 될 수 있을지에 대한 광범위한 논의가 빠르게 촉발되었습니다. cuTile은 아직 초기 단계에 있지만, 현재 개발자들의 피드백을 보면 새로운 패러다임을 제시할 잠재력을 충분히 가지고 있음을 알 수 있습니다.

관련 생태계가 점차 구체화됨에 따라 cuTile의 위치와 잠재력이 더욱 명확해지고 있습니다. GitHub, 포럼, 그리고 내부 프로젝트에서 수많은 엔지니어들이 cuTile의 코드 구성 및 가독성 개선 효과를 인정했으며, 일부 커뮤니티 사용자들은 기존 CUDA 코드를 cuTile로 마이그레이션하려는 시도를 했습니다. 파이썬 생태계 지원을 통해 cuTile은 GPU 프로그래밍의 주류 진입점이 될까요, 아니면 CUDA와 Triton 간의 새로운 기술적 분업을 만들어낼까요? 실제 워크로드가 더욱 많이 등장함에 따라 이러한 질문에 대한 답은 앞으로 몇 년 안에 점차 명확해질 것입니다.

cuTile: "코드 중심" GPU 프로그래밍 시대를 열다

CUDA는 오랫동안 개발자들에게 SIMT(단일 명령어 멀티스레딩)의 하드웨어 및 프로그래밍 모델을 제공해 왔으며, 이를 통해 개발자들은 GPU의 병렬 컴퓨팅 로직을 "스레드" 단위로 설명할 수 있었습니다. 커널은 수천 개의 스레드로 나뉘고, 각 스레드는 작은 계산 부분을 수행하며, 스레드 그룹이 블록을 형성하고, 하드웨어는 이러한 블록을 실행을 위해 SM(스트리밍 멀티프로세서)에 매핑합니다.

하지만 지난 3~5년간 컴퓨팅 수요, 특히 AI 학습 규모가 기하급수적으로 증가하면서 이러한 스레드 중심 프로그래밍 방식은 점점 더 많은 병목 현상에 직면하게 되었습니다.연구원과 엔지니어는 스레드 스케줄링뿐만 아니라 메모리 병합, 워프 발산, 심지어 텐서 코어의 실행 형식까지 심층적으로 고려해야 합니다. 다시 말해, 고성능 CUDA 커널을 작성하려면 그래픽 카드 아키텍처의 모든 측면을 철저히 이해해야 하며, 그렇지 않으면 하드웨어의 성능을 최대한 활용하기 어렵습니다.

cuTile의 등장은 이러한 추세에 대한 NVIDIA의 대응으로, 개발자들이 알고리즘 개발에 집중할 수 있도록 하면서 하드웨어 성능 향상은 프레임워크에 맡기는 것을 목표로 합니다.

구체적으로,cuTile은 NVIDIA GPU용 병렬 프로그래밍 모델이자 파이썬 기반 도메인 특화 언어(DSL)입니다. 고급 하드웨어 기능을 자동으로 활용할 수 있습니다.예를 들어, 텐서 코어와 텐서 메모리 가속기는 다양한 NVIDIA GPU 아키텍처에서 뛰어난 이식성을 유지합니다.

타일 모델(왼쪽 다이어그램)은 데이터를 블록으로 나누고, 컴파일러는 이 블록들을 스레드에 매핑합니다. SIMT 모델(오른쪽 다이어그램)은 데이터를 블록과 스레드 모두에 동시에 매핑합니다.

기술적인 관점에서 보면,CUDA Tile의 기반은 CUDA Tile IR(중간 표현)입니다. IR은 하드웨어를 타일 기반 방식으로 네이티브 프로그래밍할 수 있도록 하는 가상 명령어 세트를 도입합니다. 개발자는 최소한의 수정만으로 여러 세대의 GPU에서 효율적으로 실행될 수 있는 고수준 코드를 작성할 수 있습니다.

NVIDIA의 병렬 스레드 실행(PTX)은 SIMT 프로그램의 이식성을 보장하지만,하지만 CUDA Tile IR은 CUDA 플랫폼을 확장하여 타일 기반 애플리케이션을 기본적으로 지원합니다.개발자는 데이터 병렬 프로그램을 타일과 타일 블록으로 나누는 데 집중할 수 있으며, CUDA Tile IR은 이러한 타일을 스레드, 메모리 계층 구조, 텐서 코어 등의 하드웨어 리소스에 매핑하는 작업을 처리합니다. 다시 말해, 타일 기반 프로그래밍을 통해 개발자는 알고리즘의 각 요소에 대한 실행 방식을 개별적으로 구성할 필요 없이 타일을 지정하고 해당 타일에서 수행되는 연산 작업을 정의하여 알고리즘을 작성할 수 있습니다. 이러한 세부 사항은 컴파일러가 처리합니다.

NVIDIA는 왜 CUDA를 20년 동안 구현해 온 후 프로그래밍 패러다임을 업데이트하기로 결정했을까요?

cuTile의 출시는 CUDA가 처음 출시된 지 거의 20년 만에 이루어졌습니다.2006년 출시 이후 CUDA는 GPU 프로그래밍 인터페이스에서 점차 발전하여 프레임워크, 컴파일러, 라이브러리, 툴체인을 아우르는 완벽한 생태계로 진화했으며, 오늘날까지도 NVIDIA 소프트웨어 시스템의 핵심 인프라 역할을 하고 있습니다. NVIDIA가 2025년에 CUDA를 기반으로 하는 새로운 프로그래밍 패러다임을 선보이기로 한 결정은 단순한 기술적 진화가 아니라, 변화하는 산업 환경에 대한 직접적인 대응입니다.

한편으로, 변화하는 AI 워크로드로 인해 사용자 정의 연산자에 대한 수요가 급증했지만, 기존 CUDA C++ 개발 방식은 개발 속도, 디버깅 비용, 인력 부족 등의 제약을 안고 있습니다. 많은 개발팀이 알고리즘 설계는 빠르게 할 수 있지만, 단기간에 고성능이면서 유지보수 가능한 CUDA 커널을 작성하는 데 어려움을 겪습니다. cuTile은 바로 이러한 모순을 해결하기 위해 출시되었습니다. 성능 저하 없이 Python 친화적인 진입점을 제공하여 더 많은 개발자가 합리적인 비용으로 사용자 정의 연산자를 구축할 수 있도록 지원함으로써 GPU 프로그래밍의 진입 장벽을 낮추고 개발 주기를 단축합니다.

다시 말해서,cuTile은 NVIDIA가 본격적인 통신사 DSL 전쟁이 시작되기 전에 프로그래밍 패러다임에 대한 통제권을 되찾기 위한 초기 전략적 움직임입니다.

반면, '엔비디아화' 추세 속에서 GPU 소프트웨어 생태계의 경쟁은 더욱 치열해지고 있습니다. AMD는 오픈 소스 가속 컴퓨팅 플랫폼인 ROCm을 출시하여 개방형 아키텍처를 통해 더 많은 서드파티 라이브러리와 툴을 유치하고 생태계 범위를 확장했습니다. 인텔은 OneAPI를 출시하여 아키텍처 전반에 걸친 통합 프로그래밍 모델을 구축하고 DPC++와 같은 언어 지원을 제공함으로써 이기종 시스템 개발의 복잡성을 줄이려 했습니다. 이 모든 것들이 CUDA의 독점적 지위를 약화시키고 있습니다.

더 나아가, AI 대규모 모델 개발 기업과 칩 회사들도 자체적인 연산자 DSL 개발 경쟁에 뛰어들고 있습니다. 2022년 10월, OpenAI는 GPU용 오픈 소스 딥러닝 프로그래밍 언어 컴파일러인 Triton을 출시했습니다. 이 컴파일러를 통해 개발자들은 CUDA C++의 저수준 세부 사항에 얽매이지 않고 간결한 파이썬 스타일 코드로 고성능 GPU 커널을 작성할 수 있습니다. 그 결과, Triton은 커뮤니티 내에서 빠르게 주목을 받았습니다. 많은 연구원과 엔지니어들은 Triton이 GPU 연산자 개발의 진입 장벽을 낮췄다고 평가합니다. 한편, Meta/FAIR 관련 TC/텐서 언어와 TVM/Relay/DeepSpeed를 중심으로 커뮤니티에서 구축한 연산자 컴파일 및 최적화 프레임워크 또한 소프트웨어 생태계의 특정 영역에서 다양한 경쟁 구도를 형성하고 있습니다.

이는 cuTile의 등장으로 직접 이어졌습니다. NVIDIA는 상업적 해자를 강화하기 위해 소프트웨어 시스템의 패키징과 사용자 경험을 더욱 개선하여 더 많은 개발자가 CUDA 생태계에 머물도록 유도해야 했습니다. SemiAnalysis는 cuTile의 도입이 NVIDIA가 CUDA 시장에서의 경쟁 우위를 강화하기 위한 중요한 움직임이라는 내용의 기사를 발표했습니다."PyTorch 컴파일러가 이제 Triton 외에도 NVIDIA Python CuTeDSL을 지원하여 FlexAttention이 Triton 구현보다 두 배 더 빨라졌습니다. NVIDIA는 자사의 비공개 소스 Python CuTeDSL, cuTile 및 TileIR 생태계를 적극적으로 지원해 왔습니다. Python CuTeDSL/cuTile/TileIR을 통해 NVIDIA는 비공개 소스 컴파일러 최적화에 다시 접근할 수 있게 되었습니다."

SemiAnalysis에서 기사를 게재했습니다.

Triton을 따라한 걸까? cuTile의 "타일 사고방식": 개발자들이 밝히는 바는?

사실은,cuTile에 대한 시장 반응은 엇갈리고 있으며 논란도 끊이지 않고 있습니다.cuTile을 사용해 본 일부 개발자들은 타일 최적화 기능이 참신한 개선점이었지만, 지나치게 많은 DSL(도메인 특화 언어)로 인해 새로운 학습 곡선이 생겼다고 보고했습니다. 레딧 사용자 Previous-Raisin1434는 cuTile의 새로운 DSL 때문에 전환 기간 동안 부담감을 느꼈다고 언급했습니다.

"갑자기 왜 이렇게 종류가 많아진 거죠? 전에는 트라이튼을 썼는데, NVIDIA에서 벌써 10개가 넘는 새로운 DSL을 출시했네요."라고 그는 불평했다.

레딧 사용자들이 DSL에 대해 부정적인 의견을 남겼는데, 그중에는 NVIDIA가 여러 개의 새로운 DSL을 출시한 것에 대한 불만도 포함됩니다.

한편, 일부 업계 전문가들은 cuTile의 차별성과 독창성 부족에 의문을 제기하며, "cuTile은 마치 NVIDIA가 Triton, Mojo, ThunderKittens를 통합한 것처럼 느껴진다"고 말했습니다.

사용자들은 cuTile의 독창성에 의문을 제기하며, Triton, Mojo, ThunderKittens를 조합한 것처럼 보인다고 말했습니다.

이와 관련하여,초기 CUDA 팀의 일원이었던 니콜라스 윌트는 심지어 다음과 같이 게시하기도 했습니다..."cuTile이 Triton에 대항하기 위해 직접 개발되었다는 의심을 하지 않기는 어렵습니다. cuTile은 Triton이나 Helion처럼 커널을 작성하기 위한 새로운 eDSL입니다."

CUDA 팀의 창립 멤버 중 한 명이 cuTile이 Triton을 겨냥하여 특별히 개발되었다는 내용의 논평을 발표했습니다.

그렇다면 cuTile은 Triton을 모방한 것일까요? 대부분의 사용자는 아니라고 답했습니다. 실제로 cuTile에 대한 시장 반응은 전반적으로 긍정적이었으며, 반대 의견은 소수에 불과했습니다.대부분의 사용자는 이번 업데이트에 대해 불만을 표명하지 않았으며, 일부는 cuTile을 "혁신적인 제품"이라고 칭찬하기도 했습니다."cuTile은 사용자가 메모리 스와핑, 워프 spclz, 메모리 병합 및 100가지가 넘는 기타 문제에 대해 걱정할 필요성을 없애줍니다."

X 플랫폼 사용자들은 cuTile을 혁신적인 제품이라며 극찬하고 있습니다.

한 IT 블로그에 따르면, cuTile이 사용자들을 사로잡는 핵심적인 매력은 GPU 컴퓨팅을 더 높은 수준의 추상화로 끌어올린 "타일" 개념에 있다고 합니다.

"처음에는 이것이 단순히 CUDA용 파이썬 바인딩이나 간소화된 래퍼일 뿐이라고 생각했지만, 문서와 예제를 자세히 살펴본 후 훨씬 더 큰 포부를 가지고 있다는 것을 알게 되었습니다." cuTile의 핵심 아이디어는 병렬 컴퓨팅 및 하드웨어 가속과 관련된 타일(Tile) 개념입니다.타일링은 대규모 데이터 세트를 더 작은 덩어리로 나누어 캐시나 공유 메모리를 더 효율적으로 활용하는 고전적인 최적화 기법입니다. cuTile은 이러한 개념을 프로그래밍 모델 수준으로 끌어올렸습니다. 블로그에서는 "cuTile을 통해 개발자는 연산을 타일이라는 개념으로 직접 생각하고 설명할 수 있습니다. 더 이상 스레드 블록 내 각 스레드의 협업 방식, 전역 메모리에서 공유 메모리로의 데이터 로드 방식, 동기화 방식 등을 명시적으로 관리할 필요가 없습니다. 대신 데이터의 타일을 정의하고, 해당 타일에 대해 수행할 연산을 정의하면 cuTile 컴파일러가 이러한 번거로운 저수준 세부 사항을 처리하는 효율적인 커널 코드를 자동으로 생성합니다."라고 설명합니다.

cuTile은 아직 초기 단계에 있지만, 업계 내에서 선제적으로 마이그레이션 경로를 모색하는 사례가 이미 나타나고 있습니다.일부 알고리즘 전문가들은 CUDA C++ 코드를 cuTile로 자동 변환하는 도구를 개발하려는 시도를 시작했습니다.목표는 기존 엔지니어링 코드와 새로운 패러다임 사이에 실행 가능한 연결 고리를 구축하는 것입니다. 이러한 노력의 일환으로, 레딧 커뮤니티의 개발자들은 CUDA 커널의 일부를 타일 기반 형식으로 변환하여 커뮤니티의 잠재적인 마이그레이션 요구 사항을 충족할 수 있는 오픈 소스 프로젝트를 시작했습니다.

레딧에 게시된 오픈 소스 프로젝트는 CUDA 커널의 일부를 타일 기반 형식으로 변환합니다.

하지만 NVIDIA의 "타일" 패러다임이 어디까지 발전할 수 있을지는 아직 명확하지 않습니다. 신제품인 cuTile은 이제 막 검증 단계에 접어들었기 때문입니다. 만약 CUDA에서 cuTile로의 마이그레이션 툴체인이 더욱 성숙해지고, 커뮤니티가 cuTile을 중심으로 새로운 실험과 토론의 장을 적극적으로 형성한다면, cuTile은 미래의 GPU 소프트웨어 생태계에서 전례 없는 위치를 차지할 수도 있을 것입니다.하지만 이러한 기준을 충족하지 못할 경우의 결과는 매우 분명합니다. cuTile은 CUDA의 오랜 역사 속에서 짧은 실험으로만 남게 될지도 모릅니다.결론적으로, 현재의 경쟁 환경에서 cuTile의 지속적인 매력은 개발 경험을 지속적으로 최적화하고, 마이그레이션 비용을 절감하며, 복잡한 운영 환경에 필수적인 성능상의 이점을 제공하는 능력에 달려 있습니다.

참조 링크:

1.https://byteiota.com/nvidia-cutile-python-gpu-kernel-programming-without-cuda-complexity/

2.https://veyvin.com/archives/github-trending-2025-12-08-nvidia-cutile-python

3.https://cloud.tencent.com/developer/article/2512674

4.https://developer.nvidia.com/blog/focus-on-your-algorithm-nvidia-cuda-tile-handles-the-hardware