Kalkulator wąskiego gardła CPU i GPU

Zmierzone czasy klatek zamiast uniwersalnego wyniku wąskiego gardła

Użyj czasów klatek CPU i GPU zarejestrowanych w tej samej powtarzalnej scenie, przy tych samych ustawieniach i metodzie testowania. Sam poziom wykorzystania nie może dowieść wąskiego gardła. Narzędzie nie ma bazy nazw sprzętu i nie udziela rekomendacji zakupu ani modernizacji.

Analiza czasu klatki

Opisz kontekst testu wydajności

Etykiety są opcjonalne. Nie podawaj nazw kont, numerów seryjnych ani poufnych informacji o projekcie.

Wartości w widoku bezpośrednim są przetwarzane przez Livewire. Wartości z procesu wieloetapowego, w tym opcjonalne etykiety, trafiają do adresu URL strony i historii przeglądarki, aby można je było przywrócić na każdym etapie. Nie podawaj poufnych nazw ani informacji o obciążeniu.

Ten kalkulator wąskiego gardła porównuje zmierzone czasy CPU i GPU na klatkę w tej samej scenie gry. Szacuje górny limit liczby klatek dla obu stron, wskazuje wolniejszą stronę tylko wtedy, gdy różnica przekracza wybraną tolerancję, oraz wyjaśnia, dlaczego pojedynczy pomiar nie może dać uniwersalnego procentu wąskiego gardła dla każdej gry i ustawień.

Jak analizować wąskie gardło CPU lub GPU

  1. 1

    Zarejestruj powtarzalną scenę

    Użyj wbudowanego testu wydajności, powtórki lub stałej trasy przy tej samej rozdzielczości, ustawieniach grafiki, limicie klatek i stanie VSync. Przed rozpoczęciem rejestracji pozwól grze się rozgrzać.

  2. 2

    Wprowadź czas CPU na klatkę

    Skopiuj z profilera lub zapisu wydajności czas CPU na klatkę w milisekundach. Użyj reprezentatywnej wartości z wybranego przedziału testowego.

  3. 3

    Wprowadź czas GPU na klatkę

    Skopiuj odpowiadający mu czas GPU z tej samej sceny i tego samego przedziału rejestracji. Nie łącz wyników z różnych uruchomień, profili ustawień ani rozdzielczości.

  4. 4

    Ustaw tolerancję i zinterpretuj wynik

    Dzięki tolerancji małe różnice są uznawane za równowagę, ponieważ zwykłe wahania między uruchomieniami mogą odwrócić nieznaczny wynik. Powtórz rejestrację, zanim podejmiesz decyzję na podstawie granicznej różnicy.

Czas klatki to dobry punkt wyjścia

Liczba klatek na sekundę jest odwrotnością czasu klatki. Gdy czas podano w milisekundach:

górny limit liczby klatek = 1000 / czas klatki w ms

Wolniejszy ze zmierzonych etapów wyznacza górny limit uproszczonego potoku przetwarzania:

szacowany górny limit = 1000 / max(czas klatki CPU, czas klatki GPU)

Jest to oszacowanie diagnostyczne, a nie obietnica, że gra będzie wyświetlać klatki dokładnie z taką częstotliwością. Na obserwowaną liczbę FPS mogą wpływać limit klatek, synchronizacja, kolejki, praca silnika, wczytywanie danych, planowanie zadań przez system operacyjny i prezentacja obrazu. Microsoft osobno definiuje czas CPU i GPU na klatkę w swoich wytycznych dotyczących profilowania DirectX, ponieważ każda ze stron może przekroczyć dostępny budżet czasu klatki.

Docelowa liczba klatek Budżet czasu na klatkę
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

Przeliczenie 1000 / ms wyznacza górny limit dla mierzonego etapu. Na przykład czas CPU wynoszący 12 ms odpowiada około 83,33 FPS, a czas GPU wynoszący 7 ms, około 142,86 FPS. W tym pomiarze strona CPU jest wolniejsza, a uproszczony górny limit wynosi około 83,33 FPS.

Dlaczego tolerancja jest ważna

Zbliżonych czasów klatek nie należy przedstawiać z fałszywą pewnością. Kalkulator porównuje bezwzględną różnicę z czasem klatki wolniejszej strony:

różnica względna = |CPU ms - GPU ms| / max(CPU ms, GPU ms) × 100

Jeśli różnica mieści się w wybranej tolerancji, wynik dla tego pomiaru jest zrównoważony lub niejednoznaczny. Jeśli przekracza tolerancję, stroną ograniczającą w tej chwili jest ta z dłuższym czasem klatki.

Czas CPU Czas GPU Różnica względna Wynik przy tolerancji 5%
12,0 ms 7,0 ms 41,67% Ograniczenie po stronie CPU
6,0 ms 10,0 ms 40,00% Ograniczenie po stronie GPU
8,0 ms 8,3 ms 3,61% Równowaga lub zbyt mała różnica, aby rozstrzygnąć

Ten procent opisuje odstęp między dwoma pomiarami czasu dla jednego obciążenia. Nie jest to procent marnowanych zasobów CPU lub GPU ani prognoza wzrostu wydajności po zmianie sprzętu.

Zadbaj o powtarzalność pomiaru

Między porównywanymi testami obciążenie musi pozostać stałe. Zachowaj te same:

  • wersję gry i silnika;
  • zapis gry, powtórkę, sekwencję testu wydajności lub stałą trasę ruchu;
  • rozdzielczość, skalę renderowania, profil jakości i interfejs graficzny API;
  • limit klatek, stan VSync i rozdzielczości dynamicznej;
  • ustawienia sterownika, tryb zasilania i obciążenie w tle;
  • czas rozgrzewania i długość rejestracji.

