2011-11-22 27 views

Trả lời

57

Tôi không biết bất cứ điều gì mà kết hợp thông tin này, nhưng bạn có thể sử dụng công cụ nvidia-smi để có được các dữ liệu thô, như vậy (nhờ @jmsu for the tip trên -l):

$ nvidia-smi -q -g 0 -d UTILIZATION -l 

==============NVSMI LOG============== 

Timestamp      : Tue Nov 22 11:50:05 2011 

Driver Version     : 275.19 

Attached GPUs     : 2 

GPU 0:1:0 
    Utilization 
     Gpu      : 0 % 
     Memory     : 0 % 
+3

Tôi nghĩ rằng nếu bạn thêm một -l vào đó bạn nhận được nó để cập nhật liên tục theo dõi hiệu quả việc sử dụng GPU và bộ nhớ. – jmsu

+6

Điều gì sẽ xảy ra nếu khi tôi chạy nó, GPU utilizacion chỉ nói N/A ?? – natorro

+3

@natorro Có vẻ như nVidia đã hỗ trợ một số thẻ. Kiểm tra liên kết này http://forums.nvidia.com/index.php?showtopic=205165 – jmsu

15

Tải xuống và cài đặt trình điều khiển CUDA ổn định mới nhất (4.2) từ here. Trên Linux, nVidia-smi 295.41 cung cấp cho bạn những gì bạn muốn. sử dụng nvidia-smi:

[[email protected] release]# nvidia-smi 
Wed Sep 26 23:16:16 2012  
+------------------------------------------------------+      
| NVIDIA-SMI 3.295.41 Driver Version: 295.41   |      
|-------------------------------+----------------------+----------------------+ 
| Nb. Name      | Bus Id  Disp. | Volatile ECC SB/DB | 
| Fan Temp Power Usage /Cap | Memory Usage   | GPU Util. Compute M. | 
|===============================+======================+======================| 
| 0. Tesla C2050    | 0000:05:00.0 On  |   0   0 | 
| 30% 62 C P0 N/A/N/A | 3% 70MB/2687MB | 44%  Default | 
|-------------------------------+----------------------+----------------------| 
| Compute processes:            GPU Memory | 
| GPU PID  Process name          Usage  | 
|=============================================================================| 
| 0. 7336  ./align             61MB | 
+-----------------------------------------------------------------------------+ 

EDIT: Trong trình điều khiển NVIDIA mới nhất, hỗ trợ này bị giới hạn đối với thẻ Tesla.

2

này có thể không được thanh lịch, nhưng bạn có thể thử

while true; do sleep 2; nvidia-smi; done 

Tôi cũng đã thử phương pháp này bằng cách @Edric, mà làm việc, nhưng tôi thích cách bố trí ban đầu của nvidia-smi.

+5

Hoặc bạn chỉ có thể thực hiện 'nvidia-smi -l 2' hoặc để ngăn không cho đầu ra bàn điều khiển lặp lại,' xem -n 2 'nvidia-smi'' – grisaitis

+0

@grisaitis cool stuff! – skyuuka

37

Để có được thời gian thực cái nhìn sâu sắc về tài nguyên sử dụng, làm:

nvidia-smi -l 1

Điều này sẽ lặp và gọi xem tại mỗi giây.

Nếu bạn không muốn giữ lại dấu vết quá khứ của cuộc gọi lặp trong lịch sử giao diện điều khiển, bạn cũng có thể làm:

watch -n0.1 nvidia-smi

đâu 0,1 là khoảng thời gian, chỉ trong vài giây.

enter image description here

6

Một cách tiếp cận giám sát hữu ích là sử dụng ps lọc trên các quá trình tiêu thụ GPU của bạn. Tôi sử dụng số này rất nhiều:

ps f -o user,pgrp,pid,pcpu,pmem,start,time,command -p `lsof -n -w -t /dev/nvidia*` 

Điều đó sẽ hiển thị tất cả quy trình sử dụng GPU nvidia và một số thống kê về chúng. lsof ... truy xuất danh sách tất cả các quy trình sử dụng GPU nvidia thuộc sở hữu của người dùng hiện tại và ps -p ... hiển thị kết quả ps cho các quy trình đó. ps f hiển thị định dạng đẹp cho các mối quan hệ/quy trình con/cha mẹ và -o chỉ định định dạng tùy chỉnh. Điều đó tương tự như chỉ thực hiện ps u nhưng thêm ID nhóm tiến trình và xóa một số trường khác.

Một lợi thế của điều này trên nvidia-smi là nó sẽ hiển thị dĩa xử lý cũng như các quy trình chính sử dụng GPU.

Một bất lợi, tuy nhiên, nó bị giới hạn trong các quy trình do người dùng sở hữu thực hiện lệnh. Để mở nó cho tất cả các quy trình thuộc sở hữu của bất kỳ người dùng nào, tôi thêm sudo trước lsof.

Cuối cùng, tôi kết hợp nó với watch để nhận bản cập nhật liên tục.Vì vậy, cuối cùng, nó trông giống như:

watch -n 0.1 'ps f -o user,pgrp,pid,pcpu,pmem,start,time,command -p `sudo lsof -n -w -t /dev/nvidia*`' 

nào có đầu ra như:

Every 0.1s: ps f -o user,pgrp,pid,pcpu,pmem,start,time,command -p `sudo lsof -n -w -t /dev/nvi... Mon Jun 6 14:03:20 2016 
USER  PGRP PID %CPU %MEM STARTED  TIME COMMAND 
grisait+ 27294 50934 0.0 0.1 Jun 02 00:01:40 /opt/google/chrome/chrome --type=gpu-process --channel=50877.0.2015482623 
grisait+ 27294 50941 0.0 0.0 Jun 02 00:00:00 \_ /opt/google/chrome/chrome --type=gpu-broker 
grisait+ 53596 53596 36.6 1.1 13:47:06 00:05:57 python -u process_examples.py 
grisait+ 53596 33428 6.9 0.5 14:02:09 00:00:04 \_ python -u process_examples.py 
grisait+ 53596 33773 7.5 0.5 14:02:19 00:00:04 \_ python -u process_examples.py 
grisait+ 53596 34174 5.0 0.5 14:02:30 00:00:02 \_ python -u process_examples.py 
grisait+ 28205 28205 905 1.5 13:30:39 04:56:09 python -u train.py 
grisait+ 28205 28387 5.8 0.4 13:30:49 00:01:53 \_ python -u train.py 
grisait+ 28205 28388 5.3 0.4 13:30:49 00:01:45 \_ python -u train.py 
grisait+ 28205 28389 4.5 0.4 13:30:49 00:01:29 \_ python -u train.py 
grisait+ 28205 28390 4.5 0.4 13:30:49 00:01:28 \_ python -u train.py 
grisait+ 28205 28391 4.8 0.4 13:30:49 00:01:34 \_ python -u train.py 
+1

Bạn cũng có thể nhận được các PID của các chương trình tính toán chiếm GPU của tất cả người dùng không có 'sudo' như thế này:' nvidia-smi --query-compute-apps = pid --format = csv, noheader' –

7

Sử dụng lập luận "--query-compute-apps ="

nvidia-smi --query-compute-apps=pid,process_name,used_memory --format=csv 

để được trợ giúp thêm, hãy làm theo

nvidia-smi --help-query-compute-app 
Các vấn đề liên quan