[Seminararbeit] - Cuda, per Netzwerk auf GPU zugreifen ?

derfreak

Commander
Registriert
Nov. 2006
Beiträge
2.421
Hallo Forengemeinde ;)

Ich studiere aktuell im vierten Semester Informatik und will im Rahmen eines Seminars einen Algorithmus für Anamorphismen mittels CUDA programmieren. Die Uni bietet uns die Möglichkeit im CIP-Pool an einem Rechner zu arbeiten, aber ich würde das Ganze gerne von zu Hause aus machen. (Da ich regelmäßig am Wochenende nach Hause fahre wäre es für mich sehr umständlich)

Leider hat weder mein Desktop-PC noch mein Uni-Notebook eine Nvidia-GPU verbaut. Allerdings verfügen meine Eltern über eine nvidia 9800GT mit CUDA Unterstützung die ich für den Algorithmus verwenden könnte.

Letztes Wochenende habe ich diese Karte parallel zu meiner 7970 in meinen Desktop-PC geschraubt und CUDA eingerichtet (der PC meiner Eltern hat eine ausreichende Onboard-GPU). Am Wochenende könnte ich so also bereits am Algorithmus schrauben. - Aber eben nur am Wochenende, womit ich eigentlich auch keinen Blumentopf gewonnen hab...

Meine Idee :
Ich packe die 9800GT zurück in den Rechner meiner Eltern, richte dort CUDA ein und greife dann übers Netzwerk (lokal bzw per Internet vom Wohnheim aus) auf die GPU zu. Dabei würde ich Visual Studio 2010 (von der Uni gibts jede Version, weiß gerade nicht welche ich installiert habe) mit Nsight benutzen.

Meine Frage :
Kann ich überhaupt so wie gewollt auf die GPU zugreifen ? Wenn ja, wie ?
(zumindest in großen Clustern bei Supercomputern wird ja auch per Netzwerk kommuniziert)

Würde mich über Antworten freuen ! Leider habe ich per google selbst nichts wirklich eindeutiges gefunden. :)
 
Du kannst dein Binary auf die Festplattes des PCs deiner Eltern kopieren und dort ausführen. Direkt via Netzwerk drauf zugreifen geht nicht. Also no-ip.org + Ultravnc oder Teamviewer oder ein VPN, etc.

Erlaubt das Seminar kein OpenCL? oder DirectCompute?
 
Wir sind im Seminar 8 Leute. Für OpenCL hatten sich schon zu viele entschieden - daher Cuda, sonst hätte ich natürlich OpenCl genutzt. Ah ok, wenn das nicht geht dann werd ich am We wie vorgeschlagen VNC einrichten, danke ;)

dyndns läuft aktuell eh schon :P
 
was spricht ( wenn bandbriete daheim vorhanden) denn dein system daheim so zu lassen und mit Wake on LAN +DYNDNS einen remotezugriff auf deinem rechner daheim zu arbeiten ?
 
Die Frage ist eher, ob du mit einer G92 basierten Karte auf dem technischen Stand von Ende 2006 glücklich wirst. Diese unterstützt nur Compute Capability 1.0 und damit im Vergleich zu aktuellen 3.x GPUs einen sehr eingeschränkten Funktionsumfang.
 
Mehr als ein paar Matrixoperationen werden für die Aufgabe wohl nicht benötigt, meinst du das würde zu sehr einschränken ?
Ich habe bisher noch nichts mit CUDA geschrieben ^^

@Chesterfield
Die Kiste daheim würde im Idle 120watt schlucken - daher wollte ich erst davon absehen.
Andererseits könnten meine Eltern durch vnc bei ihrer Arbeit unterbrochen werden - evtl also besser den eigenen PC zu nutzen bei dem die 9800gt sowieso schon drin is und mit wakeonlan wäre der Strom wohl auch kein Problem mehr.
 
Es gibt auch - beschränkte - Emulationsmöglichkeiten, siehe z.B. mal hier:
http://hpcden.blogspot.co.at/2012/06/how-to-run-cuda-in-emulation-mode.html
Da es dir ja mal ums lernen von CUDA geht, sollte die Performance ja nicht vorrangig sein.

Aber zum Abschluss wird nichts um eine Plattform mit einer echten Nvidia GPU rumführen.

Wennst remote Zugriff auf den Rechner deiner Eltern hast: Schau auch dass du auch remote-Zugriff auf einen Finger deinen Eltern hast, um für den Fall der Fälle eines abgestürzten Grafiktreibers / zusammengeschossenen Systems den Reset-knopf physikalisch drücken zu können ;).
 
Ein Tipp dazu meinerseits:
Implementiere den GPU-Code in CUDA nicht einfach so, wie du eben peinlich parallelen CPU-Code programmieren würdest, sondern mache dir über folgendes Gedanken: Wie kannst du das so Programmieren, dass deine Lösung auf die Eigenheiten der GPU-Architektur eingeht, so dass du diese zu deinen Vorteil ausnutzt bzw. durch sie keinen Nachteil erleidest.

Hier lohnt es sich dann explizit die Eigenschaften deiner Compute Capability (1.1) in der Dokumentation durchzulesen ( docs.nvidia.com/cuda/cuda-c-programming-guide/index.html ), denn bei diesen gibt es immer grössere und kleinere Unterschiede, welche unterschiedliche Optimierungsansätze erlauben. Hierbei ist es dann wieder fraglich, falls der Lehrstuhl Interesse an deinen Seminarergebnissen hat, er auch mit Optimierungen für eine komplett veraltete GPU-Architektur zufrieden ist.
 
Zurück
Oben