Saya perhatikan bahwa beberapa versi TensorFlow yang lebih baru tidak kompatibel dengan versi CUDA dan cuDNN yang lebih lama. Apakah ada gambaran umum tentang versi yang kompatibel atau bahkan daftar kombinasi yang diuji secara resmi? Saya tidak bisa menemukannya di dokumentasi TensorFlow.
170
Jawaban:
TL; DR ) Lihat tabel ini: https://www.tensorflow.org/install/source#gpu
Umumnya:
Periksa versi CUDA:
dan versi cuDNN:
grep CUDNN_MAJOR -A 2 /usr/local/cuda/include/cudnn.h
dan pasang kombinasi seperti yang diberikan di bawah ini pada gambar atau di sini .
Gambar dan tautan berikut memberikan ikhtisar tentang kombinasi CUDA dan TensorFlow yang didukung / teruji secara resmi di Linux, macOS, dan Windows:
Konfigurasi kecil:
Karena spesifikasi yang diberikan di bawah dalam beberapa kasus mungkin terlalu luas, berikut adalah satu konfigurasi khusus yang berfungsi:
tensorflow-gpu==1.12.0
cuda==9.0
cuDNN==7.1.4
Hasil yang sesuai dapat diunduh di sini .
Konfigurasi build yang diuji
Silakan merujuk ke https://www.tensorflow.org/install/source#gpu untuk grafik kompatibilitas terbaru (untuk roda TF resmi).
(angka diperbarui 20 Mei 2020)
GPU Linux
Linux
macOS GPU
macOS
(angka diperbarui 31 Mei 2018)
Windows
Diperbarui pada 14 Jan 2020: Untuk informasi terbaru, silakan lihat Tautan untuk Linux dan Tautan untuk Windows .
sumber
Tabel kompatibilitas yang diberikan di situs tensorflow tidak berisi versi minor tertentu untuk cuda dan cuDNN. Namun, jika versi tertentu tidak terpenuhi, akan ada kesalahan saat Anda mencoba menggunakan tensorflow.
Untuk
tensorflow-gpu==1.12.0
dancuda==9.0
,cuDNN
versi yang kompatibel7.1.4
, yang dapat diunduh dari sini setelah pendaftaran.Anda dapat memeriksa versi cuda Anda menggunakan
nvcc --version
versi cuDNN menggunakan
cat /usr/include/cudnn.h | grep CUDNN_MAJOR -A 2
versi tensorflow-gpu menggunakan
pip freeze | grep tensorflow-gpu
UPDATE: Sejak tensorflow 2.0, telah dirilis, saya akan membagikan versi cuda dan cuDNN yang kompatibel untuk itu juga (untuk Ubuntu 18.04).
tensorflow-gpu
= 2.0.0cuda
= 10.0cuDNN
= 7.6.0sumber
Anda dapat menggunakan konfigurasi ini untuk cuda 10.0 (10.1 tidak berfungsi pada 3/18), ini berjalan untuk saya:
Instal versi tensorflow gpu:
pip install tensorflow-gpu==1.4.0
sumber
jika Anda melakukan coding di notebook jupyter, dan ingin memeriksa versi cuda mana yang digunakan tf, jalankan perintah follow langsung ke sel jupyter:
dan untuk memeriksa apakah gpu terlihat oleh tf:
tf.test.is_gpu_available( cuda_only=False, min_cuda_compute_capability=None )
sumber
Saya telah menginstal CUDA 10.1 dan CUDNN 7.6 karena kesalahan. Anda dapat menggunakan konfigurasi berikut (Ini berhasil untuk saya - mulai 9/10). :
Tetapi saya harus membuat symlink agar berfungsi karena tensorflow awalnya berfungsi dengan 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
Dan tambahkan yang berikut ini ke ~ / .bashrc saya -
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/
sumber
nvidia-docker
lapisan perangkat lunak dapat mengatasi masalah kombinasi cuda-tf yang tidak kompatibel. Menjelaskan bagaimana Anda menemukan lib mana yang perlu dirutekan ulang dengan symlink juga akan bagus.Saya mengalami masalah serupa setelah memutakhirkan ke TF 2.0. Versi CUDA yang dilaporkan TF tidak sesuai dengan apa yang menurut Ubuntu 18.04 telah saya instal. Dikatakan saya menggunakan CUDA 7.5.0, tetapi saya pikir saya telah menginstal versi yang benar.
Apa yang akhirnya harus saya lakukan adalah grep secara rekursif di
/usr/local
untukCUDNN_MAJOR
, dan saya menemukan bahwa/usr/local/cuda-10.0/targets/x86_64-linux/include/cudnn.h
memang menentukan versinya sebagai7.5.0
./usr/local/cuda-10.1
melakukannya dengan benar, dan/usr/local/cuda
menunjuk ke/usr/local/cuda-10.1
, jadi itu (dan tetap) menjadi misteri bagi saya mengapa TF melihatnya/usr/local/cuda-10.0
.Anyway, saya baru saja pindah
/usr/local/cuda-10.0
ke/usr/local/old-cuda-10.0
sehingga TF tidak bisa menemukannya lagi dan semuanya kemudian bekerja seperti pesona.Itu semua sangat membuat frustrasi, dan saya masih merasa seperti saya baru saja melakukan peretasan acak. Tapi itu berhasil :) dan mungkin ini akan membantu seseorang dengan masalah serupa.
sumber