W tensorflow/stream_executor/platform/default/dso_loader.cc:59] Could not load dynamic library 'cudart64_101.dll'; dlerror: cudart64_101.dll not found
I tensorflow/stream_executor/cuda/cudart_stub.cc:29] Ignore above cudart dlerror if you do not have a GPU set up on your machine.
PyCharm 에서 tensorflow 실행시 CUDA 10.1 이 설치되어 있지 않다는 경고(Warning).
CUDA 는 NVIDIA 의 CUDA 코어가 장착된 GPU 에서 병렬 처리를 가능하게 하는 GPGPU 기술이다. TensorFlow 2.0 부터는 CPU 버전과 GPU 버전이 통합되어, CUDA 를 지원하는 NVIDIA 그래픽카드가 있고 해당 CUDA 드라이버가 설치되어 있다면 자동으로 GPU 를 인식한다. 만약 NVIDIA 그래픽카드나 CUDA 가 설치되어 있지 않다면 PyCharm 에서는 위와 같이 경고를 발생하고 CPU 모드로 실행될 것이다.
CUDA 를 지원하는 NVIDIA 그래픽카드가 있다면 드라이버를 설치하여 GPU 가속을 사용할 수 있다. cudart64_101.dll 이 없다하니 10.1 버전을 설치하면 된다. 64는 비트 101은 버전을 뜻한다. 그 전에 본인의 CPU 가 CUDA 10.1 버전을 사용할 수 있는지를 먼저 체크해야 한다.
>>> import tensorflow as tf >>> tf.config.list_physical_devices('GPU') ... pciBusID: 0000:01:00.0 name: GeForce GTX 1050 computeCapability: 6.1 ... W tensorflow/stream_executor/platform/default/dso_loader.cc:59] Could not load dynamic library 'cudnn64_7.dll'; dlerror: cudnn64_7.dll not found ... | cs |
또는 위키 사이트(https://en.wikipedia.org/wiki/CUDA) 본인 CPU 를 검색하여 compute capability 버전을 확인하면 대부분이 3.0~7.5 사이에 있으며, 이 버전들은 CUDA 10.1 을 사용하는데 문제가 없다.
CUDA SDK 10.0 – 10.2 support for compute capability 3.0 – 7.5
CUDA® Toolkit 설치 - https://developer.nvidia.com/cuda-toolkit-archive
설치 후에 PyCharm 을 재시작하면, 경고가 사라지고 아래와 같은 GPU 사용 로그를 볼 수 있다.
I tensorflow/stream_executor/platform/default/dso_loader.cc:48] Successfully opened dynamic library cudart64_101.dll
하지만 여기서 끝이 아니다.
심층 신경망을 위한 cuDNN(Cuda Deep Neural Network) 라이브러리의 cuDNN64_7.dll 파일이 없으면 TensorFlow 가 로드되지 않는다.
cuDNN 설치 - https://developer.nvidia.com/cudnn
cuDNN 은 NVIDIA 의 회원이어야 다운로드가 가능하다. 귀찮지만 가입을 하고 본인에 맞는 버전의 cuDNN SDK 를 다운로드한다. 마찬가지로 현재 최신버전인 cuDNN v8.0.5 for CUDA 10.1 를 사용할 수도 있지만 메시지에서 요구하는 cuDNN7 의 최신버전(cuDNN v7.6.5 for CUDA 10.1)을 다운받는다. 그리고 다운받은 디렉토리 안의 세가지 파일을
- bin/cudnn64_7.dll,
- include/cudnn.h,
- lib/x64/cudnn.lib
CUDA 툴킷이 설치된 C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.1 안의 각각의 디렉토리에 복사하면 추가로 Path 설정을 할 필요가 없다.
* 설치 확인
>>> import tensorflow as tf >>> tf.config.list_physical_devices('GPU') I tensorflow/stream_executor/platform/default/dso_loader.cc:48] Successfully opened dynamic library nvcuda.dll
I tensorflow/core/common_runtime/gpu/gpu_device.cc:1716] Found device 0 with properties:
pciBusID: 0000:01:00.0 name: GeForce GTX 1050 computeCapability: 6.1
coreClock: 1.493GHz coreCount: 5 deviceMemorySize: 2.00GiB deviceMemoryBandwidth: 104.43GiB/s
I tensorflow/stream_executor/platform/default/dso_loader.cc:48] Successfully opened dynamic library cudart64_101.dll
I tensorflow/stream_executor/platform/default/dso_loader.cc:48] Successfully opened dynamic library cublas64_10.dll
I tensorflow/stream_executor/platform/default/dso_loader.cc:48] Successfully opened dynamic library cufft64_10.dll
I tensorflow/stream_executor/platform/default/dso_loader.cc:48] Successfully opened dynamic library curand64_10.dll
I tensorflow/stream_executor/platform/default/dso_loader.cc:48] Successfully opened dynamic library cusolver64_10.dll
I tensorflow/stream_executor/platform/default/dso_loader.cc:48] Successfully opened dynamic library cusparse64_10.dll
I tensorflow/stream_executor/platform/default/dso_loader.cc:48] Successfully opened dynamic library cudnn64_7.dll
I tensorflow/core/common_runtime/gpu/gpu_device.cc:1858] Adding visible gpu devices: 0 | cs |
CUDA 관련 자세한 사항은 텐스플로우 사이트의 [GPU 지원] 항목을 참조.
https://www.tensorflow.org/install/gpu
WRITTEN BY
- 손가락귀신
정신 못차리면, 벌 받는다.