2012-08-24 12 views
6

Ein Elektrotechniker warnte mich kürzlich vor der Verwendung von GPUs für wissenschaftliche Berechnungen (z. B. wo Genauigkeit wirklich wichtig ist) auf der Grundlage, dass es keine Hardware-Sicherheitsmaßnahmen wie in einer CPU gibt. Ist das wahr, und wenn ja, wie häufig/wesentlich ist das Problem bei typischer Hardware?Genauigkeit der GPU für wissenschaftliche Berechnungen

+0

ja ... das ist richtig ... all diese massiven Rechencluster gebaut mit GPUs sind völlig nutzlos und im Wesentlichen nur Zufallszahlengeneratoren. Die gesamte Hardware unterliegt zufälligen Fehlern - ein einzelnes hochenergetisches Photon, das durch ein radioaktives Zerfallsereignis in einem Keramikgehäuse emittiert wird, kann Bits irgendwo in der CPU umdrehen und das System vollständig zerstören ... oder auch nicht. –

+0

@MarcB Ich bin kein Verschwörungstheoretiker! Siehe die Links in meiner Antwort unten für eine Illustration der vergangenen Probleme. Ich möchte im Grunde wissen, ob diese in neueren Hardware angemessen behoben wurden. –

Antwort

9

Tatsächlich passen moderne GPUs hervorragend für das wissenschaftliche Rechnen, und viele HPC-Anwendungen werden zumindest teilweise für GPUs portiert, um Leistung und Energieeffizienz zu gewährleisten. Im Gegensatz zu älteren GPUs bieten die modernen (z. B. NVIDIAs Fermi- oder Kepler-Architekturen) vollständig standardisierte IEEE-754-Formate für einfache und doppelte Genauigkeit, so dass Sie diese genauso verwenden können wie auf einer modernen CPU .

3

Ich habe ein paar (ältere) Papiere dazu gefunden, aber es scheint, dass das Problem in Karten mit Rechenfähigkeiten> = 2.0 behoben wurde.

Aktuelle GPUs unterstützt nicht mit doppelter Genauigkeit Berechnung und ihre einfachgenaue Unterstützung beschönigt wichtige Aspekte des IEEE-754 Floating-Point-Standard [1], wie als korrekt gerundet Ergebnisse und ordnungsgemäße Schließung des Zahlensystems. ... Unsere Ergebnisse zeigen, dass es schwerwiegende Fehler mit den Ergebnissen der GPUs in bestimmten Rand Fällen gibt, zusätzlich zu der falschen Behandlung von denormalized Zahlen.

  • Karl E. Hilles und Anselmo Lastra, "GPU Gleitkommatypen Paranoia." In Proc. GP2, August 2004.

  • GPUBench Test: Precision.

  • Guillaume Da Graca und David Defour, "Implementierung von float-Float-Betreiber auf Grafiken Hardware." In Proc. 7. Konferenz Reelle Zahlen und Computern, Juli 2006.

  • Wikipedia's CUDA limitations section

mit doppelter Genauigkeit (CUDA Rechenkapazität 1.3 und höher) [14] abweichen von dem IEEE 754-Standard: Rund-um-zu -nearest-even ist der einzige unterstützte Rundungsmodus für Reziprokwert, Division und Quadratwurzel. In einfache Genauigkeit, Denormals und Signalisierungs-NaNs werden nicht unterstützt; werden nur zwei IEEE-Rundungsmodi unterstützt (chop und run-to-nearest even), und diese werden pro Anweisung anstelle von in einem Steuerwort angegeben; und die Präzision der Teilung/Quadratwurzel ist etwas niedriger als einfache Genauigkeit.

1

Eigentlich meisten wissenschaftliche Berechnung der Regel nicht erforderlich, dass genau zu sein, weil Messfehler und so weitgehend die Fehler durch die Gleitkomma-Rundungs ​​(außer vielleicht in degenerierten Fällen wie Summieren eine Reihe von Schwimmern eingeführt überwältigt in Reihenfolge vs in umgekehrter Reihenfolge, aber Sie werden diese Art von Problemen auch in der CPU bekommen und nichts wird Sie auch warnen, da es genauso funktioniert wie).Im wissenschaftlichen Rechnen reicht es im Allgemeinen aus, das Ergebnis innerhalb einer bestimmten Fehlermarge zu zeigen und zu zeigen, dass die Marge keine praktischen Probleme verursacht.

Gleitkommazahlen sind so konstruiert, dass sie schnell sind, nicht unbedingt genau in Ziffern, sogar in einer CPU, deshalb wird uns beigebracht, Fließkommazahlen immer mit einem Epsilon zu vergleichen.

OTOH, Berechnungen, die tatsächlich genaue Rundungsregeln für die letzten Ziffern benötigen, wie Buchhaltungs- oder Zahlentheorien, sollten die Verwendung von Festkommaarithmetik (z. B. Dezimalmodul) in Betracht ziehen, mit der Sie genau die Rundungsregeln angeben können.

Verwandte Themen