আমি কীভাবে জানতে পারি কোন প্রসেসরগুলি শারীরিক কোরে?


15

আমি এখানে একটি ইন্টেল i7 2700k পেয়েছি এবং আমি জানতে চাই যে আমি কীভাবে বলতে পারি কোন প্রসেসর শারীরিক এবং কোনটি ভার্চুয়াল (যেমন: হাইপারথ্রেডিং)। আমি বর্তমানে আমার সিপিইউ টেম্পস, ফ্রিকোয়েন্সি এবং বোঝা প্রদর্শনের জন্য একটি কঙ্কি স্ক্রিপ্ট চালাচ্ছি, তবে আমি নিশ্চিত নই যে আমি এটি সঠিকভাবে সম্পাদন করেছি:

অসাধারণ

আমি তাপমাত্রা এবং ফ্রিকোয়েন্সি পেতে আমার নিজস্ব স্ক্রিপ্ট লিখেছি i7z, তবে এগুলি কেবল শারীরিক কোরের সাথে মিলে যায়। আমি বর্তমানে প্রতিটি কোর এর মতো প্রদর্শন করছি:

${cpu cpu1} ${lua display_temp 0} ${lua display_load 0}
${cpu cpu2}
${cpu cpu3} ${lua display_temp 1} ${lua display_load 1}
${cpu cpu4}
# ...

আমি কখনই ভারী ভারী তাপমাত্রা এবং তাপমাত্রার কারণে এটি সঠিক তা নিশ্চিত নই। ইন /proc/cpuinfo, কোরগুলি বাছাই করা হয় কীভাবে? প্রথমে সমস্ত শারীরিক তারপর সমস্ত ভার্চুয়াল? প্রতিটি শারীরিক কোর তার ভার্চুয়াল কোর (গুলি)? সেগুলি কীভাবে সাজানো হয়?

উত্তর:


16

প্রতিটি সিপুইনফোর এন্ট্রি পরীক্ষা করে আপনি প্রতিটি প্রসেসরের কোর সম্পর্কে জানতে পারবেন:

processor       : 0
[...]
physical id     : 0
siblings        : 8
core id         : 0
cpu cores       : 4
apicid          : 0

processor       : 1
[...]
physical id     : 0
siblings        : 8
core id         : 1
cpu cores       : 4
apicid          : 2 

processor       : 2
[...]
physical id     : 0
siblings        : 8
core id         : 2
cpu cores       : 4
apicid          : 4 

processor       : 3
[...]
physical id     : 0
siblings        : 8
core id         : 3
cpu cores       : 4
apicid          : 6

processor       : 4
[...]
physical id     : 0
siblings        : 8
core id         : 0
cpu cores       : 4
apicid          : 1

[and so on]

physical idপ্রসেসরের সনাক্তকারী দেখায়। আপনার যদি কোনও মাল্টিপ্রসেসর সেটআপ না থাকে (কোনও মেশিনে দুটি পৃথক, ফিজিক্যাল প্রসেসর থাকে), এটি সর্বদা 0 হবে।

siblings একই শারীরিক প্রসেসরের সাথে সংযুক্ত প্রসেসরের সংখ্যা দেখান।

core idমোট কোর এর বাইরে বর্তমান কোর এর শনাক্তকারী দেখান cpu cores। কোন ভার্চুয়াল প্রসেসর একটি একক কোরে যায় সে সম্পর্কিত করতে আপনি এই তথ্যটি ব্যবহার করতে পারেন।

apicid(এবং original apicid) বায়োস দ্বারা প্রদত্ত (ভার্চুয়াল) প্রসেসরের সংখ্যা প্রদর্শন করুন।

মনে রাখবেন যে সেখানে 8 ভাইবোন এবং 4 টি কোর রয়েছে, সুতরাং প্রতি কোর 2 টি ভার্চুয়াল প্রসেসর রয়েছে। হাইপারথ্রেডিংয়ে "ভার্চুয়াল" বা "রিয়েল" এর মধ্যে কোনও পার্থক্য নেই। তবে এই তথ্যটি ব্যবহার করে আপনি একই কোর থেকে প্রসেসরগুলি অন্তর্ভুক্ত করতে পারেন।


