lệnh hàng đầu cho GPU sử dụng CUDA


67
33
Ngô An Yên
7 năm trước

Tôi đang cố gắng theo dõi một quá trình sử dụng cuda và MPI, có cách nào tôi có thể làm điều này không, giống như lệnh "top" nhưng cũng giám sát GPU?

Hữu ích 67 Yêu thích 33 Chia sẻ Viết bình luận 2
Không hữu ích

Ngoài ra còn có nvtop github.com/Syllo/nvtop

Hữu ích 1 · Không hữu ích · Trả lời 0

"nvidia-smi pmon -i 0" có thể giám sát tất cả quá trình chạy trên GPU nvidia 0

Hữu ích 0 · Không hữu ích · Trả lời 0

12 Trả lời


32
Tạ Minh Ngọc
1 năm trước

Tôi thấy gpustat rất hữu ích. Trong có thể được cài đặt với pip install gpustat, và in phân tích sử dụng theo quy trình hoặc người dùng.

Hữu ích 32 Trả lời hay nhất Chia sẻ Viết bình luận 1
Không hữu ích

Trên cửa sổ sử dụng pip install gpustat==0.3.2, bởi vì nó không sử dụng fcntlmô-đun.

Hữu ích 1 · Không hữu ích · Trả lời 0

76
Đỗ Dạ Bích
7 năm trước

