GPU情報を取得する方法は?


155

私は同じ情報を提供するコマンドを探しています:

cat /proc/cpuinfo 

GPU(チップとメモリのタイプ、周波数)を除きます。


何をしcat /proc/cpuinfo ますか?どんな情報をお探しですか?
チャーリーパーカー

1
@CharlieParkerはCPUの情報を出力します...
Emobe

回答:


75

そのタイプの情報は非標準であり、それを収集するために使用するツールは大きく異なります。

このコマンドglxinfoは、ドライバーが正しくインストールされている場合、ベンダー名など、グラフィックスプロセッサで利用可能なすべてのOpenGL情報を提供します。

クロック速度の情報を取得するための標準ツールはありません。

  • ATI / AMD GPUの場合aticonfig --odgc、クロックレートaticonfig --odgtを取得し、温度データを取得します。
  • NVIDIA GPUの場合、nvclockプログラムは同じ情報を取得します。

私は、オープンソースドライバーまたはIntelまたはその他のGPUに対応するツールを知りません。

ハードウェアに関するその他の情報は、lspciおよびlshwツールから取得できます。


2
glxinfoのインストール方法は?
stiv

7
@stiv:Mesaライブラリの一部であり、mesa-utilsUbuntu のパッケージに付属しています。
greyfade

2
aticonfigfglrxの廃止以来、利用可能ではないようです。 nvclockまた、最後のバージョンは信頼性のためのものであったため、放棄されたようです。更新されたソリューションはありますか?ここにあります私が持っているもの、これまで...
エルダーオタク

2
glxinfo | grep "Device"IntelのGPUで私にとって十分に機能しました
ジョンハミルトン

私が使用:glxinfo | egrep -i 'device|memory'
danger89

154

私は直接同等のものを知りませんが、lshwはあなたが望む情報を与えるべきです、試してください:

sudo lshw -C display

(これも機能しませんsudoが、情報は完全ではない/正確でない可能性があります)

パッケージlshw-gtkをインストールしてGUIを取得することもできます。


3
lshw-gtkを機能させるには、メニューのコマンドの前にgksuを配置する必要がありました。
robin0800

アップデートはありますか?私はこのコマンドのファンですが、提供されていると思われるクロックレート(周波数)は、ベースバスクロック33MHzだけです。このQ&Aを最新の状態にしようとしています。ありがとうございました!
オタク長老

1
ディープラーニングに新しい謝罪。GPUを持っている場合は何と言ったらよいですか?それは言うproduct: 2nd Generation Core Processor Family Integrated Graphics Controller
率直

80

コマンドラインで行われた作業に焦点を当てたブログ投稿はこちらです:

http://www.cyberciti.biz/faq/howto-find-linux-vga-video-card-ram/

デバイスIDを確認します。

 lspci | grep ' VGA ' | cut -d" " -f 1
03:00.0

この出力をlspci再度使用して、2つのネストされたコマンドを形成できます

lspci  -v -s  $(lspci | grep ' VGA ' | cut -d" " -f 1)

複数のGPUカードがある場合は、代わりに次の同等のコマンドを試してください。

lspci | grep ' VGA ' | cut -d" " -f 1 | xargs -i lspci -v -s {}

私のシステムからの出力:

03:00.0 VGA compatible controller: NVIDIA Corporation G98 [Quadro NVS 295] (rev a1) (prog-if 00 [VGA controller])
    Subsystem: NVIDIA Corporation Device 062e
    Flags: bus master, fast devsel, latency 0, IRQ 24
    Memory at f6000000 (32-bit, non-prefetchable) [size=16M]
    Memory at ec000000 (64-bit, prefetchable) [size=64M]
    Memory at f4000000 (64-bit, non-prefetchable) [size=32M]
    I/O ports at dc80 [size=128]
    [virtual] Expansion ROM at f7e00000 [disabled] [size=128K]
    Capabilities: <access denied>
    Kernel driver in use: nvidia

編集:で<access denied>起動することで回避できますsudo

したがって、(prefetchable) [size=64M)64 MBのNVIDIAカードがあることを示しています。ただし、そうではなく、256 MBです。どうして?下記参照。

最大限の情報とパフォーマンスを引き出す方法については、Arch-Linux Wikiの非常に包括的な記事を読んでください。

