Industri-PC krasjet på tomgang om natten: GPU-timeout (TDR) og strømsparing

En Windows-industri-PC med et tungt CAM- og simuleringsprogram falt med jevne mellomrom tilbake til skrivebordet uten feilmelding eller dialogboks. Det skjedde oftest om natten, når ingen var innlogget og ingen jobb kjørte. Programmet fikk skylden, men årsaken var GPU-timeout og strømsparing.
Krasj på tomgang peker mot strøm og GPU

Krasj under tung last og krasj mens maskinen står i ro har forskjellige årsaker. Krasj på tomgang, uten last, om natten peker mot strømstyring og GPU-timeout, ikke mot koden i CAM-programmet.
Årsaken var en kombinasjon av fire ting:
- GPU Timeout Detection and Recovery (TDR), som resatte grafikkdriveren
- En ustabil OpenGL-driver, gaming-varianten
- En bakgrunnsoppdaterer for grafikkortet som stadig endret på driveren
- Aggressiv strømsparing som satte GPU-en i en ustabil lavtilstand
På tomgang klokker grafikkortet seg ned til laveste tilstand. Med en ustabil driver og PCIe-strømsparing slått på henger GPU-en lenge nok til at TDR slår inn og resetter driveren. Da mister programmet OpenGL-konteksten og krasjer til skrivebordet.
Tiltakene

Bytt fra gaming-driveren til produsentens stabile Studio-driver. Studio-grenen er laget for OpenGL-tunge produksjonsverktøy, som er det denne maskinen kjører.
Avinstaller bakgrunnsoppdateringen for grafikk. Den bytter driver uten at du har kontroll over det, og hører ikke hjemme på en produksjonsmaskin.
Slå av PCIe ASPM (Active State Power Management) både i BIOS og i Windows-strømplanen. Sett strømplanen til høy ytelse, så GPU-en holdes i en stabil tilstand.
Kontrollpanel > Strømalternativer > Endre planinnstillinger >Øk TDR-timeouten i registeret, så en kort GPU-henging ikke utløser full driverreset. Standard er 2 sekunder, som er for kort her.
Endre avanserte strøminnstillinger >
PCI Express > Link State Power Management > Av
reg add "HKLM\SYSTEM\CurrentControlSet\Control\GraphicsDrivers" ^Verdien er i sekunder. 10 gir GPU-en tid før TDR griper inn. Endringen krever omstart. Ikke skru TDR helt av: da henger hele maskinen ved en ekte GPU-lås i stedet for å hente seg inn igjen.
/v TdrDelay /t REG_DWORD /d 10 /f
Resultat
Etter bytte til Studio-driver, fjernet oppdateringssuite, avslått ASPM og hevet TdrDelay har maskinen ikke krasjet om natten.
Krasjer en maskin i ro og ikke under last, sjekk strømstyring og TDR før applikasjonen. Start med det billigste: driver-gren, strømplan, ASPM, TdrDelay. Bytt én ting av gangen, ellers vet du ikke hva som virket.


