CUDA Execution Provider — NVIDIA GPU 가속
CUDA Execution Provider — NVIDIA GPU 가속
CUDA Execution Provider 는 NVIDIA CUDA 가능 GPU에서 하드웨어 가속 연산을 가능하게 하는 EP예요. ONNX 모델 중 GPU에서 실행할 수 있는 노드를 CUDA로 실행해 속도를 크게 올립니다.
출처: https://onnxruntime.ai/docs/execution-providers/CUDA-ExecutionProvider.html
설치와 요구사항
미리 빌드된 CUDA EP가 포함된 패키지는 대부분의 언어 바인딩으로 배포돼요. 별도로 설치할 필요 없이 onnxruntime-gpu 패키지를 쓰면 돼요.
CUDA/쿠다(cuDNN) 버전 조합이 중요해요. NVIDIA CUDA Minor Version Compatibility 덕분에, 예를 들어 CUDA 11.8로 빌드된 ORT는 모든 11.x와 호환되고, CUDA 12.8로 빌드된 것은 모든 12.x와 호환돼요. 단, cuDNN 8.x와 9.x는 서로 호환되지 않습니다.
참고: 버전 1.27부터 PyPI의
onnxruntime-gpu패키지는 기본적으로 CUDA 13.0으로 빌드돼요.
설정 옵션
CUDA EP는 다양한 구성 옵션을 지원해요. 몇 가지를 보면 다음과 같아요.
device_id— 사용할 GPU 디바이스 번호gpu_mem_limit— GPU 메모리 상한use_tf32— TensorFloat-32 사용 여부enable_cuda_graph— CUDA 그래프 사용(미리보기)cudnn_conv_algo_search,cudnn_conv_use_max_workspace— cuDNN 컨볼루션 탐색 옵션prefer_nhwc— NHWC 채널 우선 레이아웃
파이썬에서 사용
가장 간단한 형태는 InferenceSession의 providers에 CUDA를 우선으로 넣는 방식이에요.
import onnxruntime as rt
sess = rt.InferenceSession("model.onnx",
providers=['CUDAExecutionProvider', 'CPUExecutionProvider'])
이 순서는 "CUDA가 가능하면 CUDA로, 아니면 CPU로" 실행한다는 뜻이에요.