it-swarm-vi.com

Làm cách nào để kiểm tra GPU nào đang hoạt động trong Linux?

Tôi có 2 GPU trong netbook của mình. Làm thế nào để tôi biết cái nào tôi thực sự sử dụng tại bất kỳ thời điểm nào?

80
LanceBaynes

Tôi đã trải qua một thời gian cố gắng để làm cho đồ họa rời của tôi hoạt động trong Ubuntu và trả lời câu hỏi này liên tục là một thách thức, vì phương pháp lspci được đề cập trước đây đôi khi có thể nói rằng cả hai đều là [VGA controller]

Tôi nghĩ rằng lệnh sau sẽ cung cấp cho bạn một dấu hiệu của chip hoạt động của bạn:

$ glxinfo|egrep "OpenGL vendor|OpenGL renderer"
OpenGL vendor string: Intel Open Source Technology Center
OpenGL renderer string: Mesa DRI Intel(R) Sandybridge Mobile

Đối với tôi điều này nói với tôi rằng đồ họa intel của tôi đang chạy chương trình. Nếu bạn đang sử dụng chip nvidia và bạn đang sử dụng gói bumblebee, bạn có thể đặt optirun trước dòng đó và nó sẽ cho bạn biết rằng bạn đang chạy chip NVidia (optirun về cơ bản là bảo máy tính sử dụng chip rời để chạy bất kỳ lệnh nào theo sau, nhưng mọi thứ khác vẫn đang sử dụng chip tích hợp)

$ optirun glxinfo|egrep "OpenGL vendor|OpenGL renderer"
OpenGL vendor string: NVIDIA Corporation
OpenGL renderer string: GeForce GT 555M/PCIe/SSE2

glxheads cũng cho bạn biết một số thông tin hữu ích về việc sử dụng card đồ họa nào (chủ yếu lặp lại glxinfo ở dạng tho nhỏ gọn và dễ đọc hơn) và nó cung cấp cho bạn hình vẽ tam giác xoay đẹp mắt.

51
Nickolai

Để kiểm tra GPU nào hiện đang có lệnh (có nghĩa là bộ điều khiển VGA đang hoạt động), nhập vào

lspci -vnnn | Perl -lne 'print if /^\d+\:.+(\[\S+\:\S+\])/' | grep VGA

Bất kỳ bộ điều khiển nào có [VGA controller] ở cuối là GPU hiện đang hoạt động của bạn. Những người khác được tắt. Trong ví dụ sau, thẻ Intel đang hoạt động trong khi nVidia không được sử dụng:

00:02.0 VGA compatible controller [0300]: Intel Corporation Core Processor
Integrated Graphics Controller [8086:0046] (rev 02) (prog-if 00 [VGA 
controller])
01:00.0 VGA compatible controller [0300]: NVIDIA Corporation GF108 [GeForce
GT 540M] [10de:0df4] (rev ff) (prog-if ff)
20
ubuntudroid
nvidia-smi -L

Điều này đã cho tôi những gì tôi muốn. Lệnh này hiển thị danh sách các GPU có trên máy của bạn. Điều này có thể giúp bạn tìm ra những người đang hoạt động.

nhận lệnh từ luồng tại đây: buntu Box có nhiều Thẻ GPU NVIDIA | devtalk.nvidia.com

9
Hardhik

nvidia-settings GUI

Trên Ubuntu 15.10, sau khi tôi cài đặt nvidia-352 và GPU dường như hoạt động:

nvidia-settings

hiển thị một cái gì đó như:

enter image description here

Lưu ý cách hiển thị:

GPU 0 - (NVS 5400M)

ở đâu NVS 5400M là mô hình GPU của tôi.

Sau đó, nếu tôi kích hoạt glxgears, mức sử dụng GPU sẽ đạt> 90%.

Vì vậy, tôi hy vọng rằng nếu bạn có nhiều GPU, bạn có thể thấy mỗi cái đang được sử dụng bao nhiêu.

Bạn đang sử dụng hệ điều hành nào? Nếu bạn sử dụng lspci trên hầu hết các máy linux, bạn sẽ có một danh sách các thiết bị pci của mình, chỉ cần grep cho các thiết bị đồ họa và nó sẽ bật lên cả hai. Sau đó, chỉ cần kiểm tra cấu hình của từng người trong số họ, bạn sẽ thấy chi tiết về up/on/active hoặc một cái gì đó với bản chất đó.

1
baweaver

nvidia-smi rất hữu ích, nhưng đôi khi tôi thấy rằng nó không phải lúc nào cũng bao gồm mọi thứ. Có vẻ như khi các quy trình sụp đổ, chúng không luôn được liệt kê.

Sudo lsof /dev/nvidia* đã luôn làm việc cho tôi. Nó cũng sẽ hoạt động mà không có Sudo, nhưng sẽ chỉ hiển thị các quy trình do bạn sở hữu. Nếu bạn đang làm việc trên một máy nhiều người dùng hoặc đang sử dụng docker, có lẽ bạn sẽ nhận được kết quả tốt hơn với Sudo.

Nếu bạn thấy sự khác biệt giữa 2 lệnh, bạn có thể muốn xem xét killing các quy trình bổ sung được tìm thấy với lsof.

0
Rick Smith