Tôi đang cố gắng theo dõi quá trình sử dụng cuda và MPI, có cách nào tôi có thể thực hiện việc này không, giống như lệnh "trên cùng" nhưng cũng giám sát GPU?lệnh đỉnh cho GPU đang sử dụng CUDA
Trả lời
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 %
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.
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
.
Để 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.
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
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' –
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
- 1. Tính toán Multi-GPU Cuda
- 2. Bắt Theano để sử dụng GPU
- 3. CUDA: cách sử dụng lực đẩy :: sort_by_key trực tiếp trên GPU?
- 4. Cuda - OpenCL CPU 4x nhanh hơn so với OpenCL hoặc CUDA phiên bản GPU
- 5. Kiểm tra xem mã đang chạy trên GPU hay CPU
- 6. Máy tính GPU song song sử dụng OpenCV
- 7. Sử dụng GLshort thay vì GLfloat cho các đỉnh
- 8. Khởi chạy đồng thời nhiều hạt nhân bằng CUDA cho GPU
- 9. Đồng thời, 4 Ứng dụng CUDA cạnh tranh để nhận tài nguyên GPU
- 10. OpenCV trên iOS - Sử dụng GPU?
- 11. Sử dụng bộ nhớ GPU progamatically
- 12. Sử dụng số ngẫu nhiên với GPU
- 13. sử dụng cơ bản nhiều GPU
- 14. Cách sử dụng đa hình trong CUDA
- 15. Lập trình GPU?
- 16. Đang tải mã lên GPU (Intel Sandy Bridge)
- 17. initializer không được phép cho __shared__ biến cho CUDA
- 18. Có ngôn ngữ lắp ráp cho CUDA không?
- 19. Lỗi Opencv: không hỗ trợ GPU (thư viện được biên dịch không hỗ trợ CUDA)
- 20. Sử dụng hằng số với CUDA
- 21. Phép nhân ma trận sử dụng CUDA
- 22. OpenCL FFT lib cho GPU?
- 23. Cách dễ nhất để sử dụng GPU cho song song cho vòng lặp
- 24. Thuật toán thống kê Sparse Cholesky cho GPU
- 25. Hiệu quả chuyển tệp lớn (tối đa 2GB) sang GPU CUDA?
- 26. gì đang attr_internal sử dụng cho
- 27. Làm cách nào để chạy mã MATLAB trên GPU bằng CUDA?
- 28. Có bao nhiêu lõi 'CUDA' của mỗi bộ xử lý GPU?
- 29. Tại sao không sử dụng GPU làm CPU?
- 30. in từ hạt nhân cuda
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
Điều gì sẽ xảy ra nếu khi tôi chạy nó, GPU utilizacion chỉ nói N/A ?? – natorro
@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