Hangi TensorFlow ve CUDA sürüm kombinasyonları uyumludur?


146

Bazı yeni TensorFlow sürümlerinin eski CUDA ve cuDNN sürümleriyle uyumlu olmadığını fark ettim. Uyumlu sürümlere genel bakış veya resmi olarak test edilmiş kombinasyonların bir listesi var mı? TensorFlow belgelerinde bulamıyorum.


1
Tüm gereksinimler, " TensorFlow'u GPU desteği ile çalıştırmak için NVIDIA gereksinimleri " adlı kurulum talimatları ile birlikte verilmektedir .
P-Gn

10
Soru, benim görüşüme göre kurulum talimatlarında bulunmayan uyumluluk ve (resmi olarak) test edilmiş kombinasyonları ele almaktı. Ayrıca, bahsettiğiniz bölümü bulamıyorum. Bu gözlemler, istenen bilgilerin bulunmasının zor olduğuna dair genel görüşümle sonuçlanır ve bu nedenle yanıtta yayınlanan bağlantıya kolay erişim sağlamayı haklı çıkarır.
Fábio

Bahsettiğiniz sayfadaki CUDA ve cuDNN sürümlerinin kurulum talimatlarından biriyle eşleştiğini göreceksiniz.
P-Gn

Yükleme talimatlarını bulmak için yukarıda bağladığım sayfaya gidin ve işletim sisteminizin bağlantısını izleyin.
P-Gn

1
Ne demek istediğini anlıyorum - hangi tensorflow versiyonunun belirli bir CUDA / cuDNN kombinasyonuna uyduğunu görmeye çalışmak. TF'nin sürüm notlarına göz atabilirsiniz, ancak bağlantı verdiğiniz tablo gerçekten iyi bir özettir.
P-Gn

Yanıtlar:


213

Genellikle:

CUDA sürümünü kontrol edin:

cat /usr/local/cuda/version.txt

ve cuDNN sürümü:

grep CUDNN_MAJOR -A 2 /usr/local/cuda/include/cudnn.h

ve resimlerde veya buraya aşağıda verilen şekilde bir kombinasyon kurun .

Aşağıdaki resimler ve bağlantı, Linux, macOS ve Windows üzerinde resmi olarak desteklenen / test edilmiş CUDA ve TensorFlow kombinasyonlarına genel bir bakış sunmaktadır:

Küçük konfigürasyonlar:

Bazı durumlarda aşağıdaki verilen özellikler çok geniş olabileceğinden, çalışan belirli bir yapılandırma aşağıdadır:

  • tensorflow-gpu==1.12.0
  • cuda==9.0
  • cuDNN==7.1.4

İlgili cudnn indirilebilir burada .

(rakamlar 20 Mayıs 2020'de güncellendi)

Linux GPU

resim açıklamasını buraya girin

Linux

resim açıklamasını buraya girin

macOS GPU

resim açıklamasını buraya girin

Mac os işletim sistemi

resim açıklamasını buraya girin

(şekil 31 Mayıs 2018'de güncellendi)

pencereler

resim açıklamasını buraya girin

14 Ocak 2020 itibarıyla güncellendi: bakınız güncel bilgi için Linux için Linki ve Windows için Bağlantı .


1
TensorFlow <1.0 sürümlerinin genel bakıştan hariç tutulduğunu fark ettim. Birinin eski sürümler için aynı listeyi nerede bulabileceği hakkında bir fikri var mı?
Fábio

2
Görünüşe göre cuda ve cudnn için küçük sürümler belirtmiyorlar,
mrgloom

1
GÜNCELLEME: test TF-GPU 1.12, Windows 10, CUDA 9.0, CuDNN 7.3.1, Python 3.6.6
mjaniec

1
Rakamları güncellemeyin, belgelere bağlantı verin. Bağlantı tablolardan daha az değişir
Trylks

1
@ Fábio: Cevabınızı isteğinize göre Son Bağlantılarla güncelleyin.
Tensorflow Destek

23

Tensorflow sitesinde verilen uyumluluk tablosu , cuda ve cuDNN için belirli küçük sürümleri içermemektedir. Ancak, belirli sürümler karşılanmazsa, tensorflow'u kullanmaya çalıştığınızda bir hata oluşur.

İçin tensorflow-gpu==1.12.0ve cuda==9.0uyumlu cuDNNsürümüdür 7.1.4, indirilebilir hangi burada kayıttan sonra.

Cuda sürümünüzü kullanarak kontrol edebilirsiniz.
nvcc --version

cuDNN sürümü
cat /usr/include/cudnn.h | grep CUDNN_MAJOR -A 2

kullanarak tensorflow-gpu sürümü
pip freeze | grep tensorflow-gpu

GÜNCELLEME: tensorflow 2.0 yayınlandığından, uyumlu cuda ve cuDNN sürümlerini de paylaşacağım (Ubuntu 18.04 için).

  • tensorflow-gpu = 2.0.0
  • cuda = 10.0
  • cuDNN = 7.6.0

1
Cevabınız çok faydalı oldu. Dediğiniz gibi, belgelerin küçük sürümleri çağırmak çok açık değildi. Yapılandırmanızı takip ettim ve işe yaradı!
Vikrame

2

jupyter not defterinde kodluyorsanız ve hangi cuda sürüm tf'nin kullanıldığını kontrol etmek istiyorsanız, aşağıdaki komutu doğrudan jupyter hücresine çalıştırın:

!conda list cudatoolkit

!conda list cudnn

ve gpu'nun tf tarafından görülebilir olup olmadığını kontrol etmek için:

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


1

Yanlışlıkla CUDA 10.1 ve CUDNN 7.6'yı yükledim. Aşağıdaki yapılandırmaları kullanabilirsiniz (Bu benim için çalıştı - 9/10 itibariyle). :

  • Tensorflow-gpu == 1.14.0
  • CUDA 10.1
  • CUDNN 7.6
  • Ubuntu 18.04

Ama tensorflow başlangıçta CUDA 10 ile çalıştığı için semboller oluşturmak zorunda kaldım.

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

Ve aşağıdaki ~ / .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'a yükselttikten sonra benzer bir sorun yaşadım. TF'nin bildirdiği CUDA sürümü, Ubuntu 18.04'ün yüklediğimi düşündüğüyle eşleşmedi. CUDA 7.5.0 kullandığımı söyledi, ancak doğru sürümü yüklediğimi düşündüm.

Ne Sonunda yapmak zorunda yinelemeli grep oldu /usr/localiçin CUDNN_MAJORve bunu buldum /usr/local/cuda-10.0/targets/x86_64-linux/include/cudnn.hgerçekten olarak versiyonunu belirtmek vermedi 7.5.0.
/usr/local/cuda-10.1doğru anladım ve /usr/local/cudaişaret etti /usr/local/cuda-10.1, bu yüzden TF'nin neden baktığı bir gizemdi (ve kalıyor) /usr/local/cuda-10.0.

Her neyse, sadece taşındı /usr/local/cuda-10.0için /usr/local/old-cuda-10.0TF bir daha ve her şey daha sonra bir cazibe gibi çalıştı bulamadık böylece.

Her şey çok sinir bozucuydu ve hala rastgele bir saldırı yaptığımı hissediyorum. Ama işe yaradı :) ve belki de bu benzer bir sorunu olan birine yardımcı olacaktır.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.