programing

텐서플로 CPU 전용 설치에 동적 라이브러리 'cudart64_101.dll'을(를) 로드할 수 없습니다.

closeapi 2023. 5. 26. 20:57
반응형

텐서플로 CPU 전용 설치에 동적 라이브러리 'cudart64_101.dll'을(를) 로드할 수 없습니다.

저는 『Tensorflow』를했습니다.pip install tensorflow프로그램을 실행할 때마다 로그 메시지가 표시됩니다.

W tensorflow/stream_executor/platform/default/dso_loader.cc:55] 동적 라이브러리 'cudart64_101.dll'을(를) 로드할 수 없습니다. dlerror: cudart64_101.dll을(를) 찾을 수 없습니다.

이게 나빠요?오류를 해결하려면 어떻게 해야 합니까?

텐서플로 2.1+

무슨 일이야?

새로운 Tensorflow 2.1 릴리즈에서는 기본값이tensorflowpip 패키지에는 TF의 CPU 및 GPU 버전이 모두 포함되어 있습니다.이전 TF 버전에서는 CUDA 라이브러리를 찾지 못하면 오류가 발생하고 예외가 발생하는 반면, 라이브러리는 올바른 CUDA 버전을 동적으로 검색하고 찾지 못하면 경고를 내보냅니다(처음의 W는 경고를 나타내고, 오류는 치명적인 오류를 나타냅니다). 오류는 E(또는 F)이고 CPU 전용 모드로 돌아갑니다.실제로 이 메시지는 경고 직후 로그에 정보 메시지로 기록됩니다(기본값보다 높은 최소 로그 수준이 있는 경우에는 정보 메시지가 표시되지 않을 수 있음을 유의하십시오).전체 로그는 다음과 같습니다(내 로그 강조).

2020-01-20 12:27:44.554767: W 텐서플로/stream_executor/platform/default/dso_loader.cc:55] 동적 라이브러리 'cudart64_101.dll'을 로드할 수 없습니다. dlerror: cudart64_101.dll을 찾을 수 없습니다.

2020-01-20 12:27:44.554964: I tensorflow/stream_executor/cuda/cudart_stub.cc:29] 컴퓨터에 GPU가 설정되어 있지 않은 경우 cudart drerror를 무시합니다.

걱정해야 하나요?어떻게 고치죠?

컴퓨터에 CUDA 지원 GPU가 없거나 GPU 가속이 없어도 상관없다면 걱정할 필요가 없습니다.반면에 텐서플로를 설치하고 GPU 가속을 원한다면 CUDA 설치를 확인하십시오(TF 2.1에는 10.2 또는 10.0이 아닌 CUDA 10.1이 필요함).

경고를 제거하려는 경우 TF의 로깅 수준을 조정하여 경고를 억제할 수 있지만 모든 경고를 침묵시키기 때문에 과도한 작업일 수 있습니다.


텐서 흐름 1.X 또는 2.0:

CUDA 설정이 손상되었습니다. 올바른 버전이 설치되어 있는지 확인하십시오.

TensorFlow 2.1에서 GPU 지원을 위한 필수 구성 요소를 설치하려면:

  1. 최신 GPU 드라이버를 설치합니다.
  2. CUDA 10.1을 설치합니다.
    • CUDA 설치 관리자가 "이전 버전의 드라이버를 설치합니다"라고 보고하는 경우 사용자 정의 설치를 선택하고 일부 구성 요소를 선택 취소할 수 있습니다.실제로, GeForce Experience, PhysX, Display Driver 및 Visual Studio 통합을 포함하여 CUDA와 함께 번들된 소프트웨어는 TensorFlow에 필요하지 않습니다.
    • 또한 TensorFlow는 소스에서 빌드하지 않는 한 CUDA 툴킷의 특정 버전이 필요합니다. TensorFlow 2.1 및 2.2의 경우 현재 버전은 10.1입니다.
  3. cuDNN을 설치합니다.
    1. CUDA 10.1용 cuDNN v7.6.4를 다운로드합니다.NVIDIA Developer Program에 가입해야 합니다.
    2. 적절한 위치에 압축을 풀고 bin 디렉토리를 PATH에 추가합니다.
  4. 설치 by 서텐플 우기준치설pip install tensorflow.
  5. PC를 다시 시작해야 할 수도 있습니다.

TensorFlow 2.3.0은 CUDA 11에서 잘 작동합니다.하지만 tf-tensor-tensor를 설치해야 합니다(텐서플로 및 CUDA 11을 설치한 후): https://pypi.org/project/tf-nightly-gpu/

시도:

pip install tf-nightly-gpu

나중에 콘솔에 다음과 같은 메시지가 표시됩니다.

I tensorflow/stream_executor/platform/default/dso_loader.cc:48] Successfully opened dynamic library cudart64_110.dll

다른 방법으로 해결했습니다.우선 이 링크에서 cuda 10.1 툴킷을 설치했습니다.

