CUDA 13.3과 함께 'CUDA 파이썬 1.0' 정식 출시
최근 30일 조회수 — 좋아요 —핵심 요약
엔비디아가 파이썬을 CUDA C++와 대등한 정식 언어로 만드는 CUDA 파이썬 1.0을 CUDA 13.3과 함께 발표했다.
CUDA 13.3와 함께 ‘CUDA 파이썬 1.0’이 정식 출시됐다. 엔비디아 기술 블로그에 따르면, 이번 릴리스로 파이썬은 CUDA C++와 대등한 정식 지원 언어가 됐다. 그동안 파이썬 개발자가 GPU를 다루려면 CUDA C++로 직접 확장 모듈을 짜거나, PyTorch·CuPy·RAPIDS 같은 상위 라이브러리에 기대는 두 가지 길밖에 없었는데, 이제 세 번째 길이 공식적으로 열린 셈이다.
CUDA 파이썬 1.0이라는 이름은 하나의 버전 번호가 아니라 여러 구성 요소를 묶는 이정표에 가깝다. 실제로 함께 배포되는 구성 요소들의 버전은 제각각이다. CUDA 런타임에 파이썬 방식으로 접근하는 cuda.core는 1.0.0, CCCL의 병렬 알고리즘을 파이썬에서 호출하는 cuda.compute도 1.0.0이지만, CUDA C API에 1:1로 대응하는 저수준 바인딩 cuda.bindings는 CUDA 툴킷 버전에 맞춰 13.3.0으로 표기된다. 여기에 환경에 설치된 CUDA 구성 요소를 찾아주는 cuda-pathfinder, 엔비디아 수학 라이브러리를 파이썬으로 옮긴 nvmath-python 1.0이 함께 온다. 엔비디아는 nvmath-python이 별도의 릴리스 트랙에서 같은 수준의 안정성 방침을 적용받는다고 설명한다.
이 가운데 가장 무게가 실린 것은 cuda.core다. 디바이스, 스트림, 버퍼 같은 CUDA의 기본 개념을 평범한 파이썬 객체로 바꿔놓았는데, 이게 단순한 편의 기능이 아니라 구조적인 변화라는 게 엔비디아 설명의 핵심이다. 지금까지는 CuPy, cuDF 같은 라이브러리마다 CUDA에 접근하는 자체 바인딩 계층을 따로 두고 있었고, 스트림이나 디바이스, 메모리 할당을 각자 다르게 정의해왔다. 그래서 CuPy가 할당한 GPU 메모리 블록을 cuDF가 복사 없이 같은 스트림에서 처리하려면 인터체인지 프로토콜을 통해 소유권을 세심하게 맞춰야 했다.
CUDA 파이썬 1.0부터는 엔비디아가 유지 관리하는 단일한 공식 바인딩 계층이 이 역할을 대신한다. 여러 라이브러리가 같은 객체를 공유하기 때문에, 예를 들어 Numba로 만든 커널과 cuda.compute 호출이 같은 GPU 버퍼를 같은 스트림 위에서 별도 변환 없이 다룰 수 있다. 라이브러리마다 사설 CUDA 계층을 따로 들고 있지 않아도 된다는 뜻이다.
또 하나 이번 발표에서 강조된 것은 시맨틱 버저닝 도입이다. 엔비디아는 앞으로 API가 깨지는 변경은 메이저 릴리스에서만 일어나고, 마이너 릴리스는 기능 추가, 패치 릴리스는 버그 수정에 한정하겠다고 밝혔다. 제거 예정인 공개 API는 먼저 마이너 릴리스에서 지원 중단(deprecated) 표시를 하고 대체 경로를 함께 제공한다는 방침이다. 엔비디아는 이 라이브러리들이 완전히 새로 만든 것이 아니라 그동안 존재해온 것들이며, 1.0이 바꾸는 것은 코드 자체보다 이 버전 관리에 대한 약속이라고 선을 그었다.
다만 이번 자료는 엔비디아 자체 기술 블로그의 발표 내용으로, 실제 라이브러리 간 상호운용 성능이나 기존 CuPy·RAPIDS 생태계와의 마이그레이션 부담이 어느 정도인지는 별도 검증이 필요하다.
읽기 목록은 이 브라우저에 저장됩니다.
출처
- CUDA Python 1.0: Stable APIs, One Foundation, Full Platform Access | NVIDIA Technical Blog — NVIDIA Technical Blog
이 글은 위 출처를 근거로 자동 생성된 뒤 발행됐습니다. 원문을 함께 확인해 주세요. 교차 보도 없이 단독 출처로 작성됐습니다.