2015-01-18 9 views
13

प्रश्न संस्करणों के एक विशिष्ट संयोजन के बारे में है लेकिन आमतौर पर प्रासंगिक है।CUDA संस्करण एक्स जीसीसी संस्करण वाई का समर्थन नहीं करने के बारे में शिकायत करता है - क्या करना है?

मैंने कुबंटू 12.04 से 14.04 तक बस अपग्रेड किया है। अब, जब मैं (CUDA 6.5 के साथ) CUDA कोड संकलित करने के लिए चाहता हूँ, मुझे मिलती है:

#error -- unsupported GNU version! gcc 4.9 and up are not supported! 

मैं स्थापित जीसीसी-4.8 (और 4.7), और सिमलिंक-in- /usr/local/cuda/bin यहाँ समाधान सुझाव का उपयोग करने की कोशिश की:

CUDA incompatible with my gcc version

लेकिन यह काम नहीं करता है। मुझे क्या करना चाहिए?

उत्तर

19

यह समाधान सीयूडीए और जीसीसी संस्करणों के कई संयोजनों के लिए प्रासंगिक है।


आप जीसीसी के विशेष संस्करण का उपयोग करने के CUDA के nvcc बता सकते हैं।

sudo apt-get install gcc-4.7 g++-4.7 

और फिर अपने nvcc कमांड लाइन के लिए निम्न स्विच जोड़ें::

nvcc --compiler-bindir /usr/bin/gcc-4.7 # rest of the command line here 

आप CMake के साथ बना रहे हैं यदि हां, तो आप जीसीसी CUDA 6. साथ प्रयोग के लिए 4.7 आप चलाना चाहते हैं लगता है , अपने CMakeLists.txt को CUDA की तलाश से पहले एक उपयुक्त सेटिंग जोड़ने के लिए, उदाहरण के लिए:

set(CUDA_HOST_COMPILER /usr/bin/gcc-4.7) # -> ADD THIS LINE <- 
find_package(CUDA) 

इसके अलावा, यह बजना रूप में अच्छी तरह CUDA संकलन कर सकते हैं लगता है, हो सकता है कि पूर्व के लायक है इसके साथ परेशान (हालांकि आपको इसे उचित रूप से बनाना होगा)।

नोट: कुछ लिनक्स (या अन्य ओएस) वितरण में जीसीसी के कई संस्करणों (ओएस वितरण की एक ही रिलीज में) के लिए पैकेज नहीं हैं। मैं पुरानी रिलीज पर वितरण की दूसरी रिलीज से पैकेज स्थापित करने की कोशिश करने के खिलाफ सलाह दूंगा, और इसके बजाए जीसीसी बनाने पर विचार करें। यह पूरी तरह से तुच्छ नहीं है लेकिन यह quite doable है - और निश्चित रूप से, यह आपके एकमात्र विकल्प है यदि आपके पास अपनी मशीन पर रूट पहुंच नहीं है।

2

एक समर्थित कॉन्फ़िगरेशन पर वापस स्विच करें। वे किसी भी हालिया CUDA वितरण के लिए प्रारंभिक दस्तावेज़ में सूचीबद्ध हैं।

वर्तमान में सूचीबद्ध आपके विशेष कॉन्फ़िगरेशन के लिए, आपको CUDA 7 आरसी के साथ बेहतर भाग्य हो सकता है, जो अब पंजीकृत डेवलपर्स के लिए उपलब्ध है।

+1

मैं अपने सिस्टम से जीसीसी 4.9 नहीं निकाल सकते हैं, या इस के रूप में के रूप में मामूली कुछ ... – einpoklum

+1

के लिए distro मैं 7 पर स्विच किया जो वास्तव में अच्छी तरह से काम कर रहा है डाउनग्रेड और इसमें 4.9 के लिए समर्थन है। यद्यपि आपको उबंटू 14.10 में अपडेट करने की आवश्यकता हो सकती है। इसके अलावा इसमें सी ++ 11 है जो बहुत अच्छा है। – flip

1

अक्सर आप पाएंगे कि जब आप इस समस्या का सामना करते हैं तो CUDA के पास newer releases था। उदाहरण के लिए, प्रश्न का मूल निर्माण CUDA 6 और जीसीसी 4.9 के बारे में था; सीयूडीए 7 ने जीसीसी 4.9 का समर्थन किया। CUDA 8 जीसीसी 5.x का समर्थन करता है। और इसी तरह।

+0

मेरे पास Cuda7.5 है और कैफी के लिए सवाल के समान त्रुटि मिली है! –

+0

काफी संभावना नहीं है। शायद आपको जीसीसी के नए संस्करण के लिए एक ही त्रुटि मिली है? CUDA 7.5 जीसीसी 4.9 का समर्थन करता है, लेकिन जीसीसी 5.x – einpoklum

+0

का समर्थन नहीं करता है, ठीक है, मेरे पास जीसीसी 5.x था और यह कहने की कोशिश कर रहा था कि मेरे पास एक ही त्रुटि है –

1

मुझे CUDA टूलकिट 7.5 और जीसीसी 5.2.1 के साथ एक समान समस्या थी।

बस लाइनों जहां यह जीसीसी संस्करण की जांच निकालें:

मैं /usr/local/cuda/include/ में host_config.h फ़ाइल को संशोधित किया है। यह मेरी समस्या का समाधान किया।

क्रेडिट डैरेन गर्वे को जाता है (https://groups.google.com/forum/#!topic/torch7/WaNmWZqMnzw)

+0

कोई भी पक्ष प्रभावित नहीं हुआ था जिसे आपने ऐसा करने से देखा था, वहां थे? –

+0

मैंने कुछ भी नहीं देखा। सब कुछ ठीक काम कर रहा है – Conchylicultor

+0

@Conchylicultor: CUDA 7.x और GCC 5.x के बीच कई ज्ञात असंगतताएं हैं। संस्करण जांच को हटाने के लिए मूर्खतापूर्ण होगा। – einpoklum

संबंधित मुद्दे