Pulse 게시 ·

CUDA 13.1, Runtime API에서 GPU 실행 자원 분할 지원

NVIDIA가 CUDA 13.1의 Green Contexts 활용법을 소개했다. 단일 프로세스에서 GPU 연산 유닛인 SM과 작업 큐를 나눠 독립 작업에 배정한다. 회사의 148 SM Blackwell 예제에서는 작은 긴급 커널에 8 SM을 전용 배정하자 지연이 0.140ms에서 0.007ms로 줄었다. 비교 대상은 자원 분할 없이 높은 스트림 우선순위만 적용한 경우다.

Green Contexts는 CUDA 12.4부터 Driver API에서 제공됐으며, CUDA 13.1부터 Runtime API에서도 접근할 수 있다.

SM뿐 아니라 작업 큐 자원도 명시적으로 배정해 독립 스트림 사이의 불필요한 직렬 실행을 줄일 수 있다.

예제는 작은 정수 연산 커널과 GPU를 포화시키는 sqrtf 반복 커널을 함께 실행했다. 전용 분할은 긴급 작업 8 SM·대량 작업 140 SM이며, 동일 우선순위·미분할 조건의 긴급 커널 지연은 3.727ms였다.

스트림 우선순위는 이미 SM에서 실행 중인 블록을 선점하지 못한다. 전용 SM 배정은 기존 블록이 끝나기를 기다리는 상황을 피한다.

Green Contexts에서 스트림을 생성한 뒤에는 기존 스트림 기반 실행 방식을 유지할 수 있어 필요한 구간부터 도입할 수 있다.

긴급 작업의 대기 시간을 줄이는 대신 대량 연산에 쓸 SM이 줄어든다. 통신과 행렬 연산을 동시에 진행해야 하는 학습·추론 파이프라인에도 활용할 수 있다.

원문