Unterstützen derzeit verfügbare GPUs Gleitkomma-Arithmetik mit doppelter Genauigkeit?

17

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?

Andrew
quelle
check out the gtx titan es basiert auf gk110 und hat doppelte pricision unterstützung ..... obwohl es etwas teuer ist ..... um $ 1k
Wikipedia hat nicht immer aktuelle Informationen zu sich schnell ändernden Themen ...
Jeff

Antworten:

17

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.

Godric Seher
quelle
5
Sehr veraltet. Insbesondere NVIDIA-Prozessoren werden seit Jahren mit doppelter Genauigkeit unterstützt. Ehrlich gesagt war es deutlich langsamer als die Funktion mit einfacher Genauigkeit, aber es war in den allerersten GPUs der Marke Tesla vorhanden (und nicht nur emuliert), und wahrscheinlich davor. Neuere Inkarnationen haben die Lücke zwischen Signal- und Double-Precision-Unterstützung erheblich verkleinert.
Michael Grant
Ja, das Papier, das ich erwähnt habe, zeigt einen Leistungsunterschied von ungefähr dem Faktor 8, als die Emulation benötigt wurde, aber jetzt, da die Chips dafür entworfen wurden, ist es näher an einem Faktor 2. Ich würde sagen, dass dies wahrscheinlich an liegt Latenz des Kartenspeichers vom VRAM zu den Prozessoren, aber das ist nur eine Vermutung von meiner Seite.
Godric Seer
Eigentlich war der Hauptgrund, dass frühere GPUs einfach nicht viel Platz für doppelt genaue Berechnungen zur Verfügung stellten. Laut dieser Seite verfügt die GK110-Serie über achtmal so viele Einheiten mit doppelter Genauigkeit pro "SMX-Block" (was auch immer das bedeutet) wie die GK104-Serie.
Michael Grant
1
Ah ja, ich bezog mich tatsächlich auf den 2-fachen Unterschied der aktuellen GPUs in Bezug auf den Kommentar zur Speicherbandbreite.
Godric Seer
Erwischt. Ich wollte nicht dieses Kaninchenloch hinuntergehen. Ihre Antwort ist in Ordnung, weshalb ich Sie kommentiert und abgestimmt habe, anstatt meine eigene Antwort hinzuzufügen ;-)
Michael Grant
8

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
2

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.

Abraham
quelle
0

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).

Andre Holzner
quelle