어떤 TensorFlow 및 CUDA 버전 조합이 호환됩니까?


145

일부 최신 TensorFlow 버전은 이전 CUDA 및 cuDNN 버전과 호환되지 않습니다. 호환되는 버전에 대한 개요 또는 공식적으로 테스트 된 조합 목록이 있습니까? TensorFlow 설명서에서 찾을 수 없습니다.


1
모든 요구 사항은 " GPU를 지원하는 TensorFlow를 실행 하기위한 NVIDIA 요구 사항 "섹션의 설치 지침 과 함께 제공됩니다 .
P-Gn

10
문제는 호환성 및 (공식적으로) 테스트 된 조합을 다루는 것으로, 설치 지침에는 제공되지 않습니다. 또한 귀하가 언급 한 섹션을 찾을 수 없습니다. 이러한 관찰 결과는 요청 된 정보를 찾기가 어렵다는 전반적인 견해를 보여 주므로 답변에 게시 된 링크에 쉽게 액세스 할 수 있습니다.
Fábio

언급 한 페이지의 CUDA 및 cuDNN 버전이 설치 지침 중 하나와 일치 함을 알 수 있습니다.
P-Gn

설치 지시 사항을 찾으려면 위에서 링크 한 페이지로 이동 한 후 OS 링크를 따르십시오.
P-Gn

1
오, 무슨 말인지 알 겠어요. 특정 CUDA / cuDNN 조합에 맞는 텐서 플로우 버전을 확인하려고합니다. TF의 릴리스 노트를 찾아 볼 수는 있지만 실제로 연결 한 테이블은 좋은 요약입니다.
P-Gn

답변:


212

일반적으로:

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 일에 업데이트 된 그림)

리눅스 GPU

여기에 이미지 설명을 입력하십시오

리눅스

여기에 이미지 설명을 입력하십시오

macOS GPU

여기에 이미지 설명을 입력하십시오

맥 OS

여기에 이미지 설명을 입력하십시오

(2018 년 5 월 31 일에 업데이트 된 그림)

윈도우

여기에 이미지 설명을 입력하십시오

2020년 1월 14일의로 업데이트 : 참조하십시오 업데이트 된 정보는 Linux 용 링크Windows 용 링크 .


1
TensorFlow 버전 <1.0이 개요에서 제외되었음을 알았습니다. 누군가 이전 버전의 동일한 목록을 찾을 위치를 알고 있습니까?
Fábio

2
그들은 cuda와 cudnn에 대한 부 버전을 지정하지 않는 것 같습니다
mrgloom

1
UPDATE : 테스트 TF-GPU 1.12, 윈도우 10, CUDA 9.0, CuDNN 7.3.1, 파이썬 3.6.6
mjaniec

1
그림을 업데이트하지 말고 설명서에 연결하십시오. 링크는 테이블보다 자주 변경되지 않습니다
Trylks

1
@ Fábio : 요청에 따라 최신 링크로 답변을 업데이트했습니다.
Tensorflow 지원

23

tensorflow 사이트에 제공된 호환성 표 에는 cuda 및 cuDNN에 대한 특정 부 버전이 포함되어 있지 않습니다. 그러나 특정 버전이 충족되지 않으면 tensorflow를 사용하려고 할 때 오류가 발생합니다.

의 경우 tensorflow-gpu==1.12.0cuda==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.0
  • cuda = 10.0
  • cuDNN = 7.6.0

1
당신의 대답은 매우 유용했습니다. 당신이 말했듯이 문서가 부 버전을 불러내는 것이 명확하지 않았습니다. 나는 당신의 구성을 따르고 효과가있었습니다!
Vikrame

2

jupyter 노트북에서 코딩 중이고 어떤 cuda 버전 tf가 사용 중인지 확인하려면 follow 명령을 jupyter 셀로 직접 실행하십시오.

!conda list cudatoolkit

!conda list cudnn

GPU가 tf에 표시되는지 확인하십시오.

tf.test.is_gpu_available(
    cuda_only=False, min_cuda_compute_capability=None
)

1

cuda 10.0 (10.1은 3/18 현재 작동하지 않음)에 대해이 구성을 사용할 수 있습니다.

  • 텐서 플로우> = 1.12.0
  • tensorflow_gpu> = 1.4

버전 tensorflow GPU를 설치하십시오.

pip install tensorflow-gpu==1.4.0

1

실수로 CUDA 10.1과 CUDNN 7.6을 설치했습니다. 다음 구성을 사용할 수 있습니다 (9/10 기준). :

  • 텐서 플로우 GPU == 1.14.0
  • CUDA 10.1
  • CUDNN 7.6
  • 우분투 18.04

그러나 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/

0

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.

그것은 모두 매우 실망 스러웠으며, 나는 여전히 임의의 해킹을 한 것처럼 느낍니다. 그러나 그것은 효과가있었습니다 :) 아마도 비슷한 문제가있는 사람을 도울 것입니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.