# NVIDIA, CUDA에 드디어 네이티브 Python 지원 추가

> Clean Markdown view of GeekNews topic #20153. Use the original source for factual precision when an external source URL is present.

## Metadata

- GeekNews HTML: [https://news.hada.io/topic?id=20153](https://news.hada.io/topic?id=20153)
- GeekNews Markdown: [https://news.hada.io/topic/20153.md](https://news.hada.io/topic/20153.md)
- Type: GN+
- Author: [neo](https://news.hada.io/@neo)
- Published: 2025-04-05T09:51:54+09:00
- Updated: 2025-04-05T09:51:54+09:00
- Original source: [thenewstack.io](https://thenewstack.io/nvidia-finally-adds-native-python-support-to-cuda/)
- Points: 24
- Comments: 3

## Summary

NVIDIA의 CUDA 툴킷에 네이티브 Python 지원이 추가되어, Python만으로도 GPU에서 고속 연산을 수행할 수 있게 되었습니다. 이는 Python 개발자에게 자연스러운 방식으로 설계된 것으로, 기존의 C++이나 Fortran 지식 없이도 고성능 GPU 연산이 가능해졌습니다. 또한, Python 중심의 AI 생태계 확장과 글로벌 GPU 인프라 확대에도 긍정적인 영향을 미칠 것으로 보입니다.

## Topic Body

- 수년 동안 C/C++ 중심이었던 NVIDIA의 CUDA 툴킷에 **2024년 GTC에서 네이티브 Python 지원이 공식 추가됨**  
- 이제 Python만으로 GPU에서 직접 알고리즘 중심의 고속 연산을 실행할 수 있게 됨  
- CUDA 아키텍트 Stephen Jones는 “Python CUDA는 단순히 C 코드를 Python 문법으로 옮긴 것이 아니라,  
  **Python 개발자에게 자연스러운 방식으로 새롭게 설계된 것**”이라고 설명함  
  
### Python 네이티브 지원이 여는 새로운 가능성  
  
- 기존 CUDA 사용자는 C++이나 Fortran을 알아야 했으나, 이제는 **Python만으로도 고성능 GPU 연산 가능**  
- 2024년 GitHub 오픈소스 설문에 따르면 Python은 JavaScript를 제치고 **가장 인기 있는 언어**로 부상  
- CUDA 사용자 수는 2020년 200만 명 → 2023년 400만 명으로 증가했지만,  
  **Python 개발자는 수천만 명 규모**, 특히 인도·브라질 등 신흥국가 개발자들에게 큰 호재  
- 이로 인해 **글로벌 GPU 인프라 확대**에도 긍정적 영향 기대됨  
  
### Pythonic CUDA의 구성 방식  
  
- CUDA는 라이브러리, SDK, 컴파일러, 런타임, 툴, 알고리즘 등으로 구성됨  
- Python 통합은 단순 커널 제공이 아닌, **전체 스택을 파이썬 친화적으로 구성**  
- 핵심 방식: **JIT(Just-In-Time) 컴파일 기반**, 컴파일러 의존도 최소화  
  
#### 주요 구성 요소  
  
- **cuPyNumeric**: NumPy와 동일한 API를 제공하면서 GPU 가속을 지원하는 Python 라이브러리  
- **CUDA Core**: CUDA 런타임을 파이썬 방식으로 재설계한 실행 흐름 기반 시스템  
- **NVMath Python**: 호스트/디바이스 라이브러리 호출을 위한 통합 인터페이스 제공  
- **고성능 C++ 라이브러리와 직접 연동** 가능한 Python API 구성  
- **성능 분석 및 코드 분석 도구**도 함께 제공됨  
  
> “기존 고성능 C++ 코드와 직접 연결되어 있어 성능 손실은 거의 없음” — Stephen Jones  
  
### 새로운 프로그래밍 모델: CuTile  
  
- Python 개발자를 위해 설계된 **고수준 배열 중심 모델**  
- 기존 CUDA가 쓰레드 기반의 세부 제어를 요구했다면, CuTile은 **타일 단위의 추상화**를 통해 간결하고 이해하기 쉬운 구조 제공  
- CuTile은 배열을 GPU 타일 단위로 매핑함으로써 **디버깅 및 최적화가 쉬우면서도 성능은 그대로 유지**  
- 추후 C++ CUDA에도 확장 예정  
  
> “컴파일러가 GPU 구조를 더 잘 이해하기 때문에, 성능 최적화도 자동으로 잘 수행됨”  
  
### 정리  
  
- **CUDA의 Python 네이티브 통합**은 GPU 프로그래밍의 진입 장벽을 크게 낮추는 변화  
- 기존 복잡한 언어 지식 없이도, Python만으로 GPU에서 AI/과학 연산이 가능해짐  
- Python 중심의 AI 생태계 확장과 NVIDIA GPU 활용을 위한 **새로운 시대를 여는 결정적 전환점**

## Comments



### Comment 36782

- Author: aer0700
- Created: 2025-04-06T06:42:38+09:00
- Points: 1

Cupy, pytorch 같은 기존 Cuda wrapper 보다 더 빠르려나요. Cupy, torch 장점이 numpy랑 api가 거의 똑같아서, numpy로 짰던 테스트 코드를 별 힘들이지 않고 옮길수 있던 것이었는데, 이건 어떤지 써봐야겠네요.

### Comment 36763

- Author: neo
- Created: 2025-04-05T09:51:54+09:00
- Points: 1

###### [Hacker News 의견](https://news.ycombinator.com/item?id=43581584) 
* 나는 GPU 프로그래머는 아니지만, 나 같은 사람도 쉽게 사용할 수 있을 것 같음. GPU와 CPU를 사용하는 간단한 데모를 만들어 보았음. 결과는 다음과 같음
  - CPU에서 5000x5000 크기의 무작위 행렬 100개 생성
  - CPU로 행렬 더하기
  - CPU 행렬 덧셈 완료 시간: 0.6541초
  - CPU 결과 행렬 크기: (5000, 5000)
  - GPU에서 5000x5000 크기의 무작위 행렬 100개 생성
  - GPU로 행렬 더하기
  - GPU 행렬 덧셈 완료 시간: 0.1480초
  - GPU 결과 행렬 크기: (5000, 5000)
  - API가 정말 간단해서 더 깊이 파볼 가치가 있음. CUDA 프로그래밍은 이런 고수준의 것이 없으면 큰 작업처럼 보임

* Python이 이런 것들의 대상이 되는 이유가 무엇인지 궁금함. 많은 프로젝트가 Python 지원을 추가하는 것을 보았음. Python 코드베이스가 다른 것들보다 쉽게 다양한 타겟으로 컴파일될 수 있는지 궁금함

* Pytorch가 이 나오기 전에 큰 모멘텀을 얻어서 다행임. 이제 우리는 병렬 계산을 위한 진정한 플랫폼 독립적인 반표준을 가짐. NVIDIA에 국한되지 않음
  - NVIDIA 백엔드와 관련된 Pytorch의 부분이 이제 Python에서 직접 구현될 수 있음
  - 중요한 점은 최종 사용자/개발자에게는 중요하지 않거나 중요하지 않아야 한다는 것임
  - 이 새로운 플랫폼이 Python을 통해 GPU 계산의 전체 개념을 게임 같은 더 많은 도메인으로 확장할 수 있을지도 모름
  - Python을 통해 주로 GPU에서 Rust 게임을 실행하는 것을 상상해보라

* CuTile은 여러 면에서 OpenAI의 Triton의 후속작처럼 느껴짐. 타일/블록 수준의 원시 기능과 TileIR뿐만 아니라 CuPy에서 적절한 SIMT 프로그래밍 모델도 얻고 있음. 올해 GTC에서도 많은 사람들이 주목하지 않은 것 같음. 매우 멋진 것임
  - 그럼에도 불구하고 CPU와 관련된 발표나 토크는 거의 없었음. Grace CPU가 발표된 지 꽤 되었지만, Nvidia CPU와 GPU에서 원활하게 작동하는 일반화된 추상화를 곧 볼 것 같지 않음
  - 병렬 알고리즘을 매일 작업하는 사람에게는 이것이 문제임. NSight와 CUDA-GDB로 디버깅하는 것은 여전히 원시 GDB와 같지 않으며, 먼저 CPU에서 알고리즘을 설계한 다음 GPU로 포팅하는 것이 훨씬 쉬움
  - 컴파일러 분야의 모든 팀 중에서 Modular는 LLM 열풍에 완전히 휩싸이지 않고 여러 플랫폼을 아우르는 추상화와 언어를 적극적으로 구축하는 몇 안 되는 팀 중 하나임. 이 환경에서 점점 더 가치가 있음. 더 많은 사람들이 Mojo를 실험해 보기를 바람. 아마도 그것이 우리가 매일 직면하는 CPU-GPU 간의 격차를 마침내 메울 수 있을지도 모름

* JAX와 어떻게 비교되는지 매우 궁금함
  - JAX는 Nvidia뿐만 아니라 다른 브랜드의 GPU에서도 실행되는 Python 코드를 작성할 수 있게 해줌 (지원은 다양함). 유사하게 NumPy 함수의 드롭인 대체품을 가지고 있음
  - 이것은 Nvidia만 지원함. 하지만 JAX가 할 수 없는 일을 할 수 있는지? 사용하기 더 쉬운지? 고정 크기 배열 지향성이 덜한지? 한 브랜드의 GPU에 자신을 고정시키는 것이 가치가 있는지?

* 이것은 대단함. AI 분야에서 NVIDIA의 대안으로 AMD + ROCm을 고려하던 사람은 더 이상 없을 것임
  - 나는 GPU 실행을 위해 효과적으로 코드를 작성할 정도로 C++을 배우지 못하는 (배우지 않을) 사람 중 하나임. 하지만 Python을 통해 GPU로 직접 파이프라인을 가질 수 있음. 놀라움
  - 효율성의 의미는 엄청남. PyTorch와 같은 Python 라이브러리뿐만 아니라 NVIDIA GPU에서 실행되는 모든 것에 대해
  - 효율성을 개선하는 것을 보는 것을 좋아함. 우리는 OpenAI와 Google이 모든 GPU를 구동하기 위해 얼마나 많은 원자력 발전소가 필요할지에 대해 끊임없이 듣고 있음

* Rust 지원은 다음인가? 현재 나는 내 데이터 구조를 커널로/커널에서 바이트 배열로 수동으로 [디]직렬화하고 있음. CUDA가 C++에서 제공하는 것처럼 진정으로 공유되는 데이터 구조를 갖는 것이 좋을 것임

* Python은 정말로 프로그래밍 언어의 링구아 프랑카로 자리 잡고 있음. FOSS 르네상스에서 채택이 급증하고 있으며, 우리가 가진 것 중 가장 가까운 만능 도구라고 생각함
  - PEP 모델은 자기 개선과 표준화를 위한 좋은 수단임. uv와 BeeWare와 같은 프로젝트 덕분에 패키징과 배포는 곧 해결될 문제임. 매년 성능 개선이 계속될 것이라고 확신함

* 이것은 아마도 Python이 일반적으로 이끌어온 것, 즉 더 많은 것들이 더 빨리 시도되고 더 빠른 언어에 남아 있는 것을 이끌 것임. 전반적으로 이것은 훌륭한 움직임임. 확실히 이것을 가지고 놀기를 기대하고 있음

* CUDA는 C와 C++에서 태어났음. C++을 확장하고 CUDA C라고 부르는 대신 실제로 CUDA의 C 변형을 구현했으면 좋겠음

### Comment 36778

- Author: iwi19
- Created: 2025-04-06T00:38:13+09:00
- Points: 1
- Parent comment: 36763
- Depth: 1

첫번째 속도 진짜인가요? 너무 느린데요...