설치 프로그램 유형: exe(로컬)(윈도우즈용)를 선택하고 사용자 지정 모드로 10.1을 설치했습니다(이전에 CUDA 10.2를 설치했기 때문에 NVIDIA PhysX가 자동으로 설치됨).

후 경로에서 ( the Path)C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.1\bin), 저의 경우, 저는 복사했습니다.cudart64_101.dll파일로 작성하여 붙여넣음)C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.2\bin).

그런 다음 Tensorflow를 가져오는 작업이 원활하게 수행되었습니다.

제 경우 텐서플로 설치는 cudart64_101.dll을 찾고 있었습니다.

여기에 이미지 설명 입력

cudart64_101의 101부분은 cuda 버전입니다 - 여기서 101 = 10.1

저는 11.x를 다운로드했기 때문에 제 시스템의 cudart64 버전은 cudart64_110.dll이었습니다.

여기에 이미지 설명 입력

이것은 잘못된 파일입니다!!cudart64_101.dll≠ cudart64_110.dll

해결책

https://developer.nvidia.com/ 에서 Cuda 10.1 다운로드

설치(NSight Visual Studio Integration을 사용하여 충돌을 제거하므로 이 기능을 해제했습니다.)

여기에 이미지 설명 입력

설치가 완료되면 Cuda 10.1 폴더가 있어야 하며, 빈에는 시스템이 누락되었다고 불평하고 있었습니다.

여기에 이미지 설명 입력

라이브러리를 로드할 때 확인할 수 있도록 10.1 bin 폴더의 경로가 시스템 환경 변수로 등록되어 있는지 확인합니다.

여기에 이미지 설명 입력

시스템에서 경로를 즉시 픽업하지 않는 경우 재부팅이 필요할 수 있습니다.

여기에 이미지 설명 입력

conda이 제입니다.cudart64-100.dll:

  1. dll-files.com/CUDART64_100.DLL 에서 다운로드했습니다.

  2. 그것을 내 콘도 환경에 둬라.C:\Users\<user>\Anaconda3\envs\<env name>\Library\bin

그게 다야!작동하는지 다시 확인할 수 있습니다.

import tensorflow as tf
tf.config.experimental.list_physical_devices('GPU')

위의 오류가 표시되지만 실제로 CUDA 10이 설치되어 있는 경우 다음 답변이 도움이 될 수 있습니다.

pip install tensorflow-gpu==2.0.0

출력:

I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library cudart64_100.dll

그게 저를 위한 해결책이었습니다.

dll을 했습니다.C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.1\binC:\Windows\System32그것은 PyCharm에는 고정되었지만 아나콘다 주피터에는 고정되지 않았습니다.

[name: "/device:CPU:0" device_type: "CPU" memory_limit: 268435456 파일: {} 파일: 6812190123916921346, 파일: "/device: "GPU"locality { 1 GPU: 0" 바이스디_type: "GPU" 메리모컬_limit: 13429637120 로리{bus_id: 1
파일 { } 파일: 1802563334388307728 physical_device_device: "파일: 0, 파일: 버스 ]Quadro P5000, pci 파일 ID: 0000:02:00.0, 파일: 6.1" ]

Tensorflow 2.1은 Cuda 10.1과 함께 작동합니다.

빠른 해킹을 원하는 경우:

  • 다운로드 ㅠㅠㅠㅠㅠㅠㅠcudart64_101.dll여기서부터zip 파일의 압축을 풀고 복사합니다.cudart64_101.dll의 CUDA에게 ㅠㅠ CUDA에게.bin

기타:

  • Cuda 10.1 설치

솔루션은 저에게 효과가 있었습니다.

아나콘다로 환경을 사전 설치했습니다(코드는 다음과 같습니다).

conda create -n YOURENVNAME python=3.6 // 3.6> incompatible with keras
conda activate YOURENVNAME
conda install tensorflow-gpu
conda install -c anaconda keras
conda install -c anaconda scikit-learn
conda install matplotlib

하지만 내가 여전히 경고를 받은 후에.

2020-02-23 13:31:44.910213: W tensorflow/stream_executor/platform/default/dso_loader.cc:55] Could not load dynamic library 'cudart64_101.dll'; dlerror: cudart64_101.dll not found

2020-02-23 13:31:44.925815: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library cublas64_10.dll

2020-02-23 13:31:44.941384: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library cufft64_10.dll

2020-02-23 13:31:44.947427: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library curand64_10.dll

2020-02-23 13:31:44.965893: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library cusolver64_10.dll

2020-02-23 13:31:44.982990: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library cusparse64_10.dll

2020-02-23 13:31:44.990036: W tensorflow/stream_executor/platform/default/dso_loader.cc:55] Could not load dynamic library 'cudnn64_7.dll'; dlerror: cudnn64_7.dll not found

제가 첫 번째 경고를 해결한 방법: 저는 여기에서 모든 cudnn 파일(예를 들어, cudnn 파일)이 포함된 zip 파일을 다운로드합니다. https://developer.nvidia.com/cudnn

