GPU nie na 100%: jak odróżnić wąskie gardło procesora od czegoś innego

Niskie obciążenie karty graficznej ma co najmniej osiem wyjaśnień i tylko jedno z nich to limit procesora — oto kolejność, w jakiej się je wyklucza, zaczynając od darmowego eksperymentu, który rozstrzyga sprawę w dwie minuty.

Twoja nakładka pokazuje, że karta graficzna pracuje na 60%, a liczba klatek jest niższa, niż się spodziewałeś. Ktoś mówi ci, że to wąskie gardło procesora, i zaczynasz czytać o procesorach.

Może. Ale „GPU poniżej 100%” ma co najmniej osiem wyjaśnień, sprawdzenie większości z nich nic nie kosztuje, a prawdziwy limit procesora to tylko jedno z nich. Ta strona wyklucza je jedno po drugim.

Najpierw: czym właściwie jest ten procent

Obciążenie karty graficznej to udział czasu, w którym karta miała pracę w toku — a nie to, jak ciężko pracowała. Karta przemielająca trywialne obciążenie bez wysiłku może pokazać 100%, bo zawsze coś stało w kolejce, a karta robiąca wszystko, o co ją poproszono, może pokazać 60%, bo kolejka wciąż się opróżniała. To pierwsza wskazówka i nic więcej: sama z siebie nie powie ci, na co karta czekała.

Eksperyment, który rozstrzyga sprawę w dwie minuty

Zrób to przed czymkolwiek innym, bo jest darmowy i rozstrzygający.

  1. Zanotuj liczbę klatek w powtarzalnej scenie.
  2. Zejdź z rozdzielczością wyraźnie w dół — nie o jeden krok, o duży krok.
  3. Zmierz tę samą scenę ponownie.

Jeśli liczba klatek prawie się nie ruszy, to nie karta graficzna była twoim ograniczeniem. Zabrałeś jej większość pracy i nic w zamian nie dostałeś, więc tempo narzucało coś innego.

Jeśli liczba klatek rośnie mniej więcej proporcjonalnie, jednak byłeś ograniczony przez kartę, a liczba obciążenia wprowadzała cię w błąd.

To cała diagnoza i nie potrzebuje żadnych narzędzi. Wszystko poniżej służy do ustalenia, czym jest to „coś innego”.

Tanie wyjaśnienia, po kolei

1. Siedzisz na limicie

Jeśli liczba, na której lądujesz, to dokładnie twoja częstotliwość odświeżania, twój limit klatek w grze, limit po stronie sterownika albo automatyczny limit narzucony przez funkcję obniżającą opóźnienie, nic nie jest wąskim gardłem — karta jest bezczynna, bo kazałeś jej przestać. Fałszywy alarm i dziesięć sekund na wykluczenie.

2. Karta jest przytrzymywana, a nie zostawiona bezczynnie

Karta, która nie podbija zegarów, to nie to samo co karta, która nie ma pracy. Pod obciążeniem sterownik sam nazwie powód, dla którego trzyma taktowanie nisko: ochrona termiczna, limit mocy ustawiony poniżej fabrycznego, aplikacja, która poprosiła go o zwolnienie, albo brakująca lub źle wpięta wtyczka zasilania PCIe. To ostatnie to karta, która odmawia podbijania zegarów, dopóki nie zostanie porządnie podłączona — problem z kablem, nie z ustawieniem. Skan przycięć pyta o to sterownik pod krótkim obciążeniem i podaje powody, które ten wymienił.

3. Gra została ograniczona do części procesora

Niewidoczne, dopóki nie zaczniesz szukać. Zawężona maska koligacji — czyli przypisanie procesu do konkretnych rdzeni — albo domyślny zestaw CPU na procesie gry oznacza, że wszystko, co gra robi, musi się zmieścić na tych procesorach, podczas gdy reszta maszyny stoi bezczynnie. Wśród źródeł są stary skrypt optymalizacyjny, skrót z start /affinity skopiowany z forum albo raz skonfigurowane i zapomniane narzędzie do procesów.