Uruchom test kilka razy i porównaj reprezentatywne statystyki, zamiast polegać na jednej krótkiej próbce. Wytyczne AMD dotyczące wydajności CPU zalecają ustalenie zmiennych, takich jak scena testowa i ziarno generatora liczb losowych. W poradniku dotyczącym Unreal Engine firma AMD proponuje też zmianę rozdzielczości jako metodę diagnostyczną: jeśli znacznie wyższa rozdzielczość renderowania prawie nie zmienia wydajności, jest to przesłanka, którą warto zbadać pod kątem ograniczenia po stronie CPU przy tym obciążeniu. Nadal jest to jednak tylko przesłanka, a nie uniwersalny werdykt.

Dlaczego wykorzystanie zasobów nie jest dowodem

Poziom wykorzystania może wspierać diagnozę, ale sam jej nie potwierdza. Łączne wykorzystanie CPU może wyglądać na umiarkowane, mimo że jeden główny wątek lub wątek renderujący jest w pełni obciążony. Niskie wykorzystanie GPU może wynikać z limitu klatek, oczekiwania na CPU, synchronizacji lub zbyt małej ilości przesłanej pracy. Wysokie wykorzystanie GPU mówi, że układ był zajęty; nie wskazuje dokładnego kosztownego przebiegu ani nie pozwala przewidzieć wyniku modernizacji.

Narzędzia do pomiaru czasu zapewniają lepszy kontekst. Intel PresentMon rejestruje telemetrię klatek i GPU, NVIDIA Nsight pokazuje czasy klatek CPU i GPU oraz zakresy obciążenia GPU, a AMD Radeon GPU Profiler wizualizuje czasy kolejek i okresy bezczynności GPU. Nawet progi stosowane przez profilery są heurystykami: klasyfikacja ograniczenia po stronie CPU w Radeon GPU Profiler korzysta z regulowanego progu bezczynności GPU, a nie z prawa obowiązującego dla każdego silnika.

Co można, a czego nie można wywnioskować z 1% Low FPS

Wartość 1% Low podsumowuje wolny koniec rozkładu czasów klatek, dlatego pomaga wykryć nierównomierne wyświetlanie, które może ukryć średnia. Nie pokazuje jednak, czy za wolne klatki odpowiadały CPU, GPU, strumieniowe wczytywanie zasobów, kompilacja shaderów, presja na pamięć czy inny przestój.

Różnią się także definicje. Niektóre raporty wyliczają częstotliwość z 99. percentyla czasu klatki (1000 / czas klatki p99), a inne uśredniają najwolniejszy 1% próbek FPS. NVIDIA Nsight Systems definiuje długość klatki dla 99. percentyla jako wartość, od której dłuższy jest tylko 1% klatek. Porównując wyniki, zanotuj użyte narzędzie i definicję. Nie zastępuj dopasowanych czasów CPU i GPU na klatkę wartością 1% Low.

Dlaczego uniwersalne procenty wąskiego gardła wprowadzają w błąd

Komputer nie ma jednego stałego stosunku wąskiego gardła CPU do GPU. Czynnik ograniczający może się zmieniać zależnie od gry, sceny, rozdzielczości, ustawień, wersji silnika, sterownika, limitu klatek i docelowej liczby FPS. Ruchliwa scena miejska może mocno obciążać symulację i przesyłanie wywołań rysowania, podczas gdy inna scena przy wyższej skali renderowania może wymagać więcej czasu GPU.

Kalkulatory oparte na nazwach modeli nie widzą tych warunków. Wynik taki jak „23% wąskiego gardła” bez pomiarów czasu w tej samej scenie nie ma trwałego znaczenia technicznego. Użyj tego kalkulatora do opisania faktycznie wykonanego pomiaru, powtórz test z interesującym Cię obciążeniem, a gdy chcesz znaleźć konkretną przyczynę, skorzystaj z profilera osi czasu.

Oficjalne źródła techniczne

Najczęściej zadawane pytania

Wprowadź czas CPU i GPU na klatkę w milisekundach z tego samego zapisu profilera i tej samej sceny. Nie podawaj łącznego procentu wykorzystania, reklamowanych częstotliwości taktowania, wyników testów wydajności ani czasów zebranych przy różnych ustawieniach.

Nie. Oznacza jedynie, że w tym pomiarze zmierzony czas CPU na klatkę był dłuższy od czasu GPU o wartość przekraczającą wybraną tolerancję. Limit klatek, ustawienia gry, praca w tle, jeden wymagający wątek lub sama scena mogą zmienić wynik. Przed wyciągnięciem szerszych wniosków sprofiluj obciążenie.

Pięć procent to praktyczny punkt wyjścia do odróżnienia wyraźnej różnicy od zbliżonego wyniku, ale nie jest to uniwersalny standard. Zastosuj większą tolerancję, jeśli kolejne uruchomienia bardziej się różnią, i porównaj kilka pomiarów przed sklasyfikowaniem granicznej różnicy.

Nie. Wartości te podsumowują różne części wydajności wyświetlanych klatek i nie są czasami CPU ani GPU. Użyj odpowiadających sobie pomiarów CPU-ms i GPU-ms. Średni FPS i 1% Low traktuj osobno jako kontekst przepustowości i równomierności czasu klatek.

Rozdzielczość i skala renderowania zwykle bardziej bezpośrednio zmieniają pracę GPU niż symulację lub przesyłanie zadań przez CPU. Ich zwiększenie może przesunąć dłuższy czas klatki w stronę GPU, a zmniejszenie może ujawnić ograniczenie po stronie CPU przy wyższej liczbie klatek. Nowy wynik opisuje nowe obciążenie i nie jest sprzecznością.

Powiązane narzędzia