2015-01-18 8 views
13

Die Frage bezieht sich auf eine bestimmte Kombination von Versionen, ist aber allgemeiner relevant.CUDA Version X beschwert sich über die Unterstützung der gcc Version Y - was zu tun ist?

Ich habe gerade von Kubuntu 12.04 bis 14.04 aktualisiert. Nun, wenn ich CUDA-Code kompilieren will (mit CUDA 6.5), erhalte ich:

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

Ich installierte gcc-4.8 (und 4.7), und versuchte, die Symlinks-in- /usr/local/cuda/bin Lösung zu verwenden hier vorgeschlagen:

CUDA incompatible with my gcc version

aber das funktioniert nicht. Was soll ich machen?

Antwort

19

Diese Lösung ist für mehrere Kombinationen von CUDA- und GCC-Versionen relevant.


Sie können CUDA Tells nvcc eine bestimmte Version von gcc zu verwenden. Also: Angenommen, Sie mit der Verwendung 4.7 wollen gcc CUDA 6. Sie führen:

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

und fügen Sie dann den folgenden Schalter auf Ihrem nvcc Befehlszeile:

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

Wenn Sie bauen mit CMake , eine entsprechende Einstellung hinzufügen, bevor für CUDA auf Ihre CMakeLists.txt suchen, zB:

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

auch es klirren scheint CUDA auch kompilieren kann, vielleicht ist es wert ex mit (obwohl Sie es angemessen bauen müssten).

Hinweis: Einige Linux-Distributionen (oder andere Betriebssysteme) haben keine Pakete für mehrere Versionen von gcc (in der gleichen Version der Betriebssystem-Distribution). Ich rate davon ab, ein Paket von einem anderen Release der Distribution auf einem älteren Release zu installieren, und erwäge stattdessen, gcc zu erstellen. Das ist nicht ganz trivial, aber es ist quite doable - und natürlich ist es Ihre einzige Option, wenn Sie keinen Root-Zugang zu Ihrem Rechner haben.

2

Zurück zu einer unterstützten Konfiguration. Sie werden im Dokument "Erste Schritte" für eine aktuelle CUDA-Verteilung aufgelistet.

Für Ihre spezielle Konfiguration, die Sie gerade aufgelistet haben, haben Sie möglicherweise mehr Glück mit CUDA 7 RC, die jetzt für registrierte Entwickler verfügbar ist.

+1

ich nicht gcc 4.9 von meinem System entfernen kann, oder die Distribution für etwas so gering wie diese Herabstufung ... – einpoklum

+1

bis 7 geschaltet, die wirklich gut funktioniert und es hat Unterstützung für 4.9. Allerdings müssen Sie möglicherweise auf Ubuntu 14.10 aktualisieren. Es hat auch C++ 11, was großartig ist. – flip

1

Sehr oft werden Sie feststellen, dass CUDA newer releases hatte, wenn dieses Problem auftritt. Zum Beispiel war die ursprüngliche Formulierung der Frage über CUDA 6 und GCC 4.9; CUDA 7 unterstützt GCC 4.9. CUDA 8 unterstützt GCC 5.x. Und so weiter.

+0

Ich habe Cuda7.5 und habe den gleichen Fehler wie Frage für Caffe! –

+0

Ziemlich unwahrscheinlich. Vielleicht haben Sie einen ähnlichen Fehler für eine neuere Version von gcc? CUDA 7.5 unterstützt gcc 4.9, aber nicht gcc 5.x – einpoklum

+0

Nun, ich hatte GCC 5.x und versuchte zu sagen, ich habe den gleichen Fehler –

1

Ich hatte ein ähnliches Problem mit CUDA Toolkit 7.5 und gcc 5.2.1.

Ich habe die host_config.h Datei in /usr/local/cuda/include/ ändern:

einfach die Linien entfernen, wo sie die gcc-Version überprüfen. Es hat mein Problem gelöst.

Credits geht an Darren Garvey (https://groups.google.com/forum/#!topic/torch7/WaNmWZqMnzw)

+0

Es gab keine Nebenwirkungen, die Sie gesehen haben, oder? –

+0

Ich habe nichts bemerkt. Alles scheint gut zu funktionieren – Conchylicultor

+0

@Conchylicultor: Es gibt mehrere bekannte Inkompatibilitäten zwischen CUDA 7.x und GCC 5.x. Es wäre unklug, die Versionsprüfung zu entfernen. – einpoklum