Làm thế nào để có được thông tin GPU?


155

Tôi đang tìm kiếm một lệnh sẽ cung cấp cho tôi thông tin tương tự như:

cat /proc/cpuinfo 

Ngoại trừ GPU (loại chip và bộ nhớ, tần số).


gì: cat /proc/cpuinfo làm gì? bạn đang tìm kiếm thông tin gì?
Charlie Parker

1
@CharlieParker nó xuất thông tin của cpu ...
Emobe

Câu trả lời:


75

Loại thông tin đó là không chuẩn, và các công cụ bạn sẽ sử dụng để thu thập thông tin đó rất khác nhau.

Lệnh glxinfosẽ cung cấp cho bạn tất cả thông tin OpenGL có sẵn cho bộ xử lý đồ họa, bao gồm cả tên nhà cung cấp của nó, nếu trình điều khiển được cài đặt chính xác.

Để có được thông tin tốc độ đồng hồ, không có công cụ tiêu chuẩn.

  • Đối với GPU ATI / AMD, aticonfig --odgcsẽ lấy tốc độ xung nhịp và aticonfig --odgtsẽ lấy dữ liệu nhiệt độ.
  • Đối với GPU NVIDIA, nvclockchương trình sẽ lấy thông tin tương tự.

Tôi không biết về một công cụ tương đương cho trình điều khiển nguồn mở hoặc cho Intel hoặc các GPU khác.

Thông tin khác về phần cứng có thể được lấy từ lspcilshwcác công cụ.


2
Làm thế nào để cài đặt glxinfo?
stiv 13/03/2015

7
@stiv: Đây là một phần của thư viện Mesa và đi kèm với gói mesa-utilstrên Ubuntu.
greyfade

2
aticonfigdường như không có sẵn kể từ khi nghỉ hưu của fglrx. nvclockcũng có vẻ đã bị bỏ rơi kể từ phiên bản cuối cùng là đáng tin cậy. Bạn có bất kỳ giải pháp cập nhật? Đây là những gì tôi có cho đến nay ..
Elder Geek

2
glxinfo | grep "Device"hoạt động đủ tốt với tôi trên GPU Intel
John Hamilton

Tôi sử dụng:glxinfo | egrep -i 'device|memory'
nguy hiểm89

154

Tôi không biết tương đương trực tiếp, nhưng lshw sẽ cung cấp cho bạn thông tin bạn muốn, hãy thử:

sudo lshw -C display

(nó cũng hoạt động mà không có sudonhưng thông tin có thể kém hoàn chỉnh / chính xác)

Bạn cũng có thể cài đặt gói lshw-gtkđể có GUI.


3
Phải đặt gksu trước lệnh trong menu để khiến lshw-gtk hoạt động.
robin0800

Bất cứ cập nhập nào? Tôi là một fan hâm mộ của lệnh nhưng tốc độ xung nhịp (tần số) duy nhất mà nó dường như cung cấp cho tôi là xung nhịp bus cơ sở 33 MHz. Tôi đang cố gắng để cập nhật Q & A này. Cảm ơn bạn!
Anh Cả Geek

1
Lời xin lỗi, mới học sâu. Nó nên nói gì nếu tôi có GPU? Nó nóiproduct: 2nd Generation Core Processor Family Integrated Graphics Controller
thẳng thắn

80

Một bài đăng blog tập trung vào công việc được thực hiện trên dòng lệnh ở đây:

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

Tìm ra ID thiết bị:

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

Sau đó, bạn có thể sử dụng đầu ra này lspcimột lần nữa, tạo thành hai lệnh lồng nhau

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

Nếu bạn có nhiều hơn 1 thẻ GPU, hãy thử lệnh tương đương này:

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

Đầu ra từ hệ thống của tôi:

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

EDIT: Bạn có thể tránh <access denied>bằng cách khởi chạy vớisudo

Vì vậy, (prefetchable) [size=64M)chỉ ra rằng tôi có thẻ NVIDIA 64 MB. Tuy nhiên, tôi không, đó là 256 MB. Tại sao? Xem bên dưới.

Để xem cách tận dụng tối đa thông tin và hiệu suất của nó, hãy đọc một bài viết cực kỳ toàn diện về Arch-Linux Wiki

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

Đối với người dùng nvidia , hãy bắt đầu với

nvidia-smi

