cuda.core — 파이썬다운 CUDA 핵심 API
cuda.core — 파이썬다운 CUDA 핵심 API
CUDA를 파이썬답게, 즉 자연스럽고 안전하게 다루고 싶다면 cuda.core 가 좋아요. 커널 컴파일·실행부터 스트림, 메모리, CUDA 그래프까지 한데 다루는 고수준 API예요.
cuda.core 를 쓰면 이렇게 진행돼요:
- 디바이스 선택 — 사용할 GPU를 고르고 컨텍스트를 만져요.
- 커널 컴파일 — CUDA 소스를 컴파일해 실행 가능한 커널로 만들어요.
- 스트림 — 비동기 실행을 위한 스트림(stream)을 만들고 관리해요.
- 메모리 할당 — GPU 메모리를 할당하고, 복사(copy)하고, 커널을 실행해요.
- 이벤트 타이밍 — CUDA 이벤트로 구간별 실행 시간을 재요.
- CUDA 그래프 — 반복 작업을 캡처해 오버헤드를 줄여요.
Interoperability 프로토콜도 갖추고 있어서 CuPy나 PyTorch 같은 다른 라이브러리의 GPU 버퍼와 함께 쓸 수 있어요. __cuda_stream__ 프로토콜이나 CPU/GPU 버퍼용 memory view 유틸리티가 그 예예요.
문서에서는 10 minutes to cuda.core 튜토리얼로 한 번에 끝까지 흘러가는 과정을 보여줘요. 커널 컴파일 예제부터 멀티 디바이스, 그래프 캡처까지 순서대로 따라 해 볼 수 있어요.
# 예시 흐름 (10 minutes to cuda.core)
1. Selecting a device
2. Compiling a kernel
3. Streams
4. Allocating memory
5. Copying and launching
6. Timing with events
7. Capturing work in a CUDA graph
8. Working with CuPy and PyTorch
9. Cleaning up