জিপিইউর সিউডিএ ব্যবহারের জন্য শীর্ষ কমান্ড


127

আমি এমন একটি প্রক্রিয়া পর্যবেক্ষণ করার চেষ্টা করছি যা চুদা এবং এমপিআই ব্যবহার করে, আমি কি এই উপায়ে কোনও উপায় করতে পারি, "শীর্ষ" কমান্ডের মতো কিছু কিন্তু এটি জিপিইউকেও নিরীক্ষণ করে?



"এনভিডিয়া-স্মি পমন -i 0"
এনভিডিয়া

উত্তর:


84

আমি gpustat খুব দরকারী। ইন ইনস্টল করা যেতে পারে pip install gpustatএবং প্রক্রিয়া বা ব্যবহারকারীদের দ্বারা ব্যবহারের ব্রেকডাউন প্রিন্ট করে।

এখানে চিত্র বর্ণনা লিখুন


4
আপনি রাখার পরে আপনি watch gpustat -cpপরিসংখ্যানগুলি একটানা দেখতে পাচ্ছেন তবে রঙগুলি গেছে। আপনি কিভাবে এটি ঠিক করবেন? @ অ্যালিও
অভিমন্যু

1
@AbhimanyuAryan ব্যবহার watch -c। @ রোমান ওরাক, আপনাকে ধন্যবাদ, রেডহাট ৮-এ এটি আমার জন্য কাজ করেছিল যখন পাইথনে _ ক্রস আমদানির কারণে আমি কিছুটা ত্রুটি পেয়েছিলাম।
বোবাক হাশেমি

4
watch -c gpustat -cp --color
লি নেটারটন

1
watch -n 0.5 -c gpustat -cp --color
গ্যাব্রিয়েল রোমন

4
gpustat এর এখন একটি --watchবিকল্প রয়েছে:gpustat -cp --watch
জায়েলম

139

ব্যবহৃত সম্পদগুলিতে রিয়েল-টাইম অন্তর্দৃষ্টি পেতে, করুন:

nvidia-smi -l 1

এটি লুপ হবে এবং প্রতি সেকেন্ডে ভিউ কল করবে।

আপনি যদি কনসোলের ইতিহাসে লুপযুক্ত কলটির অতীতের চিহ্নগুলি না রাখতে চান তবে আপনি এটি করতেও পারেন:

watch -n0.1 nvidia-smi

যেখানে 0.1 সময় অন্তর, সেকেন্ডে হয়।

এখানে চিত্র বর্ণনা লিখুন


2
প্রতি 0.1 সেকেন্ডে কার্ড জিজ্ঞাসা করছেন? এটি কি কার্ডে বোঝা সৃষ্টি করতে চলেছে? এছাড়াও, ঘড়ি ব্যবহার করে, আপনি প্রতি 0.1 সেকেন্ডে একটি নতুন প্রক্রিয়া শুরু করছেন।
মিক টি

@ মিকটি এটা কি বড় কথা? যেমন Nvidia-smi এই বিল্ডিং লুপ আছে! "নজরদারি" কমান্ডটি এনভিডিয়া-এসএমআই-এল থেকে খুব আলাদা?
মোহাম্মদ জাভাদ

এটি হতে পারে, আমি নিম্ন-প্রান্তের কার্ডগুলিতে অদ্ভুত লক-আপগুলি দেখেছি এবং আমি মনে করি এটি কারণ অনেকগুলি ব্যবহারকারী কার্ডগুলিতে এনভিডিয়া-এসমি চালাচ্ছিলেন। আমি মনে করি যে 'এনভিডিয়া-স্মি-এল' ব্যবহার করা আপনার পক্ষে প্রতিবার নতুন প্রক্রিয়া তৈরি না করার জন্য একটি ভাল উপায়। এছাড়াও, প্রতি ০.১ সেকেন্ডে কার্ডটি পরীক্ষা করা ওভারকিল, আমি যখন কোনও সমস্যা ডিবাগ করার চেষ্টা করি তখন আমি প্রতি সেকেন্ডে করতাম, নাহলে পারফরম্যান্স পর্যবেক্ষণের জন্য আমি প্রতি 5 মিনিটে করি। আমি আশা করি এটি সাহায্য করবে! :)
মিক টি

@ গুলজার হ্যাঁ, এটি হয়েছে।
ট্রস্টএফট

83

আমি এই তথ্যের সাথে সম্মিলিত যে কোনও বিষয় সম্পর্কে অবগত নই, তবে আপনি nvidia-smiকাঁচা ডেটা পেতে সরঞ্জামটি ব্যবহার করতে পারেন , যেমন (অন-টিপকে @ জেএমসু ধন্যবাদ):

$ 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 %