https://wiki.archlinux.org/index.php/NVIDIA

NVIDIAユーザーで始まります

nvidia-smi

(これは、インストールされているNvidiaドライバーで動作しますが、オープンソースの「nouveau」ドライバーを実行しているシステムでは動作しません)。

出力

Thu Dec 19 10:54:18 2013       
+------------------------------------------------------+                       
| NVIDIA-SMI 5.319.60   Driver Version: 319.60         |                       
|-------------------------------+----------------------+----------------------+
| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|===============================+======================+======================|
|   0  Quadro NVS 295      Off  | 0000:03:00.0     N/A |                  N/A |
| N/A   73C  N/A     N/A /  N/A |      252MB /   255MB |     N/A      Default |
+-------------------------------+----------------------+----------------------+

+-----------------------------------------------------------------------------+
| Compute processes:                                               GPU Memory |
|  GPU       PID  Process name                                     Usage      |
|=============================================================================|
|    0            Not Supported                                               |
+-----------------------------------------------------------------------------+

これは、256 MB GDDR3グラフィックスカードがあることを示しています。

現時点では、IntelおよびAMD / ATI GPUでこれを取得する方法がわかりません。


12
+1 nvidia-smi(私の意見では少し強調されるべきです)
マーティントーマ14


2
これは本当に受け入れられた答えであるはずです!
-INElutTabile

1
nvidia-smi完全なGPU名が表示されません。
mrgloom

48

を実行google-chromeしてURLに移動しますabout:gpu。ChromeがOpenGLの使用方法を見つけた場合、GPUに関する非常に詳細な情報を取得できます。


2
これはChromiumchromium-browser)でも機能します。
エリアケイガン

賢い。これらの行に沿って、chromeexperiments.comにアクセスしてパフォーマンスを確認しました。バターのように滑らか-私は間違いなく
GPUを使用しています-Jacksonkr

30

catCPUのようなコマンドを指定したため、これはGPUのコマンドと同等です。Nvidiaカード専用。Nvidiaデバイスドライバー以外のソフトウェアをロードする必要はありません。

ここでのパスは、私が持っているカードで機能します。しかし、他の人がコメントで指摘しているように、あなたのものは異なるかもしれません。

1番目のGPU

> cat /proc/driver/nvidia/gpus/0/information
Model:       GeForce GTX 680
IRQ:         24
GPU UUID:    GPU-71541068-cded-8a1b-1d7e-a093a09e9842
Video BIOS:      80.04.09.00.01
Bus Type:    PCIe
DMA Size:    40 bits
DMA Mask:    0xffffffffff
Bus Location:    0000:01.00.0

2番目のGPU

> cat /proc/driver/nvidia/gpus/1/information
Model:       GeForce GTX 580
IRQ:         33
GPU UUID:    GPU-64b1235c-51fc-d6f1-0f0e-fa70320f7a47
Video BIOS:      70.10.20.00.01
Bus Type:    PCIe
DMA Size:    40 bits
DMA Mask:    0xffffffffff
Bus Location:    0000:08.00.0

7
ありがとう!(cat /proc/driver/nvidia/gpus/0000\:01\:00.0/information私にとっては)
マットウィルキー

1
これは、glxinfoまたはlspciの両方が失敗するオンデマンドクラウド/ HPCクラスター環境での唯一の正解です(前者はOpenGLとディスプレイがないため、後者はnVidiaグラフィックカードがMatrox G200eW3などのグラフィックコントローラーによって抽象化されるため)。gpusの下のフォルダー名は、0000:3b:00.0または0000:d8:00.0私のためです。したがって、次のように入力する必要がありますcat /proc/driver/nvidia/gpus/0000:3b:00.0/information。素敵なTesla V100-PCIE-16GBモデルは、qsub希望どおりにジョブ制限が満たされていることを示しています。
user5280911

11

Nvidiaカードの場合は、次を入力します

nvidia-smi -q


7

これに最適なオプションはneofetchだ思います。

# Get neofetch
sudo add-apt-repository ppa:dawidd0811/neofetch
sudo apt update
sudo apt get neofetch
# Run neofetch
neofetch

これにより、次のような出力が得られます。


3
この回答では、ビデオカードの周波数とメモリは表示されません。GPUのモデルを取得するためのはるかに簡単な方法がありますが、これは私たちが提供しているすべての方法のようです。これが既存の答えに何を追加するのかわかりません。
オタク長老

1
screenfetchプログラムは、同じことをして、インストールするには、PPAを必要としません。
ブレーデンベスト

これはシェルスクリプトです。さらに、githubにもリンクしているので、スクリプトとして使用できます。
-HaoZeke


5

コンキまたはターミナルスプラッシュスクリーン

2つの方法を使用して、nVidia GPUおよびIntel iGPU情報を自動的に表示します。

  • ConkyはGPU情報をリアルタイムで動的に表示します
  • ~/.bashrc 端末を開くたびにGPU情報を表示します

Conkyリアルタイム表示

この例では、Conkyを使用して、現在のGPU(nVidiaまたはIntel)の統計をリアルタイムで表示します。Conkyは、多くのLinux愛好家の間で人気のある軽量のシステムモニターです。

あなたは後にブートした場合に応じて表示が変化しますprime-select intelprime-select nvidia

Intel iGPU

gpu temp intel.gif

  • Intel iGPUはSkylake GT2 HD 530 iGPU現在の周波数と同じように表示されます
  • 最小周波数は350MHzで、最大周波数はMHz 1050です

nVidia GPU

gpu temp nvidia.gif

  • nVidia GPUはGeForce GTX970M、現在のGPUの周波数と温度と同様に表示されます
  • ドライバーのバージョン、P-State、およびBIOSバージョンが表示されます
  • GPU負荷、RAM使用、消費電力、RAM周波数が表示されます

コンキーコード

Intel iGPUおよびnVidia GPUに関連するConkyスクリプトは次のとおりです。

#------------+
# Intel iGPU |
#------------+
${color orange}${hr 1}${if_match "intel" == "${execpi 99999 prime-select query}"}
${color2}${voffset 5}Intel® Skylake GT2 HD 530 iGPU @${alignr}${color green}${execpi .001 (cat /sys/class/drm/card1/gt_cur_freq_mhz)} MHz
${color}${goto 13}Min. Freq:${goto 120}${color green}${execpi .001 (cat /sys/class/drm/card1/gt_min_freq_mhz)} MHz${color}${goto 210}Max. Freq:${alignr}${color green}${execpi .001 (cat /sys/class/drm/card1/gt_max_freq_mhz)} MHz
${color orange}${hr 1}${else}
#------------+
# Nvidia GPU |
#------------+
${color2}${voffset 5}${execpi .001 (nvidia-smi --query-gpu=gpu_name --format=csv,noheader)} ${color1}@ ${color green}${execpi .001 (nvidia-smi --query-gpu=clocks.sm --format=csv,noheader)} ${alignr}${color1}Temp: ${color green}${execpi .001 (nvidia-smi --query-gpu=temperature.gpu --format=csv,noheader)}°C
${color1}${voffset 5}Ver: ${color green}${execpi .001 (nvidia-smi --query-gpu=driver_version --format=csv,noheader)} ${color1} P-State: ${color green}${execpi .001 (nvidia-smi --query-gpu=pstate --format=csv,noheader)} ${alignr}${color1}BIOS: ${color green}${execpi .001 (nvidia-smi --query-gpu=vbios_version --format=csv,noheader)}
${color1}${voffset 5}GPU:${color green}${execpi .001 (nvidia-smi --query-gpu=utilization.gpu --format=csv,noheader)} ${color1}Ram:${color green}${execpi .001 (nvidia-smi --query-gpu=utilization.memory --format=csv,noheader)} ${color1}Pwr:${color green}${execpi .001 (nvidia-smi --query-gpu=power.draw --format=csv,noheader)} ${alignr}${color1}Freq: ${color green}${execpi .001 (nvidia-smi --query-gpu=clocks.mem --format=csv,noheader)}
${color orange}${hr 1}${endif}

~/.bashrc 端末のスプラッシュ画面

この例では~/.bashrc、ターミナルを開くたび. .bashrcに、またはシェルプロンプトで入力するたびに、スプラッシュスクリーンに情報を表示するように変更します。

neofetch前に回答したことに加えて、screenfetchより見栄えの良いもの(IMO)があります。さらに、別の回答では、iGPUをリストする方法がわからないので、次のように答えています。

ubuntu terminal splash.png

セットアップの詳細については、「天気、カレンダー、時刻、およびシステム情報を備えた端末スプラッシュ画面」を参照してください

GPU情報を含むUbuntuディスプレイ(最後の2番目の行)を使用した下のセクションだけの要約:

sudo apt install screenfetch
screenfetch

ターミナルを開くたびにscreenfetchコマンド~/.bashrcが表示されるようにするには、コマンドをファイルの下部に配置する必要があります。



3

これは実際にはそれほど複雑ではありません。モデルとメモリについては、メーカー(Intel、AMD、NVIDIA)に関係なく、テストしたすべてのビデオカードで機能する1つのライナーがあります。

GPU=$(lspci | grep VGA | cut -d ":" -f3);RAM=$(cardid=$(lspci | grep VGA |cut -d " " -f1);lspci -v -s $cardid | grep " prefetchable"| cut -d "=" -f2);echo $GPU $RAM

GPU =このビットが行うのは、ビデオチップに対応するVGAの「grep」でフィルタリングされた「lspci」出力から3番目のフィールドを取得することだけです。

RAM =このビットが行うことはcardidlspci一致する「VGA」からの出力の最初のフィールドに等しい変数を設定-vlspci、その特定の-sデバイスからの詳細な出力の要求としてフィードし、さらにgrep「prefetchable」という文字列で出力をフィルタリングしますカード自体のメモリ(出力の「プリフェッチ不可」に一致させたくないため、前のスペースに注意してください。

Intel統合グラフィックスのクロックレートの場合(I3およびI5でテスト済み)

コマンドを実行します。sudo find /sys -type f -name gt_cur* -print0 | xargs -0 cat これは/ sysツリーに飛び込み、gt_cur_freq_mhzファイルを見つけます。このファイルはI3上に/sys/devices/pci0000:00/0000:00:02.0/drm/card0/gt_cur_freq_mhzあり、コンテンツを印刷します。非常に軽い負荷の下で私の場合それはある350に見られる最低周波数に対応する350メガヘルツのように/sys/devices/pci0000:00/0000:00:02.0/drm/card0/gt_min_freq_mhz、実行するときglxgearsglmark2での結果 1050に見られる最大周波数に対応するように1050メガヘルツ/sys/devices/pci0000:00/0000:00:02.0/drm/card0/gt_max_freq_mhz

nvidiaカードのクロックレートの場合:

nvidia-smi -stats -d procClkGPUクロックに nvidia-smi -stats -d memClk対応し、メモリクロックに対応します。

注:信頼できるGeForce 210はサポートされていないため、上記をテストすることはできません。これは、「nvidia-smi -stats --help」で示されているように、Kepler以降のGPUでのみ動作します

現在、AMDカードのクロックレートのソリューションはなく、テストに使用できるハードウェアもありません。しかし、私の知る限りaticonfig、受け入れられた答えに記載されているものはもはや存在せnvclockず、信頼できるものからは何も利用できないようです。


2

croutonを搭載したChromebookでUbuntuを実行している場合、有効な答えchrome://gpuはChromeブラウザーのみです。


2

簡単な情報が必要な場合は、gpustatを試してください。それは非常に良くてシンプルです。

gpustatスクリーンショット

著者は、次のインストール手順を提供します。

PyPIからインストールします。

pip install gpustat 

pipを使用して最新バージョン(マスターブランチ)をインストールするには:

pip install git+https://github.com/wookayin/gpustat.git@master 

ルート権限がない場合は、ユーザー名前空間にインストールしてください: pip install --user。v0.4からgpustat.pyは、依存関係ゼロの実行可能ファイルではなくなったことに注意してください。ただし、まれに単一の実行可能スクリプト(レガシー)が必要になる場合もあります。

wget https://raw.githubusercontent.com/wookayin/gpustat/v0.3.2/gpustat.py -O ~/.local/bin/gpustat chmod +x ~/.local/bin/gpustat    # Assuming ~/.local/bin is in your $PATH

2

さて、この回答は、NVIDIA-GPUを搭載したサーバーがあることを前提としています。次の3つの方法があります。

  1. 短い要点を取得するには: nvidia-smi

  2. 詳細を取得するには:nvidia-smi -q。1 GPU以上の場合、詳細情報の複数の画面が表示されます。

  3. を行いますls /proc/driver/nvidia/gpus/。GPUバスの場所をフォルダーとして表示します。次に、GPUバスの場所ごとに次のコマンドを実行します。フィル<gpu-id>バス-場所で:cat /proc/driver/nvidia/gpus/<gpu_id>/information


1

Intel GMA950(特にEeePCに付属)の場合:

setpci -s 00:02.0 f0.b

200MHzの場合は「00」、250MHzの場合は「01」、400MHzの場合は「03」が返されます。他のIntelカードにも同じ原則を適用できる場合があります。


04を取得しています。GPUは00:02.0 VGA互換コントローラーです:Intel Corporation Mobile GM965 / GL960 Integrated Graphics Controller(primary)(rev 03)(prog-if 00 [VGA controller])
johny why

1

AMD Radeonカードをお持ちの場合、次のコマンドを実行できます。

sudo update-pciids #optional command, requires internet
lspci -nn | grep -E 'VGA|Display'

このような何かを報告する必要があります

00:01.0 VGA compatible controller [0300]: Advanced Micro Devices, Inc. [AMD/ATI] Wani [Radeon R5/R6/R7 Graphics] [1002:9874] (rev c5)
03:00.0 Display controller [0380]: Advanced Micro Devices, Inc. [AMD/ATI] Sun XT [Radeon HD 8670A/8670M/8690M / R5 M330 / M430 / R7 M520] [1002:6660] (rev ff)

1

nvidia GPUの場合、nvidia-smiコマンドはあなたの友達です。man nvidia-smiあなたが好きかどうかを確認してください。

GPUの使用をリストするにはnvidia-smi -Lnvidia-smi --list-gpus)、 nvidia-smi -qgpuおよび実行中のプロセスに関する情報を提供します。


0

を使用してlspcilspci -v基本情報を取得するには、こちらを参照してください

私の場合、一度実行するlspciと、私は持っています:

dina@dina-X450LA:~$ lspci
00:02.0 VGA compatible controller: Intel Corporation Haswell-ULT Integrated Graphics Controller (rev 0b)
00:03.0 Audio device: Intel Corporation Haswell-ULT HD Audio Controller (rev 0b)
00:14.0 USB controller: Intel Corporation 8 Series USB xHCI HC (rev 04)
00:16.0 Communication controller: Intel Corporation 8 Series HECI #0 (rev 04)
00:1b.0 Audio device: Intel Corporation 8 Series HD Audio Controller (rev 04)
00:1c.0 PCI bridge: Intel Corporation 8 Series PCI Express Root Port 1 (rev e4)
00:1c.2 PCI bridge: Intel Corporation 8 Series PCI Express Root Port 3 (rev e4)
00:1c.3 PCI bridge: Intel Corporation 8 Series PCI Express Root Port 4 (rev e4)
00:1d.0 USB controller: Intel Corporation 8 Series USB EHCI #1 (rev 04)
00:1f.0 ISA bridge: Intel Corporation 8 Series LPC Controller (rev 04)
00:1f.2 SATA controller: Intel Corporation 8 Series SATA Controller 1 [AHCI mode] (rev 04)
00:1f.3 SMBus: Intel Corporation 8 Series SMBus Controller (rev 04)
02:00.0 Ethernet controller: Qualcomm Atheros QCA8171 Gigabit Ethernet (rev 10)
03:00.0 Network controller: Ralink corp. RT3290 Wireless 802.11n 1T/1R PCIe
03:00.1 Bluetooth: Ralink corp. RT3290 Bluetooth

0

グラフィックプロセッサに関するすべての情報を取得するには、@ greyfadeで指定された次のコマンドを使用できます。

> glxinfo

ただし、プログラムglxinfoが現在インストールされていない場合は、次を入力してインストールできます。

> sudo apt install mesa-utils

というコンポーネントを有効にする必要もありますuniverse。これが完了glxinfoすると、その環境のグラフィックプロセッサに関連するすべての仕様が一覧表示されます。


0

マシン上のビデオカードの名前のみを探している場合は、次を使用します。

$ nvidia-smi --list-gpus

一部の新しいGPUでは、各デバイスのメモリもリストされます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.