staging.inyokaproject.org

Archiv/Nvidia_CUDA_installieren

Status: Gelöst | Ubuntu-Version: Nicht spezifiziert
Antworten |
Dieses Thema ist die Diskussion des Artikels Archiv/Nvidia_CUDA_installieren.

sanmiguel9

Anmeldungsdatum:
26. Mai 2008

Beiträge: 149

Hallo Wiki-Team,

ich habe mich gestern richtig über Nvidia geärgert, da es überhaupt nicht einfach ist, CUDA und das passende SDK zu installieren. Nach zig mal irgendwelche Pfade anzupassen, habe ich das ganze jetzt in einem Wiki-Artikel zusammengefasst. Hoffentlich bin ich somit der letzte der x-Stunden rumgewurstelt hat 😀

Ich bitte um euer Feedback. Ich habe dem Artikel ansonsten nichts mehr hinzuzufügen.

Gruss sanmiguel9

PS: übrigens würde ich mich auch freuen wenn der einte oder andere bestätigen kann, dass es auch bei ihm funktioniert ☺

realzippy

Anmeldungsdatum:
5. Mai 2009

Beiträge: 3137

Zwar kein Wiki Team, aber danke für den Artikel, war mir auch schon negativ aufgefallen, dass es ihn nicht gab. 👍 . Spontane Fragen:

  • Nvidia links sind tot

  • Tatsächlich in die bashrc schreiben, oder lieber bei Bedarf LIBRARY_PATH laden ?

  • ..was speziell bei Optimus sinnvoll ist, nicht jede cuda app braucht einen Xserver, d.h. ohne "optirun" Zugriff auf Nvidia GPU

Gruß, zippy

sanmiguel9

(Themenstarter)

Anmeldungsdatum:
26. Mai 2008

Beiträge: 149

Vielen Danke, Links sind ausgebessert.

Ich bin kein Entwickler und verstehe leider zu wenig was der Unterschied ist von

  • LD_LIBRARY_PATH in .bashrc

  • jedesmal vor dem Kompilieren ins Terminal schreiben

export LD_LIBRARY_PATH=...

  • Pfade in /etc/ld.so.conf.d

Mein Punkt ist hier, dass nicht nur /usr/local/cuda/lib* wie von Nvidia erklärt sondern auch /usr/lib*/nvidia-current geschrieben werden müssen. Es stellt sich für mich auch die Frage, wie die Fälle für 32/64bit behandelt werden. Zwei Anweisungen? Für 32bit schreib das, für 64bit dies? Und wie sieht es mit LD_LIBRARY_PATH vs LIBRARY_PATH aus? Nvidia schreibt immer LD_LIBRARY_PATH, aber im Netz findet man auch LIBRARY_PATH für diese CUDA Geschichte... 😕

Und wie sieht es mit PATH aus? Kann das problemlos in .bashrc bleiben?

Bezüglich Optimus, könntest Du mir bitte kurz erklären an was für Fälle Du denkst? Ich habe hier bumblebee 3.0 am laufen, ist dann meine nvidia Karte nicht immer aus, wenn keine optirun-Anwendung läuft? Ich bin noch nicht so mit nvidia/optimus/cuda etc. vertraut.

realzippy

Anmeldungsdatum:
5. Mai 2009

Beiträge: 3137

Startbeispiel von "transpose" auf Optimus Lappy. "optirun" startet ja auch einen 2.Xserver zur Bildausgabe, den man ja wohl in den wenigsten Fällen für cuda apps braucht.