4
আমি মনে করি আপনি যদি এটির সাথে যুক্ত হন তবে আপনি এটি নিয়মিত কার্যকরভাবে জিপিইউ এবং মেমরির ব্যবহার পর্যবেক্ষণের জন্য আপডেট করতে পেলেন।
jmsu

6
আমি যদি এটি জিপিইউ ব্যবহার করি তখন কেবল এন / এ বলে ??
নোটোরের

3
@ নেটোরো দেখে মনে হচ্ছে এনভিডিয়া কিছু কার্ডের জন্য সমর্থন বাদ দিয়েছে। এই লিঙ্কটি forums.nvidia.com/index.php?showtopic=205165
jmsu

29
আমি পছন্দ করি watch -n 0.5 nvidia-smi, যা আউটপুট দিয়ে আপনার টার্মিনালটি পূরণ করা এড়াতে পারে
ali_m

nvidia-smi pmon -i 0
changqi.xia

19

এখান থেকে সর্বশেষ স্থিতিশীল চুদা ড্রাইভার (4.2) ডাউনলোড এবং ইনস্টল করুন । লিনাক্সে, এনভিডিয়া-স্মি 295.41 আপনাকে যা চান তা আপনাকে দেয়। ব্যবহার 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  |
+-----------------------------------------------------------------------------+

সম্পাদনা: সর্বশেষে এনভিআইডিআইএ ড্রাইভারদের মধ্যে, এই সমর্থনটি টেসলা কার্ডের মধ্যে সীমাবদ্ধ।


18

"--Query-compute-apps =" যুক্তি ব্যবহার করুন

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

আরও সাহায্যের জন্য, দয়া করে অনুসরণ করুন

nvidia-smi --help-query-compute-app

17

কেবল ব্যবহার করুন watch nvidia-smi, এটি মেসেজটি ডিফল্টভাবে 2s ব্যবধানে আউটপুট করবে।

উদাহরণস্বরূপ, নীচের চিত্র হিসাবে:

এখানে চিত্র বর্ণনা লিখুন

আপনি watch -n 5 nvidia-smi(-n 5 বাই 5 এস অন্তর) ব্যবহার করতে পারেন ।


16

আর একটি দরকারী নিরীক্ষণ পদ্ধতির psআপনার জিপিইউগুলি গ্রাসকারী প্রক্রিয়াগুলিতে ফিল্টার ব্যবহার করা tered আমি এটিকে অনেক ব্যবহার করি:

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

এটি সমস্ত এনভিডিয়া জিপিইউ-ব্যবহারের প্রক্রিয়া এবং তাদের সম্পর্কে কিছু পরিসংখ্যান প্রদর্শন করবে। lsof ...বর্তমান ব্যবহারকারীর মালিকানাধীন এনভিডিয়া জিপিইউ ব্যবহার করে সমস্ত প্রক্রিয়াগুলির একটি তালিকা পুনরুদ্ধার করে এবং সেই প্রক্রিয়াগুলির ফলাফল ps -p ...দেখায় psps fশিশু / পিতামাতার প্রক্রিয়া সম্পর্ক / স্তরক্রমের জন্য দুর্দান্ত ফর্ম্যাটিং দেখায় এবং -oএকটি কাস্টম বিন্যাস নির্দিষ্ট করে। এটি কেবলমাত্র করার মতোই ps uতবে প্রক্রিয়া গ্রুপের আইডি যুক্ত করে এবং কিছু অন্যান্য ক্ষেত্র সরিয়ে দেয়।

এই ওভারের একটি সুবিধা nvidia-smiহ'ল এটি জিপিইউ ব্যবহার করে এমন প্রক্রিয়াগুলির পাশাপাশি প্রধান প্রক্রিয়াগুলি প্রদর্শন করবে।

যদিও একটি অসুবিধা হ'ল এটি হ'ল কমান্ডটি কার্যকর করে এমন ব্যবহারকারীর মালিকানাধীন প্রক্রিয়াগুলির মধ্যে সীমাবদ্ধ। এটি কোনও ব্যবহারকারীর মালিকানাধীন সমস্ত প্রক্রিয়াতে খুলতে, আমি এর sudoআগে একটি যুক্ত করব lsof

শেষ watchঅবধি , আমি এটির সাথে একটানা আপডেট পেতে একত্রিত করি । সুতরাং, শেষ পর্যন্ত, দেখে মনে হচ্ছে:

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

যার আউটপুট যেমন:

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

2
আপনি এইরকম গণনা ছাড়াই সমস্ত ব্যবহারকারীর জিপিইউ দখল করা গণনা প্রোগ্রামগুলির পিআইডি পেতে পারেন sudo:nvidia-smi --query-compute-apps=pid --format=csv,noheader
লেনার হোয়েট

