CPU- versus GPU-bottleneckcalculator

Gemeten frametijden, geen universele bottleneckscore

Gebruik CPU- en GPU-frametijden die in dezelfde herhaalbare scène, met dezelfde instellingen en testmethode zijn vastgelegd. Alleen het gebruikspercentage kan een bottleneck niet bewijzen. Deze tool heeft geen database met hardwarenamen en geeft geen aankoop- of upgradeadvies.

Frametijdanalyse

Benchmarkcontext beschrijven

Labels zijn optioneel. Voer geen accountnamen, serienummers of vertrouwelijke projectinformatie in.

Waarden in de directe weergave worden via Livewire verwerkt. Waarden uit het stappenproces, inclusief optionele labels, worden in de pagina-URL en browsergeschiedenis geplaatst zodat elke stap ze kan herstellen. Voer geen vertrouwelijke namen of informatie over de belasting in.

Gebruik deze bottleneckcalculator om gemeten CPU- en GPU-frametijden uit dezelfde gamescène te vergelijken. De calculator schat voor beide kanten de bovengrens van de framerate, wijst de tragere kant alleen aan als het verschil groter is dan uw tolerantie en legt uit waarom één opname geen universeel bottleneckpercentage voor elke game of instelling kan opleveren.

Een CPU- of GPU-bottleneck analyseren

  1. 1

    Neem één herhaalbare scène op

    Gebruik een ingebouwde benchmark, replay of vaste route met dezelfde resolutie, grafische instellingen, framelimiet en VSync-status. Laat de game op temperatuur komen voordat u de opname start.

  2. 2

    Voer de CPU-frametijd in

    Neem de CPU-tijd per frame in milliseconden over uit uw profiler of prestatieopname. Gebruik een representatieve waarde uit het gekozen testvenster.

  3. 3

    Voer de GPU-frametijd in

    Neem de bijbehorende GPU-tijd over uit dezelfde scène en hetzelfde opnamevenster. Combineer geen resultaten uit verschillende tests, voorinstellingen of resoluties.

  4. 4

    Stel een tolerantie in en interpreteer het resultaat

    Door de tolerantie gelden kleine verschillen als evenwichtig, omdat normale variatie tussen tests een nipt resultaat kan omkeren. Herhaal de opname voordat u handelt op basis van een marginaal verschil.

Frametijd is een nuttig uitgangspunt

Het aantal frames per seconde is het omgekeerde van de frametijd. Wanneer de tijd in milliseconden wordt gemeten:

bovengrens framerate = 1000 / frametijd in ms

De tragere gemeten fase bepaalt de bovengrens van de vereenvoudigde verwerkingsketen:

geschatte bovengrens = 1000 / max(CPU-frametijd, GPU-frametijd)

Dit is een diagnostische schatting, geen belofte dat de game frames met exact die frequentie zal weergeven. Framelimieten, synchronisatie, wachtrijen, werk van de engine, laadprocessen, planning door het besturingssysteem en presentatie op het scherm kunnen allemaal invloed hebben op de waargenomen FPS. Microsoft definieert in zijn richtlijnen voor DirectX-profilering de CPU-tijd en GPU-tijd per frame afzonderlijk, omdat beide kanten het beschikbare tijdsbudget per frame kunnen overschrijden.

Beoogde framerate Tijdsbudget per frame
30 FPS 33,33 ms
60 FPS 16,67 ms
120 FPS 8,33 ms
144 FPS 6,94 ms
240 FPS 4,17 ms

De omzetting 1000 / ms geeft een bovengrens voor de gemeten fase. Een CPU-tijd van 12 ms komt bijvoorbeeld overeen met ongeveer 83,33 FPS, terwijl een GPU-tijd van 7 ms overeenkomt met ongeveer 142,86 FPS. In deze opname is de CPU-kant trager en ligt de vereenvoudigde bovengrens rond 83,33 FPS.

Waarom de tolerantie belangrijk is

Bij frametijden die dicht bij elkaar liggen, past geen schijnzekerheid. Deze calculator vergelijkt het absolute verschil met de frametijd van de tragere kant:

relatief verschil = |CPU ms - GPU ms| / max(CPU ms, GPU ms) × 100

Valt dat verschil binnen de gekozen tolerantie, dan is het resultaat voor deze opname evenwichtig of onbepaald. Overschrijdt het de tolerantie, dan is de kant met de langere frametijd op dit moment de beperkende factor.

CPU-tijd GPU-tijd Relatief verschil Resultaat bij 5% tolerantie
12,0 ms 7,0 ms 41,67% Beperking aan CPU-kant
6,0 ms 10,0 ms 40,00% Beperking aan GPU-kant
8,0 ms 8,3 ms 3,61% Evenwichtig of te klein verschil voor een oordeel

Dit percentage beschrijft de afstand tussen twee tijdmetingen binnen één belasting. Het is niet het percentage van de CPU of GPU dat wordt verspild en voorspelt evenmin de prestatiewinst van een hardwarewijziging.

Maak de opname reproduceerbaar

Voor een bruikbare vergelijking moet de belasting stabiel blijven. Gebruik steeds dezelfde:

  • versie van de game en engine;
  • savegame, replay, benchmarkreeks of vaste bewegingsroute;
  • resolutie, renderschaal, kwaliteitsinstelling en grafische API;
  • framelimiet, VSync-status en status van dynamische resolutie;
  • stuurprogramma-instellingen, energiemodus en achtergrondbelasting;
  • opwarmperiode en opnameduur.

