2012-04-14 12 views
1

Könnte jemand allgemein sagen, wie der gemeinsame Speicher der GPU von der Matlab-Parallel-Computing-Toolbox genutzt wird. Und kann ich es explizit zum Beispiel zum Synchronisieren von MPs verwenden.Wie kann der gemeinsame Speicher der GPU in Matlab verwendet werden?

BTW. Ich habe eine GTX 580, die 1,5 GB Speicher, 32 Kerne pro Multiprozessor (16 Kerne pro MP) und 64 Kb gemeinsamen (L1) Speicher hat.

Dank

Antwort

1

Ich weiß nicht, die Antwort für Matlab, aber wenn Sie bereit sind, in Python zu arbeiten, dann ist PyCUDA dein Freund. Sie entwickeln Kernel-Code direkt in CUDA-C, geschrieben in langen Strings in Python. Dann können Sie mit PyCUDA diese kompilieren, Gerätevariablen einrichten, Daten zum und vom Gerät senden und dann Ihren Kernel mit Startkonfigurationen zur Steuerung von Threads/Blöcken usw. ausführen. Um Shared Member zu verwenden, deklarieren Sie nur Variablen mit dem Schlüssel shared in Ihrem CUDA-C-Code als Python-String.

Ich schrieb einen Code für die Bildverarbeitung, die is linked here. Sie können es entpacken und sehen, wie ich die CUDA-C-Quellmodule als Python-Strings geschrieben habe. Mit NumPy und SciPy ist der Rest der Benutzererfahrung in Python Matlab äußerst ähnlich - einfach besser. Wenn Sie mit diesem Projekt in Matlab nicht verheiratet sind, sollten Sie es auf PyCUDA umstellen.

+0

Auch dachte ich nur, dass dies eine nützliche Seite war, die für einen Kommentar zu groß war. Da ich deine Matlab-Frage nicht beantwortet habe, verstehe ich vollkommen, ob du nicht nach oben abstimmen oder dies als Antwort akzeptieren willst. – ely

+0

Das erste Mal lese ich etwas Python-Code ... Beeindruckend, wie einfach es lesbar ist. Ich werde es versuchen, da ich etwas Freizeit habe. Danke – Maiss

1

Maiss,

Ich möchte für die GPU auf M-Code läuten - ich habe Jacke gefunden eine sinnvolle Alternative zu sein, um die GPU zugreifen. Jacket verwendet standardmäßig Shared Memory, um Dinge zu erledigen, und es hat ein SDK, wenn Sie die Dinge selbst steuern wollen.

Die GTX 580 ist eine großartige Karte, aber wenn Sie das Geld dafür haben, würde ich persönlich einige der Tesla GPUs für ihre Zuverlässigkeit auf lange Sicht empfehlen (besonders für lang laufende wissenschaftliche Anwendungen).

+0

Danke Vish, ich werde wahrscheinlich nächstes Jahr eins bekommen. Ich muss nur meinen Vorgesetzten überzeugen! – Maiss

+1

Ja, die GTX-Karten sind super zum Spielen;) Ich habe selbst eine. Aber nachdem ich eine GTX mit einer lang laufenden wissenschaftlichen Computeranwendung gebrannt hatte, lernte ich die Vorzüge eines Tesla. Noch einmal, meine persönliche Erfahrung - andere könnten eine andere Meinung haben. – Vish