1
কখনও কখনও nvidia-smiসমস্ত প্রক্রিয়া তালিকাভুক্ত করে না, তাই আপনি সেখানে তালিকাভুক্ত নয় এমন প্রক্রিয়াগুলি দ্বারা ব্যবহৃত আপনার মেমরিটি শেষ করেন। এই প্রক্রিয়াগুলিকে আমি ট্র্যাক এবং হত্যা করতে পারে এমন প্রধান উপায়।
রান্ড

1
@ গ্রিসাইটিস কেয়ারফুল, আমি মনে করি না যে pmemপ্রদত্ত প্রদত্ত জিপিইউর psমোট স্মৃতি কিন্তু সিপিইউর বিবেচনায় নেয় কারণ ps"এনভিডিয়া জিপিইউ" সচেতন নয়
সেবমা

10

আপনি চেষ্টা করতে পারেন nvtop, যা বহুল ব্যবহৃত htopসরঞ্জামের মতো তবে এনভিআইডিআইএ জিপিইউগুলির জন্য। এখানে nvtopএটির ক্রিয়াকলাপের একটি স্ক্রিনশট ।

ক্রিয়াকলাপে এনভিটপের স্ক্রিনশট


3

এটি মার্জিত নাও হতে পারে তবে আপনি চেষ্টা করতে পারেন

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

আমি @ এড্রিক দ্বারাও পদ্ধতিটি চেষ্টা করেছি, যা কাজ করে তবে আমি এর মূল বিন্যাসটি পছন্দ করি nvidia-smi


12
বা আপনি ঠিক করতে পারেন nvidia-smi -l 2। বা পুনরাবৃত্তি কনসোল আউটপুট প্রতিরোধ করতে,watch -n 2 'nvidia-smi'
গ্রিসাইটিস

3

আপনি যদি জিপিইউতে চলমান প্রক্রিয়াটি সন্ধান করতে চান তবে আপনি কেবল নিম্নলিখিত কমান্ডটি ব্যবহার করতে পারেন:

lsof /dev/nvidia*

আমার জন্য nvidia-smiএবং watch -n 1 nvidia-smiবেশিরভাগ ক্ষেত্রেই যথেষ্ট। কখনও কখনও nvidia-smiকোনও প্রক্রিয়া দেখায় না তবে জিপিইউ মেমরিটি ব্যবহৃত হয় তাই প্রক্রিয়াগুলি সন্ধান করতে আমার উপরের কমান্ডটি ব্যবহার করতে হবে।


2

লিনাক্স মিন্ট এবং সম্ভবত উবুন্টুতে, আপনি "এনভিডিয়া-এসমি - লুপ = 1" চেষ্টা করতে পারেন


0

নেই প্রমিথিউস জিপিইউ মেট্রিক্স রপ্তানিকারক (PGME) যে nvidai-SMI বাইনারি লিভারেজ। আপনি এটি চেষ্টা করে দেখতে পারেন আপনার রফতানিকারক একবার চালানোর পরে আপনি এটি http: // লোকালহোস্ট: 9101 / মেট্রিকের মাধ্যমে অ্যাক্সেস করতে পারবেন । দুটি জিপিইউ-র জন্য, নমুনার ফলাফলটি এরকম দেখাচ্ছে:

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

0

আপনি nvidia-smi pmon -i 0জিপিইউ ০.-এর প্রতিটি প্রক্রিয়া নিরীক্ষণ করতে ব্যবহার করতে পারেন কম্পিউট মোড, এসএম ব্যবহার, মেমরির ব্যবহার, এনকোডার ব্যবহার, ডিকোডার ব্যবহার সহ।


0

আপনি তার জিপিইউ পর্যবেক্ষণ প্লাগ-ইন সহ পর্যবেক্ষণ প্রোগ্রামের ঝলক ব্যবহার করতে পারেন :

  • মুক্ত উৎস
  • স্থাপন করা: sudo apt-get install -y python-pip; sudo pip install glances[gpu]
  • প্রবর্তন: sudo glances

এখানে চিত্র বর্ণনা লিখুন

এটি সিপিইউ, ডিস্ক আইও, ডিস্ক স্পেস, নেটওয়ার্ক এবং অন্যান্য কয়েকটি বিষয় পর্যবেক্ষণ করে:

এখানে চিত্র বর্ণনা লিখুন


0

আমি প্রতি সেকেন্ডে নিরীক্ষণের জন্য উইন্ডোজ মেশিনে নিম্নলিখিত কোড সহ একটি ব্যাচ ফাইল তৈরি করেছি। এটা আমার জন্য কাজ করে.

:loop
cls
"C:\Program Files\NVIDIA Corporation\NVSMI\nvidia-smi"
timeout /T 1
goto loop

আপনি যদি একবার কমান্ডটি চালাতে চান তবে nvidia-smi exe সাধারণত "সি: \ প্রোগ্রাম ফাইলস \ এনভিআইডিআইএ কর্পোরেশন" এ থাকে।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.