지난번 작성한 글에서 class를 생성하여 사용하는 부분까지는 구현을 했다.( https://jangjy.tistory.com/356 )
[Onnx] onnx 모듈을 사용하기 위한 class를 만들어보자
onnxruntime 예제코드에는 struct를 생성하여 사용하는 방법이 나와있다. 코드 중 주요 부분만 떼서 보면 아래와 같다. struct ETRI_FV { ETRI_FV() { auto memory_info = Ort::MemoryInfo::CreateCpu(OrtDeviceAl..
jangjy.tistory.com
그런데 학습 했던 모델을 이용하여 추론을 돌려보니 이상하게 속도가 느리다..
VS Nuget 패키지가 문제인가.. 이것저것 깔았다 지웠다.. 소스로부터 빌드도 시도 해보고..
아무리 봐도 이건 GPU 에서 도는 속도가 아니라 CPU에서 도는 속도였다..
그래서 찾고 방황하다 github 에 문의 한 결과 답변을 얻을 수 있었다.
아주 간단한 문제로, GPU를 사용하기 위해서는 session을 생성할 때 옵션을 지정 해 줘야한다.
#include <cuda_provider_factory.h>
Ort::SessionOptions session_options;
// cuda 사용하기 위해 provider 추가
Ort::ThrowOnError(OrtSessionOptionsAppendExecutionProvider_CUDA(session_option, 0));
// 추가 graph 최적화 옵션
session_options.SetGraphOptimizationLevel(GraphOptimizationLevel::ORT_ENABLE_EXTENDED);
session_ = new Ort::Session(env, wPath, session_options);
CUDA 옵션의 두번째 파라미터는 gpu 번호다.
다중 GPU 환경에서 어느 GPU가 연산을 담당할지 지정 가능하다.
별거 아닌 문제였는데 이놈 떄문에 일주일을 까먹었네..
'전공관련 > Deep Learning' 카테고리의 다른 글
[Pytorch] model load시 key가 있는 레이어만 불러오자 (0) | 2021.02.17 |
---|---|
[ONNX] Onnx convert 모델을 검증하자 (2) | 2020.04.22 |
[Onnx] Onnxruntime - GPU를 사용하자 (0) | 2020.03.09 |
[Onnx] onnx 모듈을 사용하기 위한 class를 만들어보자 (0) | 2020.02.26 |
[Onnx] visual studio에서 onnxruntime을 설치 해 보자 (0) | 2020.02.26 |
[Onnx] pytorch model을 onnx로 변환하여 사용하자 (1) | 2020.02.26 |
댓글을 달아 주세요