엔비디아(NVIDIA)가 CUDA 코어 컴퓨트 라이브러리(CCCL, CUDA Core Compute Libraries)에 새로운 현대 C++ 런타임 API를 추가했다. CUDA 13.2부터 사용할 수 있는 이 CCCL 런타임은 스트림 관리, 메모리 할당, 커널 실행 등 CUDA 프로그래밍의 핵심 기능을 현대 C++ 설계 원칙에 맞춰 재구성한 헤더 집합이다. 기존 CUDA 런타임 API는 C 소스 호환성을 전제로 설계된 만큼 20년 넘는 진화 과정에서 누적된 설계 한계가 있었고, 여러 라이브러리가 하나의 장치를 공유하는 복잡한 환경에서는 암묵적 상태에 의존하는 구조가 문제를 일으키곤 했다. CCCL 런타임은 이를 해결하기 위한 현대적 대안으로 설계됐다.
CCCL 런타임의 핵심 설계 원칙은 강타입(strong typing)과 명시적 의존성이다. 기존 CUDA 런타임에서는 스트림을 생성할 때 현재 활성 장치와 암묵적으로 연결됐지만, 새 API에서는 `cuda::device_ref device = cuda::devices[0];`처럼 장치를 명시하고 해당 장치로 스트림을 명시적으로 생성한다. 정수 식별자 대신 전용 타입을 사용함으로써 컴파일 시점에 오류를 잡을 수 있고, 여러 라이브러리가 공존하는 환경에서도 각 라이브러리가 전역 상태를 저장하고 복원할 필요 없이 안전하게 구성된다. 또한 기존 CUDA 런타임 API와 함께 점진적으로 도입할 수 있는 호환성 헬퍼도 제공한다.

메모리 관리 측면에서도 변화가 눈에 띈다. `cuda::make_buffer`로 생성한 버퍼는 크기·타입·장치 정보를 포함하는 타입 안전 컨테이너로, 원시 포인터 대신 `cuda::std::span`으로 커널에 전달된다. 커널 실행 역시 `cuda::launch` API를 통해 블록·스레드 구성과 함께 명시적으로 표현된다. 엔비디아는 CUDA 프로그램이 복잡해질수록 의존성을 명확히 하고 지역적 추론을 가능하게 하는 API가 필요하다고 설명하며, 이것이 CCCL 런타임이 채우려는 영역이라고 밝혔다. 기존 CCCL이 제공하던 병렬 알고리즘, 협력 알고리즘, 언어 관용적 추상화에 이어 런타임 추상화 계층이 추가됨으로써 CUDA C++ 개발 환경이 한 단계 더 현대화됐다는 평가다.














