Ich habe den Molekulardynamik (MD) Code GROMACS ausgeführt auf einem Ubuntu-Linux-Cluster ausgeführt, der aus Knoten mit 24 Intel Xeon-CPUs besteht. Mein besonderes Interesse hat sich als etwas empfindlich für die arithmetische Gleitkommapräzision erwiesen, daher musste ich GROMACS mit doppelter Genauigkeit anstatt mit einfacher Genauigkeit ausführen - trotz des höheren Rechenaufwands von doppelter Genauigkeit. Also habe ich auf dem Cluster GROMACS in doppelter Genauigkeit kompiliert.
Ich erwäge, einige GPUs zu kaufen, da es zu einer Beschleunigung ("GPU-Beschleunigung") von CPUs kommen kann. Ich benötige jedoch eine GPU, mit der ich doppelt präzise rechnen kann. Wissen Sie, ob solche Hardware im Handel erhältlich ist? Ein kürzlich veröffentlichter Beitrag auf der GROMACS-Mailingliste schlägt vor, dass GPUs mit doppelter Genauigkeit nicht im Handel erhältlich sind:
Die Hardware unterstützt AFAIK noch nicht.
Diese Wikipedia-Seite scheint darauf hinzudeuten, dass GPUs mit doppelter Genauigkeit ungewöhnlich sind, da sie möglicherweise ineffizient sind:
Die Implementierungen von Fließkommazahlen auf Nvidia-GPUs sind größtenteils IEEE-konform. Dies gilt jedoch nicht für alle Anbieter. Dies hat Auswirkungen auf die Richtigkeit, die für einige wissenschaftliche Anwendungen als wichtig angesehen werden. 64-Bit-Gleitkommawerte (Double Precision Float) sind auf CPUs häufig verfügbar, werden jedoch auf GPUs nicht allgemein unterstützt. Einige GPU-Architekturen opfern die IEEE-Konformität, während andere keine doppelte Genauigkeit aufweisen. Es wurde versucht, Gleitkommawerte mit doppelter Genauigkeit auf GPUs zu emulieren. Der Geschwindigkeits-Kompromiss macht jedoch den Vorteil zunichte, dass die Berechnung in erster Linie auf die GPU verlagert wird.
Auf dieser NVIDIA Tesla-Seite wird in Bezug auf die "Gleitkomma-Spitzenleistung mit doppelter Genauigkeit" im Diagramm anscheinend darauf hingewiesen, dass Berechnungen mit doppelter Genauigkeit tatsächlich mit den GPUs durchgeführt werden können (wenn auch mit höheren Rechenkosten).
Also, was soll ich glauben? Haben Sie Erfahrungen mit diesem Problem?
quelle
Antworten:
Doppelte Präzision ist bei neueren GPUs ziemlich verbreitet. Zum Beispiel besitze ich eine NVIDIA GTX560 Ti (ziemlich einfach, wenn es ums Rechnen geht), bei der es kein Problem gibt, ViennaCL mit doppelter Genauigkeit auszuführen. Ab hier (Abschnitt 4) scheinen alle NVIDIA-Karten ab GTX4xx die doppelte Genauigkeit nativ zu unterstützen.
Ich würde vermuten, dass die GROMACS-Informationen einfach veraltet sind.
quelle
Jede GPU mit SM 1.3 (Tesla / GTX2xx) oder besser unterstützt Hardware mit doppelter Genauigkeit. Ausgehend von der Fermi-Architektur bieten Quadro- und Tesla-Varianten eine bessere Unterstützung mit doppelter Genauigkeit als Ge Force-Modelle für Endverbraucher.
Was seltsam ist, ist, dass die Unterstützung von Ge Force Kepler / GTX6xx mit doppelter Präzision der Unterstützung von GeForce Fermi / GTX5xx unterlegen ist, um die Tesla-Differenzierung in Kepler K20 / K20x zu verbessern. Tesla K10s sind mit doppelter Präzision auf Ge Force-Niveau ausgestattet. Und in jüngster Zeit wurde dies durch die Einführung der Ge Force GTX Titan, die die doppelte Genauigkeit unterstützt und viele CUDA-Funktionen bietet, die bisher nur für Tesla-Modelle verfügbar waren, völlig durcheinander gebracht. Ein GTX-Titan kostet etwa 1.000 US-Dollar - ein schreiendes Schnäppchen, IMO.
quelle
Sie sollten auch den Follow-up-Beitrag aus der GROMACS-Mailingliste lesen: http://lists.gromacs.org/pipermail/gmx-users/2013-April/080604.html . Ob die GPU-Implementierung im MD die Verwendung von Double Precision in vergleichbarem Umfang unterstützt oder nicht, ist mindestens genauso wichtig wie die Verfügbarkeit von Double Precision auf der Hardware.
quelle
Gemäß dieser Diskussion eignen sich Tesla- und Titan-GPUs am besten für doppelte Präzision (unter den Nvidia-GPUs).
Betrachtet man beispielsweise eine Liste von Nvidia-GPUs auf Wikipedia (eine ähnliche Tabelle für AMD-GPUs finden Sie hier ) und vergleicht man die Verarbeitungsleistung mit einfacher und doppelter Genauigkeit (in Bezug auf GFLOPs), so stellt man fest, dass die Leistung mit doppelter Genauigkeit viel geringer ist als die Hälfte der einfachen Genauigkeit Leistung für die meisten anderen GPUs. Beispielsweise wird in dem Artikel für die GTX 900-Serie erwähnt, dass die Leistung mit doppelter Präzision 1/32 der Leistung mit einfacher Präzision beträgt , während in diesem Wikipedia-Artikel angegeben ist , dass für die GTX 700-Serie die Leistung mit doppelter Präzision 1/24 der einfachen Präzision beträgt Leistung (mit Ausnahme von Titan, wo es bis zu 1/3 der Einzelpräzisionsleistung betragen kann).
quelle