Monitorowanie wykorzystania zasobów karty graficznej nVidii, AMD i Intela pod Linuksem

Wykorzystywanie narzędzi dostarczanych przez producentów i programistów do monitorowania wykorzystania karty graficznej

Monitorowanie zużycia zasobów procesora, czy pamięci RAM to normalka. Dość rzadko pisze się o monitorowaniu obciążenia karty graficznej pod Linuksem. Tymczasem do dyspozycji mamy narzędzia umożliwiające podglądanie działań podejmowanych przez układy graficzne Intela, AMD, czy nVidii. Monitorowanie może być pomocne przy próbie ustalenia np. słabego ogniwa karty graficznej, która nie radzi sobie z daną aplikacją, czy po prostu dla ładnego wykresu.

Intel

W przypadku układów graficznych Intela pod Linuksem możemy skorzystać z narzędzi zawartych w pakiecie intel-gpu-tools. Do dyspozycji mamy m.in. dwa ciekawe narzędzia:

  • intel_gpu_time: jak time, ale pokazuje też średnie procentowe wykorzystanie zasobów CPU oraz GPU dla polecenia, aplikacji jaką ta komenda uruchomiła.
  • intel_gpu_top: jak top, tyle że dla układu graficznego.
Tak więc wykonanie:
intel_gpu_time jakaśaplikacja
Da nam wyniki typu:
user: 0.428928s, sys: 0.071933s, elapsed: 5.725313s, CPU: 8.7%, GPU: 14.4%
intel_gpu_top w akcji

intel_gpu_top w akcji

intel_gpu_top może też logować do pliku (zobacz --help dla dodatkowych opcji).

nVidia

Dla zamkniętego sterownika nVidii użyć można nvidia-smi, który pokaże m.in. zużycie pamięci RAM karty, temperaturę, czy szybkość wentylatora. Dla wybranych modelu z pełnym wsparciem można uzyskać znacznie więcej danych. Wystarczy sprawdzić --help by uzyskać listę obsługiwanych kart i liczne opcje dodatkowe (w tym link do biblioteki Pythonowej). Na chwilę obecną lista wygląda następująco:

Supported products:
- Full Support
    - NVIDIA Tesla Line:
            S2050, C2050, C2070, C2075,
            M2050, M2070, M2075, M2090,
            X2070, X2090,
            K10, K20, K20X, K20Xm, K20c, K20m, K20s, K40c, K40m, K40t, K40s, K40st
    - NVIDIA Quadro Line:
            410, 600, 2000, 4000, 5000, 6000, 7000, M2070-Q
            K2000, K2000D, K4000, K5000, K6000
    - NVIDIA GRID Line:
            K1, K2, K340, K520
    - NVIDIA GeForce Line: None
- Limited Support
    - NVIDIA Tesla Line:   S1070, C1060, M1060 and all other previous generation Tesla-branded parts
    - NVIDIA Quadro Line:  All other current and previous generation Quadro-branded parts
    - NVIDIA GeForce Line: All current and previous generation GeForce-branded parts
nvidia-smi w akcji

nvidia-smi w akcji

Można też spróbować użyć nvidia-settings.

Testując starą już nVidię Quadro FX 580 na grze Xonotic (poprzez phoroniksa) wyszedł nagły spadek osiąganych FPS z 66.37 na 21.3 pomiędzy testami na jakości High a Ultra. Obserwując dane z nvidia-smi przypuszczam iż problemem jest brak wystarczającej ilości RAM na karcie (512MB). Na ustawieniach High zajęta jest prawie cała pamięć RAM, a na Ultra już cała. Inne karty, te z 1GB (lub więcej) RAM osiągały łagodny i mniejszy spadek wydajności wraz ze wzrostem ustawień gry.

AMD

Dla zamkniętego sterownika (fglrx) możemy użyć aticonfig, choć zbyt wielu danych nie dostaniemy w odpowiedzi:

aticonfig --odgc --odgt

Dla otwartego (radeon) jak i zamkniętego sterownika dostępny jest też bardziej rozbudowany radeontop (dostępny w repozytoriach m.in. Ubuntu).

Monitorowanie karty AMD za pomocą aticonfig

Monitorowanie karty AMD za pomocą aticonfig

Monitorowanie karty AMD za pomocą radeontop

Monitorowanie karty AMD za pomocą radeontop

Dostępna jest też desktopowa aplikacja - radeon-profile działająca zarówno z otwartym jak i zamkniętym sterownikiem.

blog comments powered by Disqus

Kategorie

Strony