कौन सा TensorFlow और CUDA संस्करण संयोजन संगत हैं?


146

मैंने देखा है कि कुछ नए TensorFlow संस्करण पुराने CUDA और cuDNN संस्करणों के साथ असंगत हैं। क्या संगत संस्करणों का अवलोकन या यहां तक ​​कि आधिकारिक रूप से परीक्षण किए गए संयोजनों की सूची मौजूद है? मैं इसे TensorFlow प्रलेखन में नहीं पा सकता।


1
सभी आवश्यकताओं को स्थापना के निर्देश के साथ दिया गया है , अनुभाग " GPU की सहायता से TensorFlow चलाने के लिए NVIDIA की आवश्यकताएं " कहा जाता है ।
पी-जीएन

10
प्रश्न संगतता को संबोधित कर रहा था और (आधिकारिक तौर पर) परीक्षण किए गए संयोजन, जो मेरे विचार में, स्थापना के निर्देशों में प्रदान नहीं किए गए हैं। इसके अलावा, मुझे वह अनुभाग नहीं मिल रहा है जिसका आप उल्लेख कर रहे हैं। इन टिप्पणियों के परिणामस्वरूप मेरा समग्र दृष्टिकोण यह है कि मांगी गई जानकारी को ढूंढना मुश्किल है और इसलिए जवाब में पोस्ट की गई लिंक तक आसान पहुंच प्रदान करना उचित है।
फैबियो

आप पाएंगे कि आपके द्वारा उल्लेखित पृष्ठ पर CUDA और cuDNN संस्करण अधिष्ठापन निर्देशों में से एक से मेल खाते हैं।
पी-जीएन

इंस्टॉलेशन निर्देशों को खोजने के लिए, मैं ऊपर दिए गए पृष्ठ पर जाएं, फिर अपने ओएस के लिए लिंक का पालन करें।
पी-जीएन

1
ओह, मैं देख रहा हूं कि आपका क्या मतलब है - यह देखने की कोशिश कर रहा है कि कौन सा टेंसरफ्लो संस्करण किसी विशेष CUDA / cuDNN संयोजन पर फिट बैठता है। आप TF के रिलीज़ नोट ब्राउज़ कर सकते हैं लेकिन आपके द्वारा लिंक की गई तालिका वास्तव में एक अच्छा सारांश है।
पी-जीएन

जवाबों:


213

आम तौर पर:

CUDA संस्करण की जाँच करें:

cat /usr/local/cuda/version.txt

और cuDNN संस्करण:

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

और चित्रों में या यहाँ नीचे दिए अनुसार एक संयोजन स्थापित करें

निम्नलिखित चित्र और लिंक लिनक्स, मैकओएस और विंडोज पर CUDA और TensorFlow के आधिकारिक तौर पर समर्थित / परीक्षण किए गए संयोजनों का अवलोकन प्रदान करते हैं:

लघु विन्यास:

चूंकि कुछ मामलों में नीचे दिए गए विनिर्देश बहुत व्यापक हो सकते हैं, यहां एक विशिष्ट कॉन्फ़िगरेशन है जो काम करता है:

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

संबंधित cudnn को यहां डाउनलोड किया जा सकता है

(आंकड़े 20 मई, 2020 को अपडेट किए गए)

लिनक्स जीपीयू

यहाँ छवि विवरण दर्ज करें

लिनक्स

यहाँ छवि विवरण दर्ज करें

macOS जीपीयू

यहाँ छवि विवरण दर्ज करें

मैक ओ एस

यहाँ छवि विवरण दर्ज करें

(आंकड़ा 31 मई, 2018 को अपडेट किया गया)

खिड़कियाँ

यहाँ छवि विवरण दर्ज करें

14 जनवरी 2020 तक अपडेट किया गया: अद्यतन जानकारी के लिए कृपया लिनक्स के लिए लिंक और विंडोज के लिए लिंक देखें ।


1
मैंने नोटिस किया था कि TensorFlow संस्करणों <1.0 को अवलोकन से बाहर रखा गया है। क्या किसी को एक विचार है कि पुराने संस्करणों के लिए समान सूची कहां मिलेगी?
फैबियो