(Điều này hoạt động với trình điều khiển Nvidia được cài đặt, nhưng không hoạt động với các hệ thống chạy trình điều khiển 'nouveau' nguồn mở).

Đầu ra

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                                               |
+-----------------------------------------------------------------------------+

Điều này cho thấy rằng tôi có thẻ Đồ họa GDDR3 256 MB.

Tại thời điểm này, tôi không biết làm thế nào để có được điều này cho GPU Intel và AMD / ATI.


12
+1 cho nvidia-smi(cần được tô sáng một chút theo ý kiến ​​của tôi)
Martin Thoma


2
Đây thực sự nên là câu trả lời được chấp nhận!
INElutTabile

1
nvidia-smikhông hiển thị cho tôi tên GPU đầy đủ.
mrgloom

48

Chạy google-chromevà điều hướng đến URL about:gpu. Nếu chrome đã tìm ra cách sử dụng OpenGL, bạn sẽ nhận được thông tin cực kỳ chi tiết về GPU của mình.


2
Điều này cũng hoạt động trong Chromium ( chromium-browser).
Eliah Kagan

Tài giỏi. Dọc theo những dòng này, tôi cũng đã đến chromeexperiment.com để xem hiệu suất ở đó. Mịn màng như bơ - Tôi chắc chắn có trên gpu
Jacksonkr

30

Vì bạn đã chỉ định một lệnh như catcho CPU, do đó, đây là tương đương với GPU. Cụ thể cho thẻ Nvidia. Nó không yêu cầu phần mềm nào ngoại trừ trình điều khiển thiết bị Nvidia được tải.

Đường dẫn ở đây hoạt động cho các thẻ tôi có. Nhưng của bạn có thể khác nhau như những người khác đã chỉ ra trong các ý kiến.

GPU thứ 1

> 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

GPU thứ 2

> 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
Cảm ơn! (mặc dù cat /proc/driver/nvidia/gpus/0000\:01\:00.0/informationđối với tôi)
matt wilkie

1
Đây là câu trả lời đúng duy nhất trong môi trường cụm đám mây / HPC theo yêu cầu mà cả glxinfo hoặc lspci đều thất bại (trước đây vì không có OpenGL và hiển thị, sau này vì card đồ họa nVidia được trừu tượng hóa bởi bộ điều khiển đồ họa như Matrox G200eW3). Tên thư mục trong gpus là 0000:3b:00.0hoặc 0000:d8:00.0cho tôi, vì vậy chúng ta nên gõ : cat /proc/driver/nvidia/gpus/0000:3b:00.0/information. Tesla V100-PCIE-16GBMô hình đáng yêu cho thấy qsubgiới hạn công việc được thỏa mãn như mong muốn.
dùng5280911



7

Tôi tin rằng lựa chọn tốt nhất cho việc này là neofetch .

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

Điều này mang lại một đầu ra như thế này:


3
Tôi không thấy tần số thẻ nhớ và bộ nhớ trong câu trả lời này. Có nhiều phương pháp đơn giản hơn để có được mô hình GPU dường như là tất cả những gì bạn đang cung cấp cho chúng tôi. Tôi không chắc điều này bổ sung vào câu trả lời hiện có.
Anh Cả Geek

1
Các screenfetchchương trình làm điều tương tự và không đòi hỏi một PPA để cài đặt.
Braden hay nhất

Đó là một kịch bản shell. Thêm vào đó tôi cũng liên kết với github của nó để bạn có thể sử dụng nó như một tập lệnh.
HaoZeke

1
Dưới đây là màn hình: github.com/KittyKatt/screenFetch
Camille Goudeseune

5

Màn hình Conky hoặc Terminal Splash

Tôi sử dụng hai phương pháp để tự động hiển thị thông tin GPU nVidia và Intel iGPU:

  • Conky tự động hiển thị thông tin GPU trong thời gian thực
  • ~/.bashrc hiển thị thông tin GPU mỗi khi thiết bị đầu cuối được mở

Conky hiển thị thời gian thực

Ví dụ này sử dụng Conky để hiển thị số liệu thống kê GPU hiện tại (nVidia hoặc Intel) trong thời gian thực. Conky là một màn hình hệ thống trọng lượng nhẹ phổ biến trong số nhiều người đam mê Linux.

Màn hình thay đổi tùy thuộc vào việc bạn khởi động sau prime-select intelhay prime-select nvidia.

Intel iGPU

