PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : GPGPU und das leidige Thema "Timeout Detection and Recovery" (WDDM TDR)


Nasenbaer
2010-09-14, 17:44:08
Hi,
bin vor kurzem bei der Verwendung von Direct Compute auf das Problem gestoßen, dass Windows den Graphiktreiber zurück setzt, wenn man die GPU mehr als 2 Sekunden am Stück rechnen lässt. Dachte erst, dass das nur bei Compute-Shadern auftritt aber scheinbar greift diese "Feature" (http://www.microsoft.com/whdc/device/display/wddm_timeout.mspx) unabhändig von der verwendeten API. Da ich nen komplexen Präprozess auf die GPU auslagern wollte aber dessen Bearbeitung doch mal mehrere Minuten dauern kann ist das für GPGPU natürlich ziemlich ungünstig.

Ich wollte deshalb mal fragen ob es irgendwelche Unternehmungen gibt dieses Problem vielleicht auf Treiberseite oder so zu begegnen damit man die Berechnung nicht in Schnipsel < 2 Sekunden aufteilen muss? Alternativ 2 Graphikkarten zu verbauen ist allerdings auch nicht wirklich praxistauglich. ;D

Aquaschaf
2010-09-15, 22:24:01
Soweit ich weiß: nein, und das by design. Dem Benutzer soll eben nicht das Bild für mehrere Minuten einfrieren.

Nasenbaer
2010-09-15, 22:28:55
Soweit ich weiß: nein, und das by design. Dem Benutzer soll eben nicht das Bild für mehrere Minuten einfrieren.
Deswegen hoffe ich ja auf eine Lösung auf Treiberseite. Ich hatte ich mir das so vorgestellt, dass die Bearbeitung des Kernels regelmäßig kurz unterbrochen wird, damit der Desktop halt nicht einfriert.
Bin kein Treiberprogrammierer aber prinzipiell sollte das doch im bereich des möglichen liegen.
Andererseits hat man somit ein Argument mehr für den Kauf einer Tesla-Karte. :D

Gast
2010-09-15, 22:31:27
Das ist ja schräg :|
Wenns eine gangbare Option darstellt vielleicht auf Linux wechseln, dort gibts dieses "Feature" meines Wissens nicht (zumindest habe ich schon öfter an die 30 sek dauernde Berechungen gemacht... das einzige was passiert ist das KDE das Compositing abstellt)

Ansonsten ist doch die Sache mit 2 Grakas nicht so abwegig, ich mach das selber so: Eine spottbillige, passiv gekühlte "Anzeigekarte" und ein fettes Gerät zum Rechnen.
Vorteil: wenn man den Rechner leise haben will einfach den Fön abstecken und Ruhe ist :)

Aquaschaf
2010-09-16, 07:57:18
Ich bin mir nicht sicher ob die Hardware überhaupt dazu in der Lage wäre einen Kernel zu unterbrechen. Vielleicht kann Fermi das, aber ältere GPUs eher nicht.

Expandable
2010-09-16, 08:48:08
Wenns eine gangbare Option darstellt vielleicht auf Linux wechseln, dort gibts dieses "Feature" meines Wissens nicht (zumindest habe ich schon öfter an die 30 sek dauernde Berechungen gemacht... das einzige was passiert ist das KDE das Compositing abstellt)

Geht auch unter Windows, das "Feature" (welches durchaus sinnvoll ist) kann in der Registry abgestellt werden. Einfach googeln.

Nasenbaer
2010-09-16, 09:31:26
Geht auch unter Windows, das "Feature" (welches durchaus sinnvoll ist) kann in der Registry abgestellt werden. Einfach googeln.
Ich weiß und hab das auch schon im Eingangspost verlinkt gehabt. Ist aber natürlich für Endanwender keinesfalls gangbar. Außerdem will ich nicht minutenlang auf einen eingefrorenen Desktop starren während ich auf das Ergebnis warte.

ScottManDeath
2010-09-16, 22:08:34
Am besten in mehrere Teile zerlegen, und dann als Serie von Dispatches rendern. Hat auch den Vorteil dass der Nutzer die Operation abbrechen kann, wenn z.b. der UI thread dem Render thread zwischen jedem Dispatch sagen kann, dass schluss mit lustig ist ;)