AI | ML/AI 개발 | CUDA

[Onnx] C++ GPU Inference

깜태 2021. 12. 2. 19:37
728x90

OS : Windows 10

GPU : RTX 2080

Tools : Visual Studio 2019 16

CUDA : 11.0

CUDNN : 8.0.6

Onnxruntime version : 1.8.1

 

CUDA는 매우 호환이 까다로운 녀석이다. 많은 고생을 덜기 위해선 아래의 사양을 꼭 참고해서 진행해야 한다.

https://onnxruntime.ai/docs/execution-providers/CUDA-ExecutionProvider.html

나의 경우에는 CUDA 11.0으로 설치되어 있기 때문에 Onnx version을 1.8.1로 진행하였다.

 

아래는 CPU 모델을 GPU로 변경할 때 추가로 들어가는 코드이다.

 

OrtCUDAProviderOptions options;
options.device_id = 0;
options.arena_extend_strategy = 0;
options.gpu_mem_limit = 2 * 1024 * 1024 * 1024;
options.cudnn_conv_algo_search = OrtCudnnConvAlgoSearch::EXHAUSTIVE;
options.do_copy_in_default_stream = 1;

OrtSessionOptionsAppendExecutionProvider_CUDA(session_options, 0);
session_options.SetGraphOptimizationLevel(GraphOptimizationLevel::ORT_ENABLE_EXTENDED);
Ort::Session session_{ env, L"mobilenet_v2_Unet.onnx", session_options};

 

 

참고 

https://onnxruntime.ai/docs/build/eps.html#cuda

https://jangjy.tistory.com/357

728x90