일부 최신 TensorFlow 버전은 이전 CUDA 및 cuDNN 버전과 호환되지 않습니다. 호환되는 버전에 대한 개요 또는 공식적으로 테스트 된 조합 목록이 있습니까? TensorFlow 설명서에서 찾을 수 없습니다.
일부 최신 TensorFlow 버전은 이전 CUDA 및 cuDNN 버전과 호환되지 않습니다. 호환되는 버전에 대한 개요 또는 공식적으로 테스트 된 조합 목록이 있습니까? TensorFlow 설명서에서 찾을 수 없습니다.
답변:
CUDA 버전을 확인하십시오 :
cat /usr/local/cuda/version.txt
그리고 cuDNN 버전 :
grep CUDNN_MAJOR -A 2 /usr/local/cuda/include/cudnn.h
아래 이미지 또는 여기 에 주어진 조합을 설치 하십시오 .
다음 이미지와 링크는 Linux, macOS 및 Windows에서 공식적으로 지원되고 테스트 된 CUDA 및 TensorFlow 조합에 대한 개요를 제공합니다.
경우에 따라 아래의 지정된 사양이 너무 광범위 할 수 있으므로 다음과 같은 특정 구성이 작동합니다.
tensorflow-gpu==1.12.0
cuda==9.0
cuDNN==7.1.4
해당 cudnn은 여기에서 다운로드 할 수 있습니다 .
(2020 년 5 월 20 일에 업데이트 된 그림)
(2018 년 5 월 31 일에 업데이트 된 그림)
2020년 1월 14일의로 업데이트 : 참조하십시오 업데이트 된 정보는 Linux 용 링크 및 Windows 용 링크 .
tensorflow 사이트에 제공된 호환성 표 에는 cuda 및 cuDNN에 대한 특정 부 버전이 포함되어 있지 않습니다. 그러나 특정 버전이 충족되지 않으면 tensorflow를 사용하려고 할 때 오류가 발생합니다.
의 경우 tensorflow-gpu==1.12.0
와 cuda==9.0
는 호환 cuDNN
버전이 7.1.4
에서 다운로드 할 수있는 여기에 등록 후.
사용하여 cuda 버전을 확인할 수 있습니다
nvcc --version
사용하는 cuDNN 버전
cat /usr/include/cudnn.h | grep CUDNN_MAJOR -A 2
텐서 플로우 GPU 버전
pip freeze | grep tensorflow-gpu
업데이트 : tensorflow 2.0 이후 출시되었으므로 호환되는 cuda 및 cuDNN 버전도 공유합니다 (Ubuntu 18.04의 경우).
tensorflow-gpu
= 2.0.0cuda
= 10.0cuDNN
= 7.6.0cuda 10.0 (10.1은 3/18 현재 작동하지 않음)에 대해이 구성을 사용할 수 있습니다.
버전 tensorflow GPU를 설치하십시오.
pip install tensorflow-gpu==1.4.0
실수로 CUDA 10.1과 CUDNN 7.6을 설치했습니다. 다음 구성을 사용할 수 있습니다 (9/10 기준). :
그러나 tensorflow가 원래 CUDA 10에서 작동하기 때문에 작동하기 위해 심볼릭 링크를 만들어야했습니다.
sudo ln -s /opt/cuda/targets/x86_64-linux/lib/libcublas.so /opt/cuda/targets/x86_64-linux/lib/libcublas.so.10.0
sudo cp /usr/lib/x86_64-linux-gnu/libcublas.so.10 /usr/local/cuda-10.1/lib64/
sudo ln -s /usr/local/cuda-10.1/lib64/libcublas.so.10 /usr/local/cuda-10.1/lib64/libcublas.so.10.0
sudo ln -s /usr/local/cuda/targets/x86_64-linux/lib/libcusolver.so.10 /usr/local/cuda/lib64/libcusolver.so.10.0
sudo ln -s /usr/local/cuda/targets/x86_64-linux/lib/libcurand.so.10 /usr/local/cuda/lib64/libcurand.so.10.0
sudo ln -s /usr/local/cuda/targets/x86_64-linux/lib/libcufft.so.10 /usr/local/cuda/lib64/libcufft.so.10.0
sudo ln -s /usr/local/cuda/targets/x86_64-linux/lib/libcudart.so /usr/local/cuda/lib64/libcudart.so.10.0
sudo ln -s /usr/local/cuda/targets/x86_64-linux/lib/libcusparse.so.10 /usr/local/cuda/lib64/libcusparse.so.10.0
그리고 ~ ~ .bashrc에 다음을 추가하십시오-
export PATH=/usr/local/cuda/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH
export PATH=/usr/local/cuda-10.1/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda-10.1/lib64:$LD_LIBRARY_PATH
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/cuda/targets/x86_64-linux/lib/
TF 2.0으로 업그레이드 한 후 비슷한 문제가 발생했습니다. TF가보고 한 CUDA 버전은 내가 설치 한 Ubuntu 18.04와 일치하지 않습니다. CUDA 7.5.0을 사용하고 있다고 말했지만 적절한 버전이 설치되어 있다고 생각했습니다.
내가 결국해야 할 일을했을 것은 재귀 적으로 그렙이었다 /usr/local
에 대한 CUDNN_MAJOR
, 그리고 그 발견 /usr/local/cuda-10.0/targets/x86_64-linux/include/cudnn.h
참으로 버전을 지정 않았다 7.5.0
.
/usr/local/cuda-10.1
바로 그것을 가지고, 그리고 /usr/local/cuda
지적 /usr/local/cuda-10.1
이 TF는보고 이유를 나에게 신비 (유적과)이었다, 그래서 /usr/local/cuda-10.0
.
어쨌든, 나는 TF가 더 이상 그것을 찾을 수 없었고 모든 것이 매력처럼 작동하도록 막 옮겼 /usr/local/cuda-10.0
습니다 /usr/local/old-cuda-10.0
.
그것은 모두 매우 실망 스러웠으며, 나는 여전히 임의의 해킹을 한 것처럼 느낍니다. 그러나 그것은 효과가있었습니다 :) 아마도 비슷한 문제가있는 사람을 도울 것입니다.