Wenn die Pfade in der bashrc oder gar in /etc/ld.so.conf.d/* stehen, haben sie halt Priorität gegenüber Systempfaden, entweder sytemweit oder auf die bash bezogen; was man ja nicht immer unbedingt will. Stattdessen sollte man vielleicht eher empfehlen, die 3 Zeilen vor dem Start einer Cuda Anwendung auszuführen.

Bin auch absolut ahnungslos, mal sehen was die Nerds sagen.

sanmiguel9

(Themenstarter)

Anmeldungsdatum:
26. Mai 2008

Beiträge: 149

Off-topic:

interessant, wusste nicht das mit CUDA die Graka auch ohne optirun nutzbar ist. Tönt gut, so kann z.B. Darktable etc. die brachliegende Graka nutzen, aber die Intel HD kümmert sich um den Monitor. Allerdings ergibt

1
LD_LIBRARY_PATH=/usr/lib/nvidia-current /home/me/NVIDIA_GPU_Computing_SDK/C/bin/linux/release/transpose 

und ähnliche Varianten bei mir immer

1
transpose.cu(184) : CUDA Runtime API error 38: no CUDA-capable device is detected.

Nur wenn ich in einem 2. Terminal optirun gedit mache geht es. Ansonsten stellt bumblebee wahrscheinlich den Strom ab... Naja, ich warte mal ab und eröffne dann einen neuen Thread 😉

noisefloor Team-Icon

Anmeldungsdatum:
6. Juni 2006

Beiträge: 29567

Hallo,

habe ein paar Kleinigkeiten korrigiert, ansonsten IMHO ok - also aus Wiki-Sicht. Inhaltlich kann ich auch nicht viel beitragen 😉

Gruß, noisefloor

realzippy

Anmeldungsdatum:
5. Mai 2009

Beiträge: 3137

sanmiguel9 schrieb:

Off-topic:

interessant, wusste nicht das mit CUDA die Graka auch ohne optirun nutzbar ist. Tönt gut, so kann z.B. Darktable etc. die brachliegende Graka nutzen, aber die Intel HD kümmert sich um den Monitor. Allerdings ergibt

1
LD_LIBRARY_PATH=/usr/lib/nvidia-current /home/me/NVIDIA_GPU_Computing_SDK/C/bin/linux/release/transpose 

und ähnliche Varianten bei mir immer

1
transpose.cu(184) : CUDA Runtime API error 38: no CUDA-capable device is detected.

Nur wenn ich in einem 2. Terminal optirun gedit mache geht es. Ansonsten stellt bumblebee wahrscheinlich den Strom ab... Naja, ich warte mal ab und eröffne dann einen neuen Thread 😉

Ja klar stellt bbee den Strom ab, genauer bbswitch. Aber stell ihn doch an, statt optirun gedit oder sowas 😉 :

Status:

1
cat /proc/acpi/bbswitch

GPU anschalten (root!)

1
echo ON >> /proc/acpi/bbswitch

"OFF" um die GPU wieder abzuschalten; nicht vergessen, einige (sehr) wenige Lappys sollten nicht mit abgeschalteter GPU heruntergefahren werden.

Edit:
Ist auch nicht offtopic, solange Du im Wikiartikel Anweisung zum Cuda Start auf Optimus gibst...

frustschieber Team-Icon

Ehemalige
Avatar von frustschieber

Anmeldungsdatum:
4. Januar 2007

Beiträge: 4259

Hallo, wie ist hier der Stand der Dinge? Fertig? Gruss

realzippy

Anmeldungsdatum:
5. Mai 2009

Beiträge: 3137

Argh, hatte ich fast vergessen. Aber gut, eben mal Cuda kompiliert auf 11.10. Funktioniert, Anleitung ist korrekt. Vielen Dank an sanmiguel9 ! Gleich "getestet" Tag für Oneiric hinzugefügt, denke, ihr könnt das Ding verschieben.

Wollte das dann mal eben auch für 12.10 testen, funktioniert, zumindest, so nicht...gcc und c++ sind zu neu, Versionen 4.4 müßen zusätzlich installiert und gesymlinkt werden. Aber selbst dann gibt es diverse Kompilierfehler, nicht alle Cuda Beispiele werden erfolgreich gebaut. Keine Lust, dem weiter auf den Grund zu gehen, Nvidia wird sicherlich das Toolkit irgendwann dahingehend anpassen.

Gruß, zippy

frustschieber Team-Icon

Ehemalige
Avatar von frustschieber

Anmeldungsdatum:
4. Januar 2007

Beiträge: 4259

Verschoben, nach Grafikkarten (Abschnitt „Sonstiges“) verküpft mit Dank an den Autor sanmiguel9

realzippy

Anmeldungsdatum:
5. Mai 2009

Beiträge: 3137

Nach erfolgreicher Installation ist es nötig folgende Zeilen

1
2
3
export PATH=${PATH}:/usr/local/cuda/bin
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda/lib:/usr/local/cuda/lib64
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/lib/nvidia-current:/usr/lib32/nvidia-current

in die Datei ~/.bashrc im Homeverzeichnis zu schreiben.

Hier gibt es ein Problem. Auf Hybridmaschinen (Nvidia Optimus) zerstören die Path exports die Intel Hardwarebeschleunigung. Sollten wir darauf hinweisen, oder Artikel dahingehend ändern, dass man die exports nur lädt, bevor man eine CUDAapp ausführt?

Gruß, zippy

noisefloor Team-Icon

Anmeldungsdatum:
6. Juni 2006

Beiträge: 29567

Hallo,

IMHO beides.

Gruß, noisefloor

realzippy

Anmeldungsdatum:
5. Mai 2009

Beiträge: 3137

Genau genommen ist es nur:

1
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/lib/nvidia-current:/usr/lib32/nvidia-current

Ist es denn generell überhaupt empfehlenswert, sich sowas in die .bashrc zu schreiben, es sei denn, man weiß was man tut/ob der Nebenwirkungen? Halte den Aufruf bei Bedarf (CUDAapp) für Leute, die zur CUDA Installation das Wiki benötigen, einerseits für sinnvoller, andererseits ist es natürlich praktischer für reine nvidia Systeme, die wohl deutlich überwiegen.

Gruß, zippy

Vorschlag:

So lassen, + Hinweisbox: Achtung, Optimus, bla.

Edit:
so getan. Bitte ggfs anpassen.

noisefloor Team-Icon

Anmeldungsdatum:
6. Juni 2006

Beiträge: 29567

Hallo,

Syntax korrigiert.

Gruß, noisefloor

realzippy

Anmeldungsdatum:
5. Mai 2009

Beiträge: 3137

Hallo, mir fällt gerade auf, dass der Artikel durch die Wikisuche nicht gefunden wird, vielleicht ein paar Links anlegen (CUDA, Cuda, cuda).
Niemand sucht nach: "Nvidia_CUDA_installieren".

Gruß, zippy

Antworten |