2016-06-28 12 views
1

Ich versuche, Fackel 7 oder Caffe mit cuddn5 Unterstützung mit Cuda 7.5 auf Manjaro Linux zu bauen.Wie man zwischen gcc-Versionen wechselt, um fackel7 oder caffe mit cudnn 5 acceleration (cuda 7.5) auf manjaro linux zu bauen?

Sowohl gcc 6.1 als auch gcc 4.9 sind verfügbar. gcc 6.1 ist inkompatibel mit cuda 7.5, was zu Fehlern beim Aufbau von Fackel7 und Caffe mit Unterstützung von cudd 5 führt.

gcc4.9 von AUR-Repository installiert wurde:

[email protected] ~]$ whereis gcc-4.9 
gcc-4: /usr/bin/gcc-4.9 
[[email protected] ~]$ whereis g++-4.9 
g++-4: /usr/bin/g++-4.9 
[[email protected] ~]$ whereis g++ 
g++: /usr/bin/g++ /usr/share/man/man1/g++.1.gz 
[[email protected] ~]$ whereis gcc 
gcc: /usr/bin/gcc /usr/lib/gcc /usr/share/man/man1/gcc.1.gz /usr/share/info/gcc.info.gz 

Die Idee war von gcc6.1 zu wechseln vor der Kompilierung gcc4.9 mit:

[email protected] ~]$ export CC=/usr/bin/gcc-4.9 
[[email protected] ~]$ export CXX=/usr/bin/g++-4.9 

Aber wenn gcc invoqued ist, das ist immer noch die Version 6.1:

[[email protected] ~]$ gcc --version 
gcc (GCC) 6.1.1 20160602 

Bashrc so dass geändert wurde:

$ echo $LD_LIBRARY_PATH 
:/opt/cuda/lib64: 

Wie vorübergehend auf gcc 4.9 transparent wechseln (ohne das Makefile oder das Skript install.sh von Caffe und Fackel7 zu ändern)?

+0

Der Exportbefehl 'export CC = gcc-4.9 CXX = g ++ - 4.9' ändert gcc/g ++ nicht. Aber funktioniert mit ./configure: 'export CC = gcc-4.9 CXX = g ++ - 4.9 && ./configure' Und ein" CC/CXX-Befehl "kann mit einigen Makefiles verwendet werden, wie:' make CXX = g ++ - 4.9 '. –

+0

AFAIK Caffe unterstützt nicht alles über CuDNN 3. –

+0

"Optionale Abhängigkeiten: OpenCV> = 2.4 einschließlich 3.0 IO-Bibliotheken: LMDB, LevelDB (Anmerkung: LevelDB erfordert bissig) cuDNN für GPU-Beschleunigung (v5)" –

Antwort

2

Wenn Sie keine Dateien ändern möchten, können dieser Hack verwendet werden:

cd /usr/bin/ 
mv gcc gcc-6.1-back 
mv g++ g++-6.1-back 
ln -s gcc-4.9 gcc 
ln -s g++-4.9 g++ 

... Dann etc, es ist ziemlich einfach zu „6.1“ .... löschen Sie die Links zurückkehren gcc-Versionen/etc/Alternativen.


Wenn Manjaro hat den/etc/alternativen/Mechanismus, Sie "install" beide können /, wie dieses Java-Beispiel When and Why run alternatives --install java jar javac javaws on installing jdk in linux .... und Switch-Version mit einem einzigen Befehl , + eine Einstellung.

+0

leider Alternative ist auf debian/ubuntu verfügbar –

+0

Zumindest ist Fackel7 gebaut. Theano, wenn von einem Testskript (http://deeplearning.net/software/theano/tutorial/using_gpu.html#gpuararray) aufgerufen, im CPU-Modus ausgeführt ... –

+0

Gibt es eine Möglichkeit, diese Aufgabe ohne Root-Zugriff zu tun ..? Ich arbeite auf einem Remote-Server, auf den ich keinen Root-Zugriff habe. –