Jak to sprawdzisz: Menedżer zadań → Szczegóły, prawy przycisk na grze, Ustaw koligację. Jeśli nie są zaznaczone wszystkie procesory, to jest twoja odpowiedź — rozszerz je tam albo usuń regułę w narzędziu, które ją zapisało.

4. Gra działa na niewłaściwej karcie graficznej

W laptopie albo w komputerze stacjonarnym z włączoną grafiką zintegrowaną gra może w efekcie renderować na słabszym układzie. Karta dedykowana uczciwie zgłasza wtedy niskie obciążenie: nic nie robi. Na której karcie działa gra opisuje usuwanie preferencji ustawionej dla pojedynczej gry.

5. Łącze PCIe jest węższe, niż powinno być

Warto sprawdzić raz i warto zachować proporcje. Połowa linii przy tej samej generacji może być własnym projektem płyty — dysk M.2 zasilany z linii procesora dzieli slot graficzny — a przepołowienie łącza nie przepoławia liczby klatek; nie zmierzono tu, ile to kosztuje na twojej karcie. Przypadek wart działania to łącze, które wytrenowało się niżej, niż obsługują oba końce: riser, marginalny styk, linia, która nie wstała. Przełóż kartę na nowo.

6. Karta czeka na dane, a nie na procesor

Klatka, która nie jest jeszcze złożona, zostawia kartę bezczynną, a powodem może być powolny odczyt zasobu, kompilowany shader albo strony wracające z dysku. Na wykresie obciążenia wygląda to identycznie jak limit procesora, a jest innym problemem — zobacz Nagłe spadki FPS w grach.

7. Coś innego zajmuje rdzeń, którego potrzebuje wątek renderujący

Całkowite użycie procesora to tutaj zła liczba. Jeden w pełni wysycony rdzeń na maszynie ośmiordzeniowej daje skromną sumę, a zadanie w tle trzymające ten rdzeń ustawia się w kolejce przed wątkiem renderującym.

Jak wygląda prawdziwy limit procesora

Kiedy powyższa lista się wyczerpie, pozostały przypadek jest prawdziwy i ma rozpoznawalny kształt:

Pomiar zapisuje też, ile z przebiegu spędzono zablokowanym w wywołaniu prezentacji — to obciążenie karty i kolejki, a im wyższa ta wartość, tym mniej jakakolwiek zmiana średniego FPS mówi o czymkolwiek po stronie procesora. Jak czytać wynik benchmarku opisuje resztę.

Co zrobić z prawdziwym limitem procesora

Uczciwa odpowiedź brzmi tak: to w większości nie jest problem programowy, a strony, które udają inaczej, są powodem, dla którego ludzie kończą z listami wpisów do rejestru.

Co nie pomoże

Wyłączanie wielowątkowości współbieżnej albo rdzeni energooszczędnych: liczby stojące za tą radą pochodzą ze źródeł, które nie opublikowały żadnej metody, więc wymieniłbyś znaną wydajność wielordzeniową na niesprawdzony zysk. Wartości zarządzania pamięcią jądra i wymuszanie rozdzielczości timera: tutaj odrzucane wprost, nigdzie niezmierzone. Czyszczenie pamięci: na maszynie, której pamięci nie brakuje, zwolnienie jeszcze większej ilości nie zmienia niczego mierzalnego.

Powiązane

Grasz w CS2? Które opcje uruchamiania jeszcze coś robią i gdzie w menu wideo naprawdę leżą klatki: Mało FPS, spadki FPS i przycięcia w CS2: zmierzona lista kontrolna

w0a nie zmienia żadnego ustawienia Windows, dopóki o to nie poprosisz, a tweak zapamiętuje starą wartość, zanim zapisze nową. Powiadom mnie

Czy ta strona pomogła?

Czego zabrakło albo co nie zadziałało? Czytamy każdą taką wiadomość.

Jeśli ta strona nie rozwiązała problemu, napisz do nas — podaj, który artykuł czytasz, a poprawimy ten artykuł.