2
ऐसा लगता है कि वे cuda और cudnn के लिए मामूली संस्करण निर्दिष्ट नहीं करते हैं,
mrgloom

1
अद्यतन: TF-GPU 1.12, विंडोज 10, CUDA 9.0, CuDNN 7.3.1, पायथन
3.6.6

1
आंकड़े अपडेट न करें, दस्तावेज़ से लिंक करें। लिंक तालिकाओं की तुलना में कम बार बदलता है
Trylks

1
@ Fábio: आपके अनुरोध के अनुसार नवीनतम लिंक के साथ अपना उत्तर अपडेट करें।
Tensorflow Support

23

टेनसफ़्लो साइट में दी गई संगतता तालिका में cuda और cuDNN के लिए विशिष्ट लघु संस्करण नहीं हैं। हालाँकि, यदि विशिष्ट संस्करण नहीं मिले हैं, तो जब आप टेंसरफ़्लो का उपयोग करने का प्रयास करते हैं तो एक त्रुटि होगी।

के लिए tensorflow-gpu==1.12.0और cuda==9.0, संगत cuDNNसंस्करण है 7.1.4, से डाउनलोड किया जा सकता है, जो यहाँ पंजीकरण के बाद।

आप अपने क्यूडा संस्करण का उपयोग करके जांच कर सकते हैं
nvcc --version

cuDNN संस्करण का उपयोग कर
cat /usr/include/cudnn.h | grep CUDNN_MAJOR -A 2

उपयोग करते हुए टेंसरफ़्लो-जीपीयू संस्करण
pip freeze | grep tensorflow-gpu

अद्यतन: चूंकि टेंसरफ़्लो 2.0 जारी किया गया है, मैं इसके लिए संगत क्यूडा और cuDNN संस्करणों को (साथ ही उबुन्टु 18.04 के लिए) साझा करूँगा।

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

1
आपका उत्तर बहुत उपयोगी था। जैसा कि आपने कहा कि मामूली संस्करणों को कॉल करने के लिए प्रलेखन बहुत स्पष्ट नहीं था। मैंने आपके कॉन्फ़िगरेशन का पालन किया और यह काम कर गया!
विक्रमी

2

यदि आप ज्यूपिटर नोटबुक में कोडिंग कर रहे हैं, और यह जांचना चाहते हैं कि कौन सा क्यूडा संस्करण tf उपयोग कर रहा है, तो सीधे 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 के रूप में काम नहीं करता है), यह मेरे लिए चलता है:

  • tensorflow> = 1.12.0
  • tensorflow_gpu> = 1.4

संस्करण टेंसरफ़्लो gpu स्थापित करें:

pip install tensorflow-gpu==1.4.0

1

मैंने CUDA 10.1 और CUDNN 7.6 को गलती से स्थापित किया था। आप निम्नलिखित विन्यास का उपयोग कर सकते हैं (यह मेरे लिए काम किया - 9/10 के रूप में)। :

  • टेन्सरफ्लो-जीपीयू == 1.14.0
  • CUDA 10.1
  • CUDNN 7.6
  • उबुन्टु 18.04

लेकिन मुझे इसके लिए सहानुभूति पैदा करनी थी क्योंकि टेंसरफ्लो के रूप में काम करने के लिए मूल रूप से 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 में अपग्रेड करने के बाद भी ऐसी ही समस्या थी। CUDA संस्करण जो कि TF रिपोर्ट कर रहा था, वह उस मिलान से मेल नहीं खाता जो 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

वैसे भी, मैं सिर्फ इसलिए टीएफ /usr/local/cuda-10.0को ले गया , /usr/local/old-cuda-10.0इसे कोई और नहीं मिला और सब कुछ फिर एक आकर्षण की तरह काम किया।

यह सब बहुत निराशाजनक था, और मुझे अभी भी लगता है जैसे मैंने एक यादृच्छिक हैक किया था। लेकिन इसने काम किया :) और शायद यह इसी तरह के मुद्दे के साथ किसी को मदद करेगा।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.