Frage

Ich habe zur Lösung große linear Gleichungs auf GPU ATI Stream SDK Cholesky-Faktorisierung implementiert. Jetzt möchte ich Rechenleistung von mehr und mehr GPUs nutzen, und ich möchte diesen Code auf mehrere GPUs ausgeführt werden.

Zur Zeit habe ich eine Maschine und eine GPU darauf installiert und cholesky Faktorisierung richtig läuft. Ich möchte es für N-Maschine tun, und alles, was man GPU auf ihnen installiert haben. Deshalb schlägt mich, wie soll ich vorgehen.

War es hilfreich?

Lösung

Als erstes müssen Sie sich bewusst sein, dass dieser Ansatz drei Ebenen der Latenz für die Kommunikation zwischen den Knoten einführen wird:

  1. GPU-Speicher auf der Maschine 1 in dem Hauptspeicher auf der Maschine 1
  2. Der Hauptspeicher auf Maschine 1 in dem Hauptspeicher auf der Maschine 2
  3. Der Hauptspeicher auf der Maschine 2 zu GPU-Speicher auf der Maschine 2

Ein guter erster Schritt wird sein, eine Rückseite der umhüllen Berechnungen zu tun, um zu bestimmen, ob die Geschwindigkeit bis Ihnen durch Spaltung gewinnt das Problem zwischen mehreren Rechnern werden die Latenz aufwiegen vorstellen.

Wenn Sie sicher sind, dass der Ansatz ist, die Sie folgen wollen, dann ist es ziemlich viel an Ihnen, diese korrekt zu implementieren. Beachten Sie, dass derzeit NVIDIAs CUDA oder OpenCL-Bibliotheken für Sie bessere Entscheidungen, weil sie Ihnen erlauben, die GPU zur Berechnung zugreifen, ohne dass es mit einer X-Sitzung gekoppelt. Sobald ATI OpenCL Implementierung der GPU unterstützt, dann sollte dies auch ein gangbarer Weg sein.

Da Sie bereits eine funktionierende GPU Implementierung haben, hier sind die grundlegenden Schritte, die Sie folgen müssen:

  • Sie fest, wie Sie Ihre Faktorisierung Algorithmus zur Unterstützung der Verarbeitung durch getrennte Knoten aktualisieren
  • der Datenaustausch zwischen N-Computer einrichten (Ich stelle fest, Sie haben für MPI für dieses)
  • Stellen Sie die Streuoperation auf, der das Eingangsproblem unter den Rechenknoten
  • wird dividieren
  • Stellen Sie den Datenaustausch zwischen einer Maschine und seiner GPU
  • Richten Sie die Operation zu sammeln, die die Ergebnisse von den Knoten in den einen sammeln node

Andere Tipps

Es ist eine sehr spezialisierte Frage. Schlagen Sie überprüfen Sie die Stream-Ressourcen für Entwickler und die Stream-Entwicklerforen .

zeigte ich diesen Q an einen Kollegen von mir, über diese Dinge weiß. Er schlug vor, Sie verwenden Scalapack.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top