Voer de test meerdere keren uit en vergelijk representatieve statistieken in plaats van op één korte steekproef te vertrouwen. De CPU-prestatierichtlijnen van AMD adviseren om variabelen zoals de testscène en willekeurige seed vast te zetten. In de Unreal Engine-richtlijnen wordt ook voorgesteld om de resolutie als diagnose te wijzigen: als een veel hogere renderresolutie de prestaties nauwelijks verandert, is dat een aanwijzing die nader onderzoek naar een CPU-beperking in die belasting rechtvaardigt. Het blijft echter een aanwijzing, geen universeel oordeel.

Waarom gebruikspercentages geen bewijs zijn

Gebruikspercentages kunnen een diagnose ondersteunen, maar bewijzen op zichzelf niets. Het totale CPU-gebruik kan bescheiden lijken terwijl één hoofd- of renderthread volledig wordt belast. Een laag GPU-gebruik kan worden veroorzaakt door een framelimiet, wachten op de CPU, synchronisatie of te weinig ingediend werk. Een hoog GPU-gebruik laat zien dat het apparaat bezig was; het wijst niet de precieze kostbare verwerkingsstap aan en voorspelt evenmin het resultaat van een upgrade.

Hulpmiddelen voor tijdmetingen bieden meer context. Intel PresentMon registreert frame- en GPU-telemetrie, NVIDIA Nsight toont CPU- en GPU-frameduren en bereiken van GPU-belasting, en AMD Radeon GPU Profiler visualiseert wachtrijtijden en perioden waarin de GPU niet actief is. Zelfs drempelwaarden van profilers zijn vuistregels: de classificatie van Radeon GPU Profiler voor een CPU-gebonden situatie gebruikt een instelbare drempelwaarde voor GPU-inactiviteit, niet een wet die voor elke engine geldt.

Wat 1%-lowwaarden wel en niet vertellen

Een 1%-low vat de trage staart van een frametijdverdeling samen en helpt daardoor onregelmatige framelevering te herkennen die een gemiddelde kan verbergen. De waarde onthult niet of de CPU, GPU, het streamen van assets, shadercompilatie, geheugendruk of een andere onderbreking die trage frames heeft veroorzaakt.

Ook de definities verschillen. Sommige rapporten leiden een framerate af uit het 99e percentiel van de frametijd (1000 / p99-frametijd), terwijl andere het gemiddelde nemen van de traagste 1% van de FPS-metingen. NVIDIA Nsight Systems definieert de framelengte van het 99e percentiel als de waarde waarboven slechts 1% van de frames uitkomt. Noteer bij het vergelijken van resultaten het gebruikte hulpmiddel en de definitie, en gebruik een 1%-lowwaarde niet in plaats van bij elkaar horende CPU- en GPU-frametijden.

Waarom universele bottleneckpercentages misleidend zijn

Een computer heeft niet één blijvende verhouding tussen een CPU- en GPU-bottleneck. Het beperkende werk kan veranderen door de game, scène, resolutie, instellingen, engineversie, het stuurprogramma, de framelimiet en de beoogde framerate. Een drukke stadsscène kan simulatie en het indienen van tekenopdrachten zwaar belasten, terwijl een andere scène op een hogere renderschaal meer tijd van de GPU kan vragen.

Calculators die alleen modelnamen gebruiken, kunnen die omstandigheden niet waarnemen. Een resultaat zoals ‘23% bottleneck’ zonder gemeten tijdwaarden uit dezelfde scène heeft geen vaste technische betekenis. Gebruik deze calculator om de opname te beschrijven die u daadwerkelijk hebt gemaakt, herhaal de test onder de belasting die voor u belangrijk is en gebruik een tijdlijnprofiler wanneer u de specifieke oorzaak wilt vinden.

Officiële technische bronnen

Veelgestelde vragen

Voer de CPU-tijd per frame en GPU-tijd per frame in milliseconden in uit dezelfde profileropname en scène. Voer geen totale gebruikspercentages, geadverteerde kloksnelheden, benchmarkscores of tijdmetingen met verschillende instellingen in.

Nee. Het betekent dat de gemeten CPU-frametijd in deze opname meer dan de gekozen tolerantie langer was dan de GPU-frametijd. Een framelimiet, game-instellingen, achtergrondwerk, één kostbare thread of de scène zelf kan het resultaat veranderen. Profileer de belasting voordat u een bredere conclusie trekt.

Vijf procent is een praktisch uitgangspunt om een duidelijk verschil van een nipt resultaat te onderscheiden, maar is geen universele norm. Gebruik een ruimere tolerantie wanneer herhaalde tests meer variëren en vergelijk meerdere opnamen voordat u een marginaal verschil classificeert.

Nee. Deze waarden vatten verschillende delen van de geleverde frameprestaties samen en zijn geen CPU- en GPU-tijdmetingen. Gebruik bij elkaar horende metingen in CPU-ms en GPU-ms. Houd gemiddelde FPS en 1%-lowwaarden apart als context voor doorvoer en gelijkmatigheid van de frametijden.

De resolutie en renderschaal veranderen het GPU-werk doorgaans directer dan simulatie of het indienen van werk door de CPU. Een verhoging kan de langere frametijd naar de GPU verschuiven; een verlaging kan bij hogere framerates een beperking aan de CPU-kant blootleggen. Het nieuwe resultaat beschrijft de nieuwe belasting en is geen tegenspraak.

Gerelateerde tools