ความแตกต่างระหว่างซีพียูและแกนคืออะไร?


10

ผลลัพธ์ของlscpuพีซีของฉันดูเหมือน -

Architecture:          x86_64
CPU op-mode(s):        32-bit, 64-bit
Byte Order:            Little Endian
CPU(s):                4
On-line CPU(s) list:   0-3
Thread(s) per core:    2
Core(s) per socket:    2
Socket(s):             1
NUMA node(s):          1
Vendor ID:             GenuineIntel
CPU family:            6
Model:                 69
Stepping:              1
CPU MHz:               1200.093
BogoMIPS:              3392.08
Virtualization:        VT-x
L1d cache:             32K
L1i cache:             32K
L2 cache:              256K
L3 cache:              3072K
NUMA node0 CPU(s):     0-3

มันหมายความว่าฉันมี 4 ซีพียูและ 2 แกนหรือไม่


3
หนึ่งชิป (ซ็อกเก็ต) ที่มีสองคอร์ที่แสดงเป็น CPU ทั้งหมดสี่ตัวในระบบเนื่องจากมีการทำเธรดมากเกินไป
Kusalananda

2
@Kusalananda, The CPU(s)ในlscpuให้จำนวนของหน่วยประมวลผลกลางตรรกะ (จำนวนcores) ในหนึ่ง CPU ทางกายภาพ ไม่ใช่เหรอ
ss_iwe

@saisasanka ใช่ คำถามที่เกี่ยวข้อง: unix.stackexchange.com/questions/88283/…
dr_

1
@saisasanka ในกรณีนี้มี 4 CPU และ 2 คอร์ใน 1 ซ็อกเก็ต ซ็อกเก็ตเป็นทางกายภาพเช่นเดียวกับแกนบนมัน แต่ละคอร์แสดงเป็น 2 ซีพียู ("เธรดต่อคอร์")
Kusalananda

CPU (s) = Core (s) ต่อซ็อกเก็ต * Thread (s) ต่อ core
Amit24x7

คำตอบ:


9

จากman lscpu:

CPU
หมายเลข CPU โลจิคัลของ CPU ที่ใช้โดยเคอร์เนล Linux

CORE
หมายเลขแกนตรรกะ แกนกลางสามารถมี CPU หลายตัว

SOCKET
หมายเลขซ็อกเก็ตแบบลอจิคัล ซ็อกเก็ตสามารถมีหลายแกน

ใช่คุณมี 4 ซีพียูอยู่ในฟิสิคัล 2 คอร์ที่มีอยู่ในซ็อกเก็ตฟิสิคัลเดียว

cat /proc/cpuinfoคุณสามารถรับข้อมูลเดียวกันจาก

คำถามที่เกี่ยวข้อง: ดังนั้นอะไรคือ cpu core cores (ซึ่งต่างจาก cpu ทางกายภาพ)


มันหมายความว่าฉันสามารถเรียกใช้คำสั่ง 4 ครั้ง?
alhelal

1
มากหรือน้อย. มันหมายความว่ามันสามารถทำงาน 4 งานพร้อมกัน ดู HyperThreading: en.wikipedia.org/wiki/Hyper-threading
dr_

4

เพื่อหลีกเลี่ยงความสับสนระหว่างตัวประมวลผลเชิงตรรกะและทางกายภาพ

Intel หมายถึงประมวลผลทางกายภาพเป็นซ็อกเก็ต


เทคโนโลยีHyperthreadingอนุญาตให้คอร์โปรเซสเซอร์เดียวสามารถรันเธรดอิสระสองเธรดพร้อมกันได้

ในขณะที่การทำไฮเปอร์เธรดไม่ได้เพิ่มประสิทธิภาพของระบบเป็นสองเท่า แต่สามารถเพิ่มประสิทธิภาพโดยใช้ทรัพยากรที่ไม่ได้ใช้งานที่ดีกว่าเพื่อเพิ่มปริมาณงานสำหรับประเภทเวิร์กโหลดที่สำคัญบางประเภท แอปพลิเคชันที่รันบนตัวประมวลผลเชิงตรรกะตัวเดียวของคอร์ไม่ว่างสามารถคาดหวังได้มากกว่าครึ่งหนึ่งของปริมาณงานที่รับในขณะที่ทำงานคนเดียวบนตัวประมวลผลที่ไม่ได้ถูกไฮเปอร์เธรด

สรุป

  • ระบบของคุณมี CPU จริงหนึ่งตัว (ลองตั้งชื่อเป็น X)
  • การทำไฮเปอร์เธรดทำให้ CPU X ทำงานเหมือน CPU สองตัว (CPU - X1 และ CPU-X2) แต่ไม่ได้มีตัวตนจริง
  • แต่ละ X1 และ X2 สามารถดำเนินการสองเธรดได้พร้อมกัน

เพื่อสรุปคุณมีหนึ่งตัวประมวลผลทางกายภาพซึ่งสามารถดำเนินการ 4 กระทู้พร้อมกัน


"แอปพลิเคชันที่ทำงานบนหนึ่งตัวประมวลผลเชิงตรรกะของคอร์ไม่ว่างสามารถคาดหวังปริมาณการรับส่งข้อมูลได้มากกว่าครึ่งในขณะที่ทำงานเพียงอย่างเดียวบนตัวประมวลผลที่ไม่ได้ถูกไฮเปอร์เธรด" นี่หมายความว่าการทำไฮเปอร์เธรดทำให้แกนทำงานที่ความจุเบากว่าครึ่งหรือไม่?
Waldir Leoncio
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.