gpu temp intel.gif

  • Intel iGPU hiển thị như Skylake GT2 HD 530 iGPUvới tần số hiện tại
  • Tần số tối thiểu là 350MHz và tối đa là 1050MHz

GPU nVidia

gpu temp nvidia.gif

  • GPU nVidia hiển thị như GeForce GTX970Mvới tần số và nhiệt độ GPU hiện tại
  • Phiên bản Driver, P-State và BIOS được hiển thị
  • Tải GPU, sử dụng RAM, tiêu thụ năng lượng và tần số RAM được hiển thị

Mã Conky

Dưới đây là tập lệnh Conky có liên quan cho GPU Intel iGPU và nVidia:

#------------+
# 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 Màn hình giật gân thiết bị đầu cuối

Ví dụ này sửa đổi ~/.bashrcđể hiển thị thông tin trên màn hình giật gân mỗi khi thiết bị đầu cuối được mở hoặc bất cứ khi nào bạn gõ . .bashrctại dấu nhắc trình bao.

Ngoài việc neofetchtrả lời trước đây, có screenfetchcái nào đẹp hơn (IMO). Ngoài ra, một câu trả lời khác đề cập đến việc anh ta không biết cách liệt kê iGPU và điều này thực hiện:

thiết bị đầu cuối Ubuntu giật gân.png

Để biết chi tiết về thiết lập, hãy xem: Màn hình giới thiệu thiết bị đầu cuối với Thời tiết, Lịch, Thời gian & Sysinfo?

Tóm lại chỉ dành cho phần dưới cùng với màn hình Ubuntu chứa thông tin GPU (dòng cuối cùng thứ hai) sử dụng:

sudo apt install screenfetch
screenfetch

Bạn sẽ muốn đặt screenfetchlệnh ở dưới cùng của ~/.bashrctệp để nó xuất hiện mỗi khi bạn mở thiết bị đầu cuối.



3

Điều này thực sự không phức tạp đối với kiểu máy và bộ nhớ, đây là 1 lớp lót hoạt động cho mọi card màn hình mà tôi đã thử nghiệm trên bất kể nhà sản xuất nào (Intel, AMD, NVIDIA):

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 = Tất cả những gì bit này làm là lấy trường thứ 3 từ đầu ra 'lspci' được lọc qua 'grep' cho VGA tương ứng với chip video.