Tôi không biết bất cứ điều gì kết hợp thông tin này, nhưng bạn có thể sử dụng nvidia-smicông cụ để lấy dữ liệu thô, như vậy (cảm ơn @jmsu cho mẹo 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 %
Hữu ích 76 Chia sẻ Viết bình luận 5
Không hữu ích

Tôi thích watch -n 0.5 nvidia-smi, điều này tránh làm đầy thiết bị đầu cuối của bạn với đầu ra

Hữu ích 28 · Không hữu ích · Trả lời 0

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

Hữu ích 6 · Không hữu ích · Trả lời 0

Tôi nghĩ rằng nếu bạn thêm một -l vào đó bạn sẽ 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ớ.

Hữu ích 4 · Không hữu ích · Trả lời 0

@natorro Hình như nVidia đã bỏ hỗ trợ cho một số thẻ. Kiểm tra liên kết này forums.nvidia.com/index.php?showtopic=205165

Hữu ích 3 · Không hữu ích · Trả lời 0

Thật vậy, đó là lý do tại sao :-(

Hữu ích 0 · Không hữu ích · Trả lời 0

74
Đặng Sao Khuê
3 năm trước

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

nvidia-smi -l 1

Điều này sẽ lặp và gọi chế độ xem mỗi giây.

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

watch -n0.1 nvidia-smi

Trong đó 0,1 là khoảng thời gian, tính bằng giây.

Hữu ích 74 Chia sẻ Viết bình luận 2
Không hữu ích

Truy vấn thẻ cứ sau 0,1 giây? Điều đó sẽ gây ra tải trên thẻ? Ngoài ra, sử dụng đồng hồ, bạn bắt đầu một quy trình mới cứ sau 0,1 giây.

Hữu ích 0 · Không hữu ích · Trả lời 0

Tôi tò mò muốn xem ai đó điểm chuẩn đó!

Hữu ích 0 · Không hữu ích · Trả lời 0

19
Dương Khải Hòa
7 năm trước

Tải xuống và cài đặt trình điều khiển CUDA ổn định mới nhất (4.2) từ đây . 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:

[root@localhost 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 các trình điều khiển NVIDIA mới nhất, hỗ trợ này được giới hạn trong Thẻ Tesla.

Hữu ích 19 Chia sẻ Viết bình luận 0
Không hữu ích

13
Vũ Thái Dương
3 năm trước

Một phương pháp giám sát hữu ích khác là sử dụng bộ pslọc trên các quy trình tiêu thụ GPU của bạn. Tôi sử dụng cái 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ả các quy trình sử dụng GPU của nvidia và một số thống kê về chúng. lsof ...lấy danh sách tất cả các quy trình sử dụng GPU nvidia do người dùng hiện tại sở hữu và ps -p ...hiển thị pskết quả cho các quy trình đó. ps fhiển thị định dạng đẹp cho các mối quan hệ / phân cấp quá trình con / cha mẹ và -ochỉ định định dạng tùy chỉnh. Cái đó tương tự như chỉ làm ps unhưng thêm ID nhóm quy trình và xóa một số trường khác.

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

Tuy nhiên, một nhược điểm là nó bị giới hạn trong các quy trình thuộc sở hữu của người dùng thực thi 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 một sudotrước lsof.

Cuối cùng, tôi kết hợp nó với watchđể có được một 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*`'

Mà 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
Hữu ích 13 Chia sẻ Viết bình luận 3
Không hữu ích

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 mà không cần sudonhư thế này:nvidia-smi --query-compute-apps=pid --format=csv,noheader

Hữu ích 2 · Không hữu ích · Trả lời 0

Đôi khi nvidia-smikhông liệt kê tất cả các quy trình, vì vậy bạn kết thúc với bộ nhớ của mình được sử dụng bởi các quy trình không được liệt kê ở đó. Đây là cách chính để tôi có thể theo dõi và tiêu diệt các quá trình đó.

Hữu ích 1 · Không hữu ích · Trả lời 0

@grisaitis Carefull, tôi không nghĩ rằng việc pmemđưa ra pscó tính đến tổng bộ nhớ của GPU nhưng là của CPU vì pskhông biết "GPU Nvidia"

Hữu ích 0 · Không hữu ích · Trả lời 0

12
Dương Hồng Thư
2 năm trước

Sử dụng đối số "--query-compute-apps ="

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

để được giúp đỡ thêm, xin vui lòng làm theo

nvidia-smi --help-query-compute-app
Hữu ích 12 Chia sẻ Viết bình luận 0
Không hữu ích

7
Nguyễn Việt Tuyết
1 năm trước

Chỉ cần sử dụng watch nvidia-smi, nó sẽ xuất thông báo theo khoảng thời gian 2 giây theo mặc định.

Ví dụ, như hình ảnh dưới đây:

Bạn cũng có thể sử dụng watch -n 5 nvidia-smi(khoảng 5 đến 5 giây).

Hữu ích 7 Chia sẻ Viết bình luận 0
Không hữu ích

2
Hoàng Hồng Thắm
3 năm trước

Điều này có thể không 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 thức của @Edric, nó hoạt động, nhưng tôi thích cách bố trí ban đầu của nvidia-smi.

Hữu ích 2 Chia sẻ Viết bình luận 2
Không hữu ích

Hoặc bạn có thể làm nvidia-smi -l 2. Hoặc để ngăn chặn đầu ra giao diện điều khiển lặp đi lặp lại,watch -n 2 'nvidia-smi'

Hữu ích 10 · Không hữu ích · Trả lời 0

@grisa viêm thứ mát!

Hữu ích 0 · Không hữu ích · Trả lời 0

2
Bùi Hoàng Thy
7 tháng trước

Bạn có thể thử nvtop, tương tự như htopcông cụ được sử dụng rộng rãi nhưng dành cho GPU NVIDIA. Đây là một ảnh chụp màn hình nvtopcủa nó trong hành động.

Hữu ích 2 Chia sẻ Viết bình luận 0
Không hữu ích

0
Thủy Phạm
1 năm trước

Prometheus GPU Metrics Exporter (PGME) tận dụng nhị phân nvidai-smi. Bạn có thể thử điều này. Khi bạn có nhà xuất khẩu đang chạy, bạn có thể truy cập nó qua http: // localhost: 9101 / metrics . Đối với hai GPU, kết quả mẫu trông như thế này:

temperature_gpu{gpu="TITAN X (Pascal)[0]"} 41
utilization_gpu{gpu="TITAN X (Pascal)[0]"} 0
utilization_memory{gpu="TITAN X (Pascal)[0]"} 0
memory_total{gpu="TITAN X (Pascal)[0]"} 12189
memory_free{gpu="TITAN X (Pascal)[0]"} 12189
memory_used{gpu="TITAN X (Pascal)[0]"} 0
temperature_gpu{gpu="TITAN X (Pascal)[1]"} 78
utilization_gpu{gpu="TITAN X (Pascal)[1]"} 95
utilization_memory{gpu="TITAN X (Pascal)[1]"} 59
memory_total{gpu="TITAN X (Pascal)[1]"} 12189
memory_free{gpu="TITAN X (Pascal)[1]"} 1738
memory_used{gpu="TITAN X (Pascal)[1]"} 10451
Hữu ích 0 Chia sẻ Viết bình luận 0
Không hữu ích

0
Trần Ngọc Yên
9 tháng trước

bạn có thể sử dụng nvidia-smi pmon -i 0để giám sát mọi quá trình trong GPU 0. bao gồm chế độ tính toán, sử dụng sm, sử dụng bộ nhớ, sử dụng bộ mã hóa, sử dụng bộ giải mã.

Hữu ích 0 Chia sẻ Viết bình luận 0
Không hữu ích

0
Bùi Thanh Việt
8 tháng trước

Bạn có thể sử dụng các chương trình giám sát liếc với trình cắm giám sát GPU của nó :

  • mã nguồn mở
  • để cài đặt: sudo apt-get install -y python-pip; sudo pip install glances[gpu]
  • để khởi chạy: sudo glances

Nó cũng giám sát CPU, IO đĩa, không gian đĩa, mạng và một số thứ khác:

Hữu ích 0 Chia sẻ Viết bình luận 0
Không hữu ích

Trả lời của bạn

Xem trước nội dung