본문 바로가기
Python/error

[error]tensorflow-gpu 설치 중 발생 error

by 전봇대파괴자 2021. 1. 26.

아래는 tensorflow-gpu 설치 중 발생한 에러들에 대해 정리한 문서입니다. 발생했던 에러들은 거의 cuDNN과 CUDA의 버전이 맞지 않아 발생한 것들이었습니다.

 

처음으로 해보는 설치였고, 여러 블로그를 참고하며 겨우겨우 진행하다 보니 난관이 많았습니다. 몇 번을 설치하고 지웠는지 참.... 이젠 정상적으로 설치가 됐겠지? 생각해도 gpu가 제대로 작동하는지를 테스트해보면

 

tf.test.is_gpu_avaliable() # gpu 작동 확인
>> False

 

 

tf.test.is_gpu_avaliable() 
>> False

 

 

tf.test.is_gpu_avaliable() 
>> False

 

.....

 

 

그래도 터미널을 다시 한 번 천천히 확인해보니 문제가 조금씩 보이더군요.

 

 

 

1. cudart64_101.dll not found

CUDA의 버전이 맞지 않아 생기는 오류입니다. CUDA 10.2 버전을 설치했을 때 발생하였습니다. 설치한 CUDA를 삭제하고, CUDA 웹페이지에서 CUDA 10.1 Update 2 버전을 다시 다운로드하여 설치하여 해결되었습니다. 

 

2. cudnn64_7.dll not found

cuDNN의 버전이 맞지 않아 생기는 오류입니다. cuDNN 8.0.3 버전을 설치하였을 때 발생하였습니다. cuDNN 파일을 모두 삭제한 후, cuDNN 7.6.5 버전을 다시 다운로드한 후 다시 설치한 CUDA 폴더에 덮어씌워 해결하였습니다.

 

 

3. 추가 comment

사실 이러한 에러들은 GPU에 맞는 CUDA 버전과 cuDNN 버전을 정확히 알고 있었다면 발생하지 않았을 것들입니다. cuDNN 버전의 경우 CUDA 버전에 따라 결정되므로 본인의 GPU를 지원하는 CUDA 버전을 알아두는 게 중요합니다.

 

www.wikiwand.com/en/CUDA

 

CUDA | Wikiwand

CUDA is a parallel computing platform and application programming interface model created by Nvidia.[1] It allows software developers and software engineers to use a CUDA-enabled graphics processing unit for general purpose processing – an approach term

www.wikiwand.com

 

위 페이지의 GPUs Supported 항목에서 GPU 별 Compute Capability와 그에 맞는 CUDA 버전을 확인할 수 있습니다.

예를 들어 제 노트북의 GPU는 GTX 1650입니다. 

Compute Capability는 7.5입니다.

여기에 맞는 CUDA 버전을 찾아보고 설치하면 됩니다. 

 

제게 맞는 버전은 CUDA 10.0~10.2 버전이군요. 하지만 신이 나서 다운로드하러 가보면

위에 맞는 버전만 5개가 있는 걸 알 수 있습니다. 저 중에서 아무거나 설치해도 되겠지! 하고 생각할 수도 있으나 저는 위에서도 썼듯이 10.2 버전을 설치했다가 안 맞아서 에러가 났습니다(.....). 이런 경우에는 일단 범위 내에서 가장 최신 버전을 깔아보고 시행착오를 거치는 수밖에는 없는 것 같습니다. 

 

CUDA, cuDNN 설치에 대해서는 아래의 게시글도 참고해주세요. 

http://mickael-k.tistory.com/18

 

[Windows] CUDA, cuDNN 설치

start() { 환경 - OS : Windows 10 - Graphic card : GTX1050 설치 할 것 - CUDA - cuDNN CUDA 설치 ※ CUDA 설치 전 CUDA를 왜 사용 하는지에 대해서 간략하게 설명한 포스트 입니다. 짧게 읽고 오면 도움이 될..

mickael-k.tistory.com

 

문제 해결 후의 정상적인 설치 진행에 대해서는 이 문서에서 확인할 수 있습니다.

도움이 되었기를 바랍니다.