두 번째 경고 해결 방법: conda에서 생성한 가상 환경에서 마지막 누락 파일(cudart64_101.dll)을 찾아 .dll cudn보다 동일한 lib 폴더에 복사/붙여넣기만 했습니다.

Tensorflow GPU 2.2 및 2.3 야간

(CUDA Toolkit 11.0 RC 포함)

OP와 동일한 문제를 해결하려면 디스크에서 cudart64_101.dll(이 경우 C:\Program Files\NVIDIA Corporation\NvStreamSrv)을 찾아 변수 환경(즉, 추가 값 C:\Program Files\)으로 추가하기만 하면 되었습니다.NVIDIA\Corporation\NvStreamSrv)cudart64_101.dll에서 사용자의 환경 변수 경로).

CUDA Toolkit 11.0 RC 다운로드

이 문제를 해결하기 위해 디스크(C:\Program Files\NVIDIA Corporation\NvStreamSrv)에서 cudart64_101.dll을 찾아 값을 추가하는 변수 환경(C:\Program Files\)으로 추가합니다.NVIDIA\Corporation\NvStreamSrv)cudart64_101.dll에서 사용자의 환경 변수 경로).

이것은 당신이 실행하고 있는 파이썬의 버전 때문일 수도 있습니다. 저는 마이크로소프트 스토어에서 파이썬 3.7을 사용하고 있었는데 이 오류가 발생하여 파이썬 3.10으로 전환하여 수정했습니다.

NVIDIA 장치 드라이버를 최신(v446.14)으로 업데이트하여 문제를 해결할 수 있었습니다. NVIDIA 드라이버는 여기에서 링크를 다운로드합니다.

텐서플로 2.3을 설치하기 위해 pip & conda를 혼합할 때 이 문제에 부딪혔습니다.(콘다의 tensorflow 2.3 설치가 고장났을 때 pip을 사용하여 tensorflow 2.3 b/c를 설치하였습니다.)

저는 잘못된 버전의 cudatoolkit과 cudnn을 설치하게 되었습니다.

그 문제를 해결하기 위해, 저는 그냥 했습니다.conda install특정 버전의 쿠다 공구 키트 및 쿠다가 지정되었습니다.

함께 작동해야 하는 텐서플로, 쿠다 툴킷 및 쿠다 버전에 대한 정보는 https://www.tensorflow.org/install/source_windows?force_isolation=true#tested_build_configurations 을 참조하십시오.

이것은 단지W어닝앤ICUDA 라이브러리를 찾을 수 없다는 정보 메시지입니다.

NVIDIA GPU를 사용하는 경우 누락된 파일을 설치하는 방법을 참조할 수 있습니다.

NVIDIA GPU를 사용하지 않거나 단순히 무시하려는 경우I그리고.W메시지는 코드 시작 부분에 아래 두 줄을 추가할 수 있습니다.

import os
os.environ['TF_CPP_MIN_LOG_LEVEL'] = '2'

에 대해 자세히 볼 수 있습니다.TF_CPP_MIN_LOG_LEVELTensorFlow 로깅에서.

여기에 이미지 설명 입력

텐서보드에서 이 오류가 발생했습니다. GPU 드라이버를 업데이트한 후 발생했습니다. 제가 아나콘다를 사용한 이후로 CUDA를 설치하지 않은 cmd에서 텐서보드를 실행하고 있었습니다.when you install TensorFlow using anaconda all the required cuda and cudnn are downloaded for you 될 입니다.

여기에 이미지 설명 입력

해결책

방금 아나콘다에서 10개의 보드를 열었습니다.

1-또는 마지막 Cuda 툴킷을 다운로드하여 경로에 추가합니다.

https://developer.nvidia.com/cuda-toolkit-archive

그리고 이 2-를 사용합니다.conda install -c anaconda cudatoolkit

3회 후 PC를 다시 시작합니다.

저도 비슷한 문제에 직면했고 CUDA와 CUDNN 버전 불일치가 문제라는 것을 깨달았습니다.

올바른 버전은 여기를 참조하십시오.TensorFlow 2.4.0의 경우 아래 참조에서 CUDA 11.0 및 cuDNN 8.0을 사용하는 것이 좋습니다.

또는 적절한 CUDA를 위해 cuDNN을 다운로드하려면 여기를 참조하십시오.CUDA용 cuDNN

은 더간한방다링만것입다니드는크를음법은단▁called▁link다▁a니것▁a입라는 링크를 만드는 입니다.cudart64_101.dll가자면키를 cudart64_102.dll이것은 매우 정통적인 것은 아니지만 텐서플로가 찾고 있기 때문입니다.cudart64_101.dll내보낸 기호와 엔비디아 사람들은 아마추어가 아닙니다. 그들은 101부터 102까지의 기호를 제거하지 않을 가능성이 높습니다.이 가정에 근거하여 작동합니다(마일리지는 다양할 수 있습니다).

언급URL : https://stackoverflow.com/questions/59823283/could-not-load-dynamic-library-cudart64-101-dll-on-tensorflow-cpu-only-install

반응형