RAM = Tất cả các bit này được đặt biến cardidbằng trường đầu ra đầu tiên từ lspci"VGA" phù hợp và cung cấp theo yêu cầu cho -vđầu ra dài dòng từ thiết bị lspcicụ thể đó -s, tiếp tục lọc đầu ra grepcho chuỗi "có thể tìm nạp trước" vì điều này có chứa bộ nhớ trên chính thẻ (lưu ý không gian trước vì chúng tôi không muốn khớp "không thể tìm nạp trước" trong đầu ra của chúng tôi.

Đối với tốc độ xung nhịp trên đồ họa tích hợp Intel (Đã thử nghiệm trên I3 và I5)

thực hiện lệnh sudo find /sys -type f -name gt_cur* -print0 | xargs -0 cat Điều này sẽ đi sâu vào cây / sys để xác định vị trí tệp gt_cur_freq_mhz trên I3 của tôi /sys/devices/pci0000:00/0000:00:02.0/drm/card0/gt_cur_freq_mhzvà in nội dung. trong trường hợp của tôi, dưới tải cực nhẹ là 350350 MHz, tương ứng với tần số tối thiểu được tìm thấy trong /sys/devices/pci0000:00/0000:00:02.0/drm/card0/gt_min_freq_mhzvà khi chạy glxgearsglmark2kết quả 1050là ở 1050 MHz tương ứng với tần số tối đa được tìm thấy trong/sys/devices/pci0000:00/0000:00:02.0/drm/card0/gt_max_freq_mhz

Đối với tốc độ xung nhịp trên thẻ nvidia:

nvidia-smi -stats -d procClktương ứng với đồng hồ GPU nvidia-smi -stats -d memClktương ứng với đồng hồ bộ nhớ.

Lưu ý: Tôi không thể kiểm tra ở trên vì GeForce 210 đáng tin cậy của tôi không được hỗ trợ và điều này chỉ hoạt động trên Kepler hoặc GPU mới hơn như được chỉ định bởi `nvidia-smi -stats --help '

Tôi hiện không có bất kỳ giải pháp nào cho tốc độ xung nhịp trên thẻ AMD và không có phần cứng để thử nghiệm. Tuy nhiên tôi sẽ nói rằng theo hiểu biết tốt nhất của tôi, aticonfigcâu trả lời được chấp nhận trong câu trả lời được chấp nhận không còn tồn tại và dường như nó nvclockkhông có sẵn cho bất cứ điều gì kể từ khi đáng tin cậy.


2

Nếu bạn đang chạy Ubuntu trên Chromebook bằng crouton, thì một trong những câu trả lời sẽ hoạt động là chrome://gputrong trình duyệt Chrome.


2

Nếu bạn muốn có thông tin đơn giản, bạn có thể thử gpustat . Nó rất tốt và đơn giản.

ảnh chụp màn hình gpustat

Tác giả đưa ra các hướng dẫn cài đặt sau:

Cài đặt từ PyPI:

pip install gpustat 

Để cài đặt phiên bản mới nhất (nhánh chính) qua pip:

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

Nếu bạn không có quyền root, vui lòng thử cài đặt trên không gian tên người dùng : pip install --user. Lưu ý rằng từ v0.4, gpustat.pykhông còn thực thi phụ thuộc 0 nữa. Tuy nhiên, trong những trường hợp hiếm hoi, bạn sẽ cần một tập lệnh thực thi (di sản), bạn cũng có thể thử:

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

Chà, câu trả lời này giả định rằng bạn có một máy chủ với NVIDIA-GPU. Bạn có ba cách:

  1. Để có được một ý chính ngắn: nvidia-smi

  2. Để có được một chi tiết : nvidia-smi -q. Bạn sẽ nhận được nhiều màn hình thông tin chi tiết nếu bạn có nhiều hơn 1 gpu.

  3. Làm a ls /proc/driver/nvidia/gpus/. Nó sẽ hiển thị vị trí GPU-bus dưới dạng các thư mục. Bây giờ, hãy chạy lệnh sau cho từng vị trí bus gpu. Điền vào <gpu-id>vị trí xe buýt:cat /proc/driver/nvidia/gpus/<gpu_id>/information


1

Đối với Intel GMA950 (đặc biệt đi kèm với EeePC), bạn có thể chạy:

setpci -s 00:02.0 f0.b

sẽ trả về '00' cho 200 MHz, '01' cho 250 MHz hoặc '03' cho 400 MHz. Bạn có thể áp dụng nguyên tắc tương tự cho các thẻ Intel khác.


Tôi đang nhận được 04. GPU của tôi là Bộ điều khiển tương thích VGA 00: 02.0: Bộ điều khiển đồ họa tích hợp Intel Corporation Mobile GM965 / GL960 (chính) (rev 03) (prog-if 00 [Bộ điều khiển VGA])
johny tại sao

1

Nếu bạn có Thẻ AMD Radeon, bạn có thể muốn chạy các lệnh sau

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

Nó sẽ báo cáo một cái gì đó như thế này

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

Đối với GPU nvidia, nvidia-smilệnh là bạn của bạn. Xem man nvidia-sminếu bạn thích.

Để liệt kê GPU sử dụng nvidia-smi -L( nvidia-smi --list-gpus), nvidia-smi -qhãy cung cấp thông tin về gpu và các quy trình đang chạy.


0

Sử dụng lspci, lspci -vđể có được thông tin cơ bản xem tại đây .

Trong trường hợp của tôi cho ex một khi tôi chạy lspcivà tôi đã có:

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

Để có được tất cả thông tin về bộ xử lý đồ họa, bạn có thể sử dụng lệnh sau theo quy định của @greyfade.

> glxinfo

Tuy nhiên, nếu chương trình glxinfohiện chưa được cài đặt, bạn có thể cài đặt nó bằng cách gõ:

> sudo apt install mesa-utils

Bạn cũng sẽ phải kích hoạt thành phần được gọi universe. Một khi điều này được thực hiện, glxinfosẽ liệt kê tất cả các thông số kỹ thuật liên quan đến bộ xử lý đồ họa trong môi trường đó.


0

Nếu bạn chỉ tìm kiếm tên của các thẻ video trên máy, thì chỉ cần sử dụng:

$ nvidia-smi --list-gpus

Đối với một số GPU mới hơn, điều này cũng liệt kê bộ nhớ của từng thiết bị.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.