Single Qed Core เทียบกับ Hyper-Threading Dual Core [ซ้ำ]


10

สมมติว่าเรามี CPU สองตัวหนึ่งตัวคือ Quad Core 3.2 Ghz ที่มี 4 Cores และเรามี Dual Core 3.2 Ghz ที่มี 2 คอร์ที่มี 2 เธรดในแต่ละคอร์ (Hyper-Threading) ข้อสันนิษฐานของฉันในฐานะโปรแกรมเมอร์คือ 4 เธรด 4 เธรดควรทำงานได้เร็วกว่า 2 คอร์ 4 เธรดเนื่องจาก CPU ตัวที่สองต้องสลับระหว่างเธรดเพื่อเลียนแบบ 4 คอร์ในขณะที่อันแรกไม่จำเป็นต้องทำการสลับเช่นกัน แกนกลางสามารถดำเนินการได้อย่างอิสระและเป็นรายบุคคล

ฉันต้องการยืนยันว่าการสันนิษฐานของฉันเป็นจริงหากไม่ได้โปรดอธิบายว่าทำไมจึงดีกว่าอีกข้อหนึ่ง


3
Downvote เนื่องจากการค้นหาโดยย่อของ Google (Wikipedia) จะได้รับคำตอบ
Werner Henze

4
@WernerHenze ในขณะที่สิ่งที่คุณพูดนั้นเป็นความจริงเราต้องการให้ผู้คนเห็นผลลัพธ์ SuperUser เมื่อพวกเขาทำสิ่งเหล่านี้กับ Google :)
Shekhar

คำตอบ:


10

ฉันเชื่อว่าเป็นจริง - เนื่องจากการทำไฮเปอร์เธรดจะแบ่งปันองค์ประกอบบางอย่าง - โดยเฉพาะอย่างยิ่งทรัพยากรการดำเนินการหลักคุณจะสามารถเรียกใช้ 4 เธรดแบบเต็มในครั้งเดียวแทนที่จะรอให้ทรัพยากรเหล่านั้นว่างเปล่า

จุดสำคัญของ HT คือการได้รับประสิทธิภาพที่ดีขึ้นด้วยการใช้พื้นที่ die ขนาดเล็กลง - quad core ของคุณโดยทั่วไปจะเป็นชิพที่ใหญ่กว่า - พูดได้ว่าใหญ่เป็นสองเท่ามากกว่าชิปที่ไม่ใช่ HT dual core ในขณะที่ HT dual core ใหญ่กว่า 5% Quad core สามารถมองเห็นความเร็วได้ถึงสองเท่าภายใต้ภาระงานที่ถูกต้อง (แต่ไม่น่าเป็นไปได้เพราะคุณอาจไม่ได้ทำงาน 4 เธรดที่ความจุเต็มที่ในกรณีส่วนใหญ่) ในขณะที่โปรเซสเซอร์ Dual Core HT จะดีขึ้น 15-30% ประสิทธิภาพ ( ตามวิกิพีเดีย ) มากกว่าโปรเซสเซอร์ Dual Core ที่ไม่ใช่ HT

แกนที่เกิดขึ้นจริงมักจะดีกว่า


1
ตัวประมวลผล HT จะเห็น 15-30% ... พวกมันสำคัญที่นี่ HT ไม่ใช่การแทนที่แกนกลางที่แท้จริง (หรือ 2 หรือ 4 เป็นต้น)
Austin T French

1
ซีพียูที่มากขึ้น, มีแกนประมวลผลที่มากขึ้น, พร้อมเธรดไฮเปอร์จะดียิ่งขึ้น ... : D
Keltari

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

1

จากWikipedia :

ไฮเปอร์ - เธรดทำงานโดยการทำซ้ำบางส่วนของโปรเซสเซอร์ - ที่เก็บสถานะสถาปัตยกรรม - แต่ไม่ทำซ้ำทรัพยากรการดำเนินการหลัก สิ่งนี้ทำให้โปรเซสเซอร์ไฮเปอร์เธรดสามารถปรากฏเป็นโปรเซสเซอร์ปกติ "กายภาพ" และโปรเซสเซอร์พิเศษ "ตรรกะ" ไปยังระบบปฏิบัติการโฮสต์ (ระบบปฏิบัติการ HTT-unaware เห็นโปรเซสเซอร์ "กายภาพ" สองเครื่อง) ทำให้ระบบปฏิบัติการสามารถกำหนดเธรดสองเธรดได้ หรือกระบวนการพร้อมกันและเหมาะสม เมื่อทรัพยากรการดำเนินการจะไม่ถูกใช้โดยงานปัจจุบันในหน่วยประมวลผลโดยไม่ต้องไฮเปอร์เธรดและโดยเฉพาะอย่างยิ่งเมื่อตัวประมวลผลถูกหยุดทำงานตัวประมวลผลที่มีเธรดแบบไฮเปอร์เธรดสามารถใช้ทรัพยากรการดำเนินการเหล่านั้น (โปรเซสเซอร์อาจหยุดทำงานเนื่องจากแคชมิส, การคาดคะเนผิดพลาดของสาขา,

หากคุณมีระบบควอดคอร์ดังนั้น 4 เธรดสามารถเรียกใช้แต่ละเธรดแบบเต็มคอร์ หากคุณมีระบบไฮเปอร์เธรดแบบดูอัลคอร์ดังนั้นเธรด 2 เธรดสามารถรันแต่ละเธรดบนคอร์แบบเต็ม แต่ด้วย 4 เธรดเธรดที่ 1 และ 2 จะแชร์หนึ่งคอร์และเธรด 3 และ 4 จะแชร์แกนอื่น ๆ ไฮเปอร์เธรดอนุญาตให้เธรดสองเธรดรันแบบขนาน (เท่านั้น) หากไม่ได้ใช้ทรัพยากรตัวประมวลผลเดียวกัน ดังนั้นในกรณีที่เหมาะสมที่สุดคุณอาจได้รับการขนานในระดับสูง แต่เนื่องจาก Wikipedia ระบุว่าการเพิ่มประสิทธิภาพนั้นไม่ได้เป็น 100% แต่มีเพียง 15-30%


1

ใน hyper-threading เวลาว่างของ core สำหรับ taskA (core ดังกล่าวอาจส่งการร้องขอไปยังดิสก์สำหรับข้อมูลรอให้ดิสก์ค้นหาพื้นที่ของ platters อ่านข้อมูลและส่งกลับไปที่ core ) ถูกเอาเปรียบเพื่อดำเนินการ taskB อื่น ดังนั้นเมื่อ taskB กำลังให้บริการโดยเธรดที่เรียกว่า 2 และหากการร้องขอการดึงข้อมูลโดย taskA เสร็จสิ้น taskA ยังคงต้องรอให้แกนประมวลผลเสร็จสิ้นเธรด 2 เธรดทั้งสองไม่สามารถดำเนินการพร้อมกันในแกนเดียว อีกครั้ง HT ใช้ประโยชน์จากความเร็วที่ไม่ตรงกันระหว่างคอร์ / โปรเซสเซอร์และระบบย่อยต่าง ๆ ในคอมพิวเตอร์ของคุณ HT ใช้แกนของคุณเพื่อความจุเต็ม ... เหมือนการใช้กำลังการผลิตเต็มรูปแบบ ดังนั้นหากคุณเปิดแท็บสี่แท็บในเบราว์เซอร์แต่ละแท็บจะมีแกนในระบบ 4 คอร์และสองแท็บจะต้องแชร์คอร์ในระบบคอร์ 2 แกน

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.