-
[onnxruntime] CUDAExecutionProvider가 적용되지 않을 때Programing/기타 오류 해결 2024. 5. 8. 20:21반응형
GPU 딸린 새 VM에 환경을 구축하고 테스트를 진행하는데
Applied privider가 'CPUExecutionProvider'로 적용되고 있습니다.
CUDA, cuDNN, onnxruntime 간 버전이 맞지 않아 발생한 문제일 가능성이 큽니다.
클라우드 서비스에서 제공하는 GPU VM은 적어도 CUDA, cuDNN 간 버전은 맞춰진 상태이므로,
onnxruntime만 조정해보도록 하겠습니다.
CUDA, cuDNN 버전 확인
CUDA
nvcc -V
cuDNN
cat /usr/include/x86_64-linux-gnu/cudnn_v*.h | grep CUDNN_MAJOR -A 2
ONNX Runtime 재설치
이미 onnxruntime이 설치가 되어있었다면 충돌문제가 발생할 수 있기 때문에 먼저 삭제해주세요
pip uninstall onnxruntime pip uninstall onnxruntime-gpu
onnxruntime 설치
https://onnxruntime.ai/docs/install/
# CUDA 12.X pip install onnxruntime-gpu --extra-index-url https://aiinfra.pkgs.visualstudio.com/PublicPackages/_packaging/onnxruntime-cuda-12/pypi/simple/
정상 설치결과 확인
공식문서에서 제공하는 예시코드를 이용해 확인해보았습니다.
from optimum.onnxruntime import ORTModelForSequenceClassification ort_model = ORTModelForSequenceClassification.from_pretrained( "distilbert-base-uncased-finetuned-sst-2-english", export=True, provider="CUDAExecutionProvider", )
일부 노드에 부정적인 영향이 있을 수 있다는 warning이 발생했습니다.
다만 제 코드 전반에서는 문제가 발생하지 않아 일단 넘겼습니다.
참고할만한 링크(https://github.com/ultralytics/ultralytics/issues/5147)를 남겨둡니다.
원래 문제가 됐던 코드도 다시 테스트 해보니
CUDAExecutionProvider가 잘 적용되었습니다!
반응형'Programing > 기타 오류 해결' 카테고리의 다른 글
AttributeError: module 'PIL.Image' has no attribute 'LINEAR'. (0) 2024.07.08 [LangChain] ValueError: The de-serialization relies loading a pickle file. (1) 2024.03.12 remote: error: GH001: Large files detected. (github에 용량 큰 파일 push하기) (0) 2023.08.03 [구글 애드센스] 주소 인증 절차가 완료되지 않았기 때문에 더는 광고가 게재되지 않습니다. (0) 2023.06.04 ModuleNotFoundError: No module named 'distutils.cmd' (0) 2023.04.27