it-swarm.com.de

CUDA-Version X beschwert sich darüber, dass die gcc-Version Y nicht unterstützt wird - was tun?

Die Frage bezieht sich auf eine bestimmte Kombination von Versionen, ist jedoch allgemeiner relevant.

Ich habe gerade ein Upgrade von Kubuntu 12.04 auf 14.04 durchgeführt. Wenn ich jetzt CUDA-Code kompilieren möchte (mit CUDA 6.5), erhalte ich:

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

Ich habe gcc-4.8 (und 4.7) installiert und versucht, die hier vorgeschlagene symlinks-in -/usr/local/cuda/bin-Lösung zu verwenden:

CUDA inkompatibel mit meiner GCC-Version

aber das geht nicht. Was soll ich machen?

13
einpoklum

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


Sie können CUDAs nvcc anweisen, eine bestimmte Version von gcc zu verwenden. Nehmen wir an, Sie möchten mit CUDA 6 gcc 4.7 verwenden. Sie führen Folgendes aus:

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

und fügen Sie der nvcc-Befehlszeile den folgenden Schalter hinzu:

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

Wenn Sie mit CMake bauen, fügen Sie eine geeignete Einstellung hinzu, bevor Sie in Ihrem CMakeLists.txt nach CUDA suchen, z.

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

Es scheint auch, dass Clang auch CUDA kompilieren kann, vielleicht lohnt es sich, damit zu experimentieren (obwohl Sie es entsprechend bauen müssten).

Hinweis: Einige Linux- (oder andere Betriebssystem-) Distributionen enthalten keine Pakete für mehrere Versionen von gcc (in derselben Version der Betriebssystemdistribution). Ich würde davon abraten, zu versuchen, ein Paket aus einer anderen Version der Distribution in einer älteren Version zu installieren, und würde stattdessen die Erstellung von gcc in Betracht ziehen. Das ist nicht ganz unbedeutend, aber es ist durchaus machbar - und natürlich ist es Ihre einzige Option, wenn Sie keinen Root-Zugriff auf Ihren Computer haben.

19
einpoklum

Wechseln Sie wieder zu einer unterstützten Konfiguration. Sie sind im Getting Started-Dokument für alle kürzlich erschienenen CUDA-Distributionen aufgeführt. 

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

2
Robert Crovella

Sehr oft werden Sie feststellen, dass CUDA neuere Versionen hatte, als Sie auf dieses Problem stießen. Die ursprüngliche Formulierung der Frage bezog sich zum Beispiel auf CUDA 6 und GCC 4.9; CUDA 7 unterstützt GCC 4.9. CUDA 8 unterstützt GCC 5.x. Und so weiter.

1
einpoklum

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/ geändert:

Entfernen Sie einfach die Zeilen, in denen die gcc-Version überprüft wird. Es hat mein Problem gelöst.

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

1
Conchylicultor