5

/sysফাইলসিস্টেম এই তথ্য একটি চমৎকার ওভারভিউ ঝুলিতে। হাইপারথ্রেডিং সহ একটি এসএমপি কোয়াডকোয়ার বক্সের একটি উদাহরণ এখানে:

# grep . /sys/devices/system/cpu/cpu{,1}?/topology/thread_siblings | tr : \\t | sed 's,^,    ,'
/sys/devices/system/cpu/cpu0/topology/thread_siblings   00000000,00000101
/sys/devices/system/cpu/cpu1/topology/thread_siblings   00000000,00000202
/sys/devices/system/cpu/cpu2/topology/thread_siblings   00000000,00000404
/sys/devices/system/cpu/cpu3/topology/thread_siblings   00000000,00000808
/sys/devices/system/cpu/cpu4/topology/thread_siblings   00000000,00001010
/sys/devices/system/cpu/cpu5/topology/thread_siblings   00000000,00002020
/sys/devices/system/cpu/cpu6/topology/thread_siblings   00000000,00004040
/sys/devices/system/cpu/cpu7/topology/thread_siblings   00000000,00008080
/sys/devices/system/cpu/cpu8/topology/thread_siblings   00000000,00000101
/sys/devices/system/cpu/cpu9/topology/thread_siblings   00000000,00000202
/sys/devices/system/cpu/cpu10/topology/thread_siblings  00000000,00000404
/sys/devices/system/cpu/cpu11/topology/thread_siblings  00000000,00000808
/sys/devices/system/cpu/cpu12/topology/thread_siblings  00000000,00001010
/sys/devices/system/cpu/cpu13/topology/thread_siblings  00000000,00002020
/sys/devices/system/cpu/cpu14/topology/thread_siblings  00000000,00004040
/sys/devices/system/cpu/cpu15/topology/thread_siblings  00000000,00008080

মূল সামগ্রী একই কোরটির থ্রেডগুলি বোঝায় den অর্থাত

  • cpu0 / cpu8
  • সিপিইউ 1 / সিপিইউ 9
  • প্রভৃতি

সেখানে অনুরূপ তথ্য core_siblingsএখনো আরো টপোলজি তথ্যের পাশাপাশি সিউডো-ফাইল।


3

আপনি যদি ' ht' পতাকাটি দেখতে পান /proc/cpuinfoতবে আপনি হাইপার-থ্রেডিং সক্ষম করেছেন এবং প্রতিটি আসল কোর একাধিক থ্রেডে বিভক্ত হয়েছে, আসল থ্রেড এবং ভার্চুয়াল থ্রেডের কোনও ধারণা নেই: উভয়ই কার্যকরভাবে ভার্চুয়াল।

আপনি যা তদন্ত করতে চাইতে পারেন তা হল কোর এবং সকেটের সাথে তুলনা physical idকরা, গ্রুপ কোরে একসাথে ' ' টপোলজি শনাক্তকারী ব্যবহার করুন ।


htপতাকা শুধুমাত্র ইঙ্গিত করে যে বহু-থ্রেডিং (HTT) CPU- র দ্বারা সমর্থিত হয় - না যদি এটা সক্ষম না। তারপরেও, সর্বদা এটির উপর নির্ভর করা যায় না, উদাহরণস্বরূপ, এটি মিথ্যা ইঙ্গিত দেয় যে একটি আই 5 আই 5-6500 এইচটিটি সমর্থন করে: ark.intel.com/content/www/us/en/ark/products/88184/…
অ্যান্টনি জি - মনিকার

1

পূর্ববর্তী উত্তর খুব আকর্ষণীয়।

কিছু গুগল করার পরে, আমি কিছু সম্পর্কিত বিষয় পেয়েছি:

শেষ লিঙ্কে, অজগর স্ক্রিপ্টটি যখন আপনার হোস্টের অনেকগুলি শারীরিক আইডি থাকে তখন কাজ করে না। আমি এটিকে শেষে অন্য একটি শর্ত দিয়ে সংশোধন করার চেষ্টা করেছি:

পরিবর্তন করা হচ্ছে:

if p > 0:

প্রতি

if p % 2 == 1:

তবে পূর্বের বার্তার উপর ভিত্তি করে এটি প্রত্যাশার মতো কাজ করে না। যাইহোক, আপনি এর থেকে আরও ব্যাপক কিছু করতে পারেন:

grep . /sys/devices/system/cpu/cpu{,1}?/topology/thread_siblings | tr : \\\t | sed -r 's,^,\s\s\s\s,'

সঙ্গে:

for file in /sys/devices/system/cpu/cpu[0-9]*/topology/thread_siblings_list; do echo -n "$file "; cat $file; done |sort -k2 -n

[...]

হাইপারথ্রেডিং সক্ষম সহ অনেকগুলি কোর হোস্টের মধ্যে কী আকর্ষণীয় তা হ'ল হার্ডওয়্যারে লজিক্যাল কোর বিতরণ।

উদাহরণস্বরূপ, আমার কম্পিউটারে (48 লজিকাল কোর, 2 ফিজিক্যাল প্রসেসর, 24 (12 * 2) 'রিয়েল কোর' (সুতরাং, 24 ভার্চুয়াল কোর)):

for file in /sys/devices/system/cpu/cpu[0-9]*/topology/thread_siblings_list; do echo -n "$file "; cat $file; done |sort -k2 -n

 /sys/devices/system/cpu/cpu0/topology/thread_siblings_list 0,24
 /sys/devices/system/cpu/cpu24/topology/thread_siblings_list 0,24
 /sys/devices/system/cpu/cpu1/topology/thread_siblings_list 1,25
 /sys/devices/system/cpu/cpu25/topology/thread_siblings_list 1,25
 /sys/devices/system/cpu/cpu26/topology/thread_siblings_list 2,26
 /sys/devices/system/cpu/cpu2/topology/thread_siblings_list 2,26
 /sys/devices/system/cpu/cpu27/topology/thread_siblings_list 3,27
 /sys/devices/system/cpu/cpu3/topology/thread_siblings_list 3,27
 /sys/devices/system/cpu/cpu28/topology/thread_siblings_list 4,28
 /sys/devices/system/cpu/cpu4/topology/thread_siblings_list 4,28
 /sys/devices/system/cpu/cpu29/topology/thread_siblings_list 5,29
 /sys/devices/system/cpu/cpu5/topology/thread_siblings_list 5,29
 /sys/devices/system/cpu/cpu30/topology/thread_siblings_list 6,30
 /sys/devices/system/cpu/cpu6/topology/thread_siblings_list 6,30
 /sys/devices/system/cpu/cpu31/topology/thread_siblings_list 7,31
 /sys/devices/system/cpu/cpu7/topology/thread_siblings_list 7,31
 /sys/devices/system/cpu/cpu32/topology/thread_siblings_list 8,32
 /sys/devices/system/cpu/cpu8/topology/thread_siblings_list 8,32
 /sys/devices/system/cpu/cpu33/topology/thread_siblings_list 9,33
 /sys/devices/system/cpu/cpu9/topology/thread_siblings_list 9,33
 /sys/devices/system/cpu/cpu10/topology/thread_siblings_list 10,34
 /sys/devices/system/cpu/cpu34/topology/thread_siblings_list 10,34
 /sys/devices/system/cpu/cpu11/topology/thread_siblings_list 11,35
 /sys/devices/system/cpu/cpu35/topology/thread_siblings_list 11,35
 /sys/devices/system/cpu/cpu12/topology/thread_siblings_list 12,36
 /sys/devices/system/cpu/cpu36/topology/thread_siblings_list 12,36
 /sys/devices/system/cpu/cpu13/topology/thread_siblings_list 13,37
 /sys/devices/system/cpu/cpu37/topology/thread_siblings_list 13,37
 /sys/devices/system/cpu/cpu14/topology/thread_siblings_list 14,38
 /sys/devices/system/cpu/cpu38/topology/thread_siblings_list 14,38
 /sys/devices/system/cpu/cpu15/topology/thread_siblings_list 15,39
 /sys/devices/system/cpu/cpu39/topology/thread_siblings_list 15,39
 /sys/devices/system/cpu/cpu16/topology/thread_siblings_list 16,40
 /sys/devices/system/cpu/cpu40/topology/thread_siblings_list 16,40
 /sys/devices/system/cpu/cpu17/topology/thread_siblings_list 17,41
 /sys/devices/system/cpu/cpu41/topology/thread_siblings_list 17,41
 /sys/devices/system/cpu/cpu18/topology/thread_siblings_list 18,42
 /sys/devices/system/cpu/cpu42/topology/thread_siblings_list 18,42
 /sys/devices/system/cpu/cpu19/topology/thread_siblings_list 19,43
 /sys/devices/system/cpu/cpu43/topology/thread_siblings_list 19,43
 /sys/devices/system/cpu/cpu20/topology/thread_siblings_list 20,44
 /sys/devices/system/cpu/cpu44/topology/thread_siblings_list 20,44
 /sys/devices/system/cpu/cpu21/topology/thread_siblings_list 21,45
 /sys/devices/system/cpu/cpu45/topology/thread_siblings_list 21,45
 /sys/devices/system/cpu/cpu22/topology/thread_siblings_list 22,46
 /sys/devices/system/cpu/cpu46/topology/thread_siblings_list 22,46
 /sys/devices/system/cpu/cpu23/topology/thread_siblings_list 23,47
 /sys/devices/system/cpu/cpu47/topology/thread_siblings_list 23,47

এর অর্থ cpu0 এবং cpu24 একই শারীরিক হার্ডওয়্যার "ঠিকানা" ভাগ করে। Cpu1 এবং cpu25 এর জন্য একই জিনিস ...

সুতরাং, মূলত, আমি যদি আমার লিনাক্স ওএস থেকে হাইপারথ্রেডিং নিষ্ক্রিয় করতে চাই তবে আমার সাথে '0' সিপিইউ {24..47}} / অনলাইনে রাখা উচিত

for fake_cpu in {24..47}; do echo 0 > /sys/devices/system/cpu/cpu$fake_cpu/online;done

আপনি লক্ষ্য করবেন যে আমার সিস্টেমটি কোরগুলির সংখ্যাটি কী আকর্ষণীয় করছে।


টার্মিনালের জিনিসগুলির জন্য উদ্ধৃতিগুলির পরিবর্তে কোড ব্লক ব্যবহার করুন; এটি পড়া অনেক সহজ।
হালোসহোস্ট

1

আপনি lscpu ব্যবহার করতে পারেন:

# lscpu --all --extended
CPU NODE SOCKET CORE L1d:L1i:L2:L3:L4 ONLINE MAXMHZ    MINMHZ
0   0    0      0    0:0:0:0:0        yes    3200.0000 800.0000
1   0    0      1    1:1:1:0:0        yes    3200.0000 800.0000
2   0    0      2    2:2:2:0:0        yes    3200.0000 800.0000
3   0    0      3    3:3:3:0:0        yes    3200.0000 800.0000
4   0    0      0    0:0:0:0:0        yes    3200.0000 800.0000
5   0    0      1    1:1:1:0:0        yes    3200.0000 800.0000
6   0    0      2    2:2:2:0:0        yes    3200.0000 800.0000
7   0    0      3    3:3:3:0:0        yes    3200.0000 800.0000

এখানে লজিক্যাল কোর 0 এবং 4 কোর 0 তে যান

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