pajofego
2004-08-28, 13:57:27
Hallo Leute,
ich habe mal wieder (wie sollte es auch anders sein :biggrin:) eine Frage rund um das Thema DirectX und Floating Point Texturen. Nachdem ich endlich meine numerische Simulation auf der Basis von DirectX 9 und PixelShadern zum Laufen gebracht habe, war es nun Zeit das ganze auf den Karten auszuprobieren. Dazu standen mir die ATI 9800 Pro und die nVIDIA FX 5900 zur verfügung. Beide unterstützen PS 2.0 und fp32 (bei ATI nur fp24). Anfangs gab es ja noch Probleme mit Floatinpointtexturen und DirectX 9.0b mit der nVIDIA, aber seit dem neuen Release 9.0c sollte es ja keine Probleme mehr damit geben.
So jetzt nun zu meinen Ergebnissen:
Mich hat es ja nun interessiert ob meine Simulation auf der GPU genau so gute Ergebnisse liefert wie die reine CPU Simulation. Sprich ist die Gleikommagenauigkeit von der GPU ausreichend genug - insbesondere bei der ATI? Dazu habe ich mir einen representativen Wert (Schallgeschwindigkeit) ausgesucht und diesen über mehrere Zeitschritte mit denen aus der GPU (ATI und nVIDIA) und der CPU verglichen. Wie man meiner Grafik entnehmen kann sind die Ergebnisse aus der ATI trotz fp24 sehr gut, d.h. ca. max. 1% Fehler zur CPU. Was mit der nVIDIA passiert ist - tendenziell richtig, aber dennoch falsche Ergebnisse - kann ich mir beim besten Willen nicht erklären.
Mein erstes Fazit lautet, dass trotz der geringeren Genauigkeit der ATI (fp24), diese sich nicht so krass bemerkbar machen, wie die, trotz fp32 bei nVIDIA, Probleme von nVIDIA mit der FX Serie und DirectX. Bemerkenswert ist auch die Performance von ATI vs. nVIDIA. Während die ATI bei mir mit ca. 33fps zu Werke geht schafft die nVIDIA nur magere 14fps.
Was im Detail genau das Problem mit nVIDIA und DirectX ist, weiss ich nicht und würde mich seitens von euch über eine konstruktive Kritik bzw. Idee über das Problem freuen. Anregungen, Ideen etc.?
Beste Grüße
pajofego
ich habe mal wieder (wie sollte es auch anders sein :biggrin:) eine Frage rund um das Thema DirectX und Floating Point Texturen. Nachdem ich endlich meine numerische Simulation auf der Basis von DirectX 9 und PixelShadern zum Laufen gebracht habe, war es nun Zeit das ganze auf den Karten auszuprobieren. Dazu standen mir die ATI 9800 Pro und die nVIDIA FX 5900 zur verfügung. Beide unterstützen PS 2.0 und fp32 (bei ATI nur fp24). Anfangs gab es ja noch Probleme mit Floatinpointtexturen und DirectX 9.0b mit der nVIDIA, aber seit dem neuen Release 9.0c sollte es ja keine Probleme mehr damit geben.
So jetzt nun zu meinen Ergebnissen:
Mich hat es ja nun interessiert ob meine Simulation auf der GPU genau so gute Ergebnisse liefert wie die reine CPU Simulation. Sprich ist die Gleikommagenauigkeit von der GPU ausreichend genug - insbesondere bei der ATI? Dazu habe ich mir einen representativen Wert (Schallgeschwindigkeit) ausgesucht und diesen über mehrere Zeitschritte mit denen aus der GPU (ATI und nVIDIA) und der CPU verglichen. Wie man meiner Grafik entnehmen kann sind die Ergebnisse aus der ATI trotz fp24 sehr gut, d.h. ca. max. 1% Fehler zur CPU. Was mit der nVIDIA passiert ist - tendenziell richtig, aber dennoch falsche Ergebnisse - kann ich mir beim besten Willen nicht erklären.
Mein erstes Fazit lautet, dass trotz der geringeren Genauigkeit der ATI (fp24), diese sich nicht so krass bemerkbar machen, wie die, trotz fp32 bei nVIDIA, Probleme von nVIDIA mit der FX Serie und DirectX. Bemerkenswert ist auch die Performance von ATI vs. nVIDIA. Während die ATI bei mir mit ca. 33fps zu Werke geht schafft die nVIDIA nur magere 14fps.
Was im Detail genau das Problem mit nVIDIA und DirectX ist, weiss ich nicht und würde mich seitens von euch über eine konstruktive Kritik bzw. Idee über das Problem freuen. Anregungen, Ideen etc.?
Beste Grüße
pajofego