উত্তর:
এনভিডিয়া জিপিইউগুলির জন্য একটি সরঞ্জাম রয়েছে nvidia-smi
যা মেমরির ব্যবহার, জিপিইউর ব্যবহার এবং জিপিইউর তাপমাত্রা প্রদর্শন করতে পারে। এছাড়াও গণনা প্রক্রিয়াগুলির একটি তালিকা রয়েছে এবং আরও কয়েকটি বিকল্প রয়েছে তবে আমার গ্রাফিক কার্ড (জিফোর্স 9600 জিটি) পুরোপুরি সমর্থিত নয়।
Sun May 13 20:02:49 2012
+------------------------------------------------------+
| NVIDIA-SMI 3.295.40 Driver Version: 295.40 |
|-------------------------------+----------------------+----------------------+
| Nb. Name | Bus Id Disp. | Volatile ECC SB / DB |
| Fan Temp Power Usage /Cap | Memory Usage | GPU Util. Compute M. |
|===============================+======================+======================|
| 0. GeForce 9600 GT | 0000:01:00.0 N/A | N/A N/A |
| 0% 51 C N/A N/A / N/A | 90% 459MB / 511MB | N/A Default |
|-------------------------------+----------------------+----------------------|
| Compute processes: GPU Memory |
| GPU PID Process name Usage |
|=============================================================================|
| 0. Not Supported |
+-----------------------------------------------------------------------------+
watch -n 0.5 nvidia-smi
, আউটপুট দিয়ে আপনার টার্মিনালটি পূরণ না করে আউটপুট আপডেট রাখবে।
watch -d -n 0.5 nvidia-smi
আরও ভাল হবে।
-d
পতাকাটি কী করে তা ব্যাখ্যা করা ভাল হবে
man watch
আমাদের জানিয়েছে -d
পতাকাটি আউটপুটগুলির মধ্যে পার্থক্যগুলি হাইলাইট করে, তাই এটি সময়ের সাথে সাথে কোন মেট্রিকগুলি পরিবর্তন হচ্ছে তা হাইলাইট করতে সহায়তা করতে পারে।
লিনাক্সের জন্য, ব্যবহার nvidia-smi -l 1
আপনাকে ক্রমাগত 1 সেকেন্ডের রিফ্রেশ ব্যবধান সহ জিপিইউ ব্যবহারের তথ্য দেয়।
watch -n 1 nvidia-smi
আউটপুট দিয়ে টার্মিনালটি পূরণ না করে অবিচ্ছিন্ন আপডেটগুলি ব্যবহার করতে পছন্দ করি
সম্প্রতি আমি একটি সাধারণ কমান্ড-লাইন ইউটিলিটি লিখেছি gpustat
যা (যার একটি মোড়ক nvidia-smi
): দয়া করে একবার দেখুন https://github.com/wookayin/gpustat ।
ইন্টেল জিপিইউ-র জন্য এখানে http://intellinuxرافics.org/ প্রকল্প intel-gpu-tools
থেকে উপস্থিত রয়েছে , যা কমান্ডটি নিয়ে আসে (অন্যান্য জিনিসের মধ্যে)। এটি অনুরূপ এবং বিশেষত ইন্টেল জিপিইউর জন্য।intel_gpu_top
top
htop
render busy: 18%: ███▋ render space: 39/131072
bitstream busy: 0%: bitstream space: 0/131072
blitter busy: 28%: █████▋ blitter space: 28/131072
task percent busy
GAM: 33%: ██████▋ vert fetch: 0 (0/sec)
GAFS: 3%: ▋ prim fetch: 0 (0/sec)
VS: 0%: VS invocations: 559188 (150/sec)
SF: 0%: GS invocations: 0 (0/sec)
VF: 0%: GS prims: 0 (0/sec)
DS: 0%: CL invocations: 186396 (50/sec)
CL: 0%: CL prims: 186396 (50/sec)
SOL: 0%: PS invocations: 8191776208 (38576436/sec)
GS: 0%: PS depth pass: 8158502721 (38487525/sec)
HS: 0%:
TE: 0%:
GAFM: 0%:
SVG: 0%:
nvidia-smi
কিছু লিনাক্স মেশিনে কাজ করে না (অনেক বৈশিষ্ট্যের জন্য এন / এ প্রদান করে)। আপনি তার nvidia-settings
পরিবর্তে ব্যবহার করতে পারেন (এটি তার মাদুর স্ক্রিপ্টে মাদুর কেলসিও ব্যবহৃত হয়েছিল)।
nvidia-settings -q GPUUtilization -q useddedicatedgpumemory
আপনি এটি ব্যবহার করতে পারেন:
watch -n0.1 "nvidia-settings -q GPUUtilization -q useddedicatedgpumemory"
অবিচ্ছিন্ন পর্যবেক্ষণ জন্য।
nvidia-settings -q all
কী কী প্যারামিটারগুলি পর্যবেক্ষণ করতে পারেন তা দেখতে আপনি করতে পারেন। আমি নিরীক্ষণ করছি GPUCurrentProcessorClockFreqs
এবং GPUCurrentClockFreqs
।
nvidia-settings -q [gpu:0]/UsedDedicatedGPUMemory -t
লিনাক্সের জন্য, আমি এই HTTP মতো সরঞ্জামটি ব্যবহার করি যা আমি নিজে লিখেছিলাম। এটি জিপিইউ তাপমাত্রার পাশাপাশি কোর / ভিআরএএম / পিসিআই-ই এবং মেমরির বাসের ব্যবহারের উপর নজরদারি ও সংক্ষিপ্তসার দেয়। এটি জিপিইউতে কী চলছে তা নিরীক্ষণ করে না।
nvidia-settings
একটি চলমান এক্স 11 প্রয়োজন, যা সবসময় হয় না।
আমার একটি জিফর্স 1060 জিটিএক্স ভিডিও কার্ড রয়েছে এবং আমি দেখতে পেয়েছি যে নিম্নলিখিত কমান্ডটি কার্ডের ব্যবহার, তাপমাত্রা, ফ্যানের গতি এবং বিদ্যুত ব্যবহার সম্পর্কে আমাকে তথ্য দেয়:
$ nvidia-smi --format=csv --query-gpu=power.draw,utilization.gpu,fan.speed,temperature.gpu
আপনি এর সাথে সমস্ত প্রশ্নের বিকল্পগুলির তালিকা দেখতে পাবেন:
$ nvidia-smi --help-query-gpu
memory.used
বা ( memory.free
)ও মূল্যবান হবে ।
জিপিইউ সম্পর্কিত বৈশিষ্ট্যগুলিকে সমর্থন করার জন্য atMonitor এর শেষ সংস্করণটি atMonitor 2.7.1।
- এবং 2.7.1 এর লিঙ্কটি 2.7 বি সরবরাহ করে।
অ্যাপ্লিকেশনটির আরও সাম্প্রতিক সংস্করণের জন্য atMonitor - এফএকিউ ব্যাখ্যা করে:
MacOS 10.8 এর সাথে atMonitor সামঞ্জস্য করতে আমরা GPU সম্পর্কিত সমস্ত বৈশিষ্ট্য সরিয়ে ফেলেছি।
আমি এনভিআইডিআইএ জিফর্স 9600 এম জিটি দিয়ে একটি ম্যাকবুকপ্রো 5,2 দিয়ে মাউন্টেন লায়নটিতে 2.7b ওরফে 2.7.1 দিয়ে পরীক্ষা করেছি। ছাড়ার আগে অ্যাপটি কয়েক সেকেন্ড চলছিল, এটি তাপমাত্রা দেখিয়েছিল তবে ব্যবহার নয়:
আমার প্রক্রিয়াগুলি সমাপ্ত হয়েছে (সম্ভবত নিহত বা ক্র্যাশ হয়েছে) এবং সংস্থানগুলি ব্যবহার করা চালিয়ে গেছে, তবে তালিকাভুক্ত করা হয়নি nvidia-smi
। সাধারণত এই প্রক্রিয়াগুলি কেবল জিপিইউ মেমরি গ্রহণ করে।
আপনি যদি ভাবেন যে কোনও জিপিইউতে সংস্থান ব্যবহার করে আপনার কোনও প্রক্রিয়া রয়েছে এবং এটি প্রদর্শিত হচ্ছে না nvidia-smi
, আপনি ডাবল চেক করতে এই কমান্ডটি চালানোর চেষ্টা করতে পারেন। এটি আপনাকে দেখায় যে কোন প্রসেসগুলি আপনার জিপিইউগুলি ব্যবহার করছে।
sudo fuser -v /dev/nvidia*
এটি EL7, উবুন্টু বা অন্যান্য বিতরণে কাজ করে তাদের এনভিডিয়া ডিভাইস অন্য নাম / অবস্থানের নীচে তালিকাভুক্ত থাকতে পারে।
গ্লায়েন্সগুলির একটি প্লাগইন রয়েছে যা জিপিইউ ব্যবহার এবং মেমরির ব্যবহার দেখায়।
http://glances.readthedocs.io/en/stable/aoa/gpu.html
Nvidia-ml-py3 গ্রন্থাগার ব্যবহার করুন: https://pypi.python.org/pypi/nvidia-ml-py3
লিনাক্সে এনভিডিয়া জন্য আমি নিম্নলিখিত পাইথন স্ক্রিপ্টটি ব্যবহার করি যা একটি alচ্ছিক বিলম্ব ব্যবহার করে এবং আইওস্যাট এবং ভিএমস্ট্যাট এর মতো পুনরাবৃত্তি করে
https://gist.github.com/matpalm/9c0c7c6a6f3681a0d39d
$ gpu_stat.py 1 2
{"util":{"PCIe":"0", "memory":"10", "video":"0", "graphics":"11"}, "used_mem":"161", "time": 1424839016}
{"util":{"PCIe":"0", "memory":"10", "video":"0", "graphics":"9"}, "used_mem":"161", "time":1424839018}
আপনি এটি ব্যবহার করতে পারেন nvtop
, এটি htop
এনভিআইডিএ জিপিইউগুলির মতো তবে। লিঙ্ক: https://github.com/Syllo/nvtop
নিম্নলিখিত ফাংশনটি পিআইডি, ব্যবহারকারীর নাম, সিপিইউ ব্যবহার, মেমরির ব্যবহার, জিপিইউ মেমরির ব্যবহার, প্রোগ্রাম আর্গুমেন্ট এবং জিপিইউতে চালিত প্রক্রিয়াগুলির রান টাইম হিসাবে তথ্য আউটপুট যুক্ত করে nvidia-smi
:
function better-nvidia-smi () {
nvidia-smi
join -1 1 -2 3 \
<(nvidia-smi --query-compute-apps=pid,used_memory \
--format=csv \
| sed "s/ //g" | sed "s/,/ /g" \
| awk 'NR<=1 {print toupper($0)} NR>1 {print $0}' \
| sed "/\[NotSupported\]/d" \
| awk 'NR<=1{print $0;next}{print $0| "sort -k1"}') \
<(ps -a -o user,pgrp,pid,pcpu,pmem,time,command \
| awk 'NR<=1{print $0;next}{print $0| "sort -k3"}') \
| column -t
}
উদাহরণ আউটপুট:
$ better-nvidia-smi
Fri Sep 29 16:52:58 2017
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 378.13 Driver Version: 378.13 |
|-------------------------------+----------------------+----------------------+
| GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. |
|===============================+======================+======================|
| 0 GeForce GT 730 Off | 0000:01:00.0 N/A | N/A |
| 32% 49C P8 N/A / N/A | 872MiB / 976MiB | N/A Default |
+-------------------------------+----------------------+----------------------+
| 1 Graphics Device Off | 0000:06:00.0 Off | N/A |
| 23% 35C P8 17W / 250W | 199MiB / 11172MiB | 0% Default |
+-------------------------------+----------------------+----------------------+
+-----------------------------------------------------------------------------+
| Processes: GPU Memory |
| GPU PID Type Process name Usage |
|=============================================================================|
| 0 Not Supported |
| 1 5113 C python 187MiB |
+-----------------------------------------------------------------------------+
PID USED_GPU_MEMORY[MIB] USER PGRP %CPU %MEM TIME COMMAND
9178 187MiB tmborn 9175 129 2.6 04:32:19 ../path/to/python script.py args 42
এই স্ক্রিপ্টটি আরও পঠনযোগ্য এবং সহজেই মোড এবং এক্সটেনশনের জন্য ডিজাইন করা হয়েছে।
আপনি আপনার প্রিয় টার্মিনাল উইন্ডো প্রোগ্রামের সাথে জিনোম-টার্মিনাল প্রতিস্থাপন করতে পারেন।
#! /bin/bash
if [ "$1" = "--guts" ]; then
echo; echo " ctrl-c to gracefully close"
f "$a"
f "$b"
exit 0; fi
# easy to customize here using "nvidia-smi --help-query-gpu" as a guide
a='--query-gpu=pstate,memory.used,utilization.memory,utilization.gpu,encoder.stats.sessionCount'
b='--query-gpu=encoder.stats.averageFps,encoder.stats.averageLatency,temperature.gpu,power.draw'
p=0.5 # refresh period in seconds
s=110x9 # view port as width_in_chars x line_count
c="s/^/ /; s/, +/\t/g"
t="`echo '' |tr '\n' '\t'`"
function f() { echo; nvidia-smi --format=csv "$1" |sed -r "$c" |column -t "-s$t" "-o "; }
export c t a b; export -f f
gnome-terminal --hide-menubar --geometry=$s -- watch -t -n$p "`readlink -f \"$0\"`" --guts
#
লাইসেন্স: জিএনইউ জিপিএলভি 2, ট্রানসিড গবেষণা
তুমি ব্যবহার করতে পার
nvidia-smi pmon -i 0
গণ্য / গ্রাফিক মোড, এসএম ব্যবহার, মেমরির ব্যবহার, এনকোডার ব্যবহার, ডিকোডার ব্যবহার সহ জিপিইউ 0 তে প্রতিটি প্রক্রিয়া নিরীক্ষণ করতে।
আমি প্রাপ্তিসাধ্য উত্তর এটি দেখতে না (হয়তো একটি মন্তব্যে ব্যতীত), তাই আমি ভাবলাম যোগ চাই যে আপনি একটা সুন্দর রিফ্রেশ পেতে পারেন nvidia-smi
সঙ্গে watch
। এটি ক্রমাগত স্ক্রোল না করে প্রতিটি আপডেটের সাথে পর্দা সতেজ করে।
watch -n 1 nvidia-smi
এক দ্বিতীয় বিরতি আপডেটের জন্য। 1
ভগ্নাংশ সেকেন্ড সহ আপনি যা চান তা প্রতিস্থাপন করুন :
watch -n 5 nvidia-smi
watch -n 0.1 nvidia-smi