แคช L3 ใช้ร่วมกันโดยคอร์ทั้งหมดสำหรับ CPU Sandy-Bridge E Xeon หรือไม่?


12

ในคำถามที่เกี่ยวข้องฉันถามถึงประโยชน์ของระบบ dual-CPU ในแง่ของการเพิ่มแคช L3 เป็นสองเท่า

อย่างไรก็ตามฉันสังเกตเห็นว่าซีพียู Xeon E5-2600 series มีL3 cache 2.5 MB ต่อคอร์อย่างแน่นอน

สิ่งนี้ทำให้ฉันเชื่อว่าระบบปฏิบัติการสำรอง L3 cache 2.5 MB ต่อคอร์ อย่างไรก็ตามฉันมีความรู้สึกที่ขัดแย้งกันว่าแคช L3 นั้นใช้ร่วมกันในทุกคอร์ มีข้อมูลหรือการอภิปรายเล็กน้อยเกี่ยวกับเรื่องนี้อย่างน่าประหลาดใจ

ข้อกังวลหลักของฉันคือว่าแอปพลิเคชันพื้นหลังที่มีลำดับความสำคัญต่ำอาจ "หมู" แคช L3 และประสิทธิภาพการทำงานช้าลงสำหรับแอปพลิเคชันเบื้องหน้าที่มีลำดับความสำคัญสูงกว่า ปัญหาประสิทธิภาพเฉพาะสองประการที่ฉันกระตุ้นคำถามนี้

  1. การรวบรวมโปรแกรม C ++ บางโปรแกรมต้องใช้เวลา 25 นาทีในระบบการพัฒนาปัจจุบันของฉันใน VS 2008 ในขณะที่ระบบอื่นจะทำงานเร็วขึ้นอย่างมากต้องใช้เวลาเพียง 5 นาทีใน VS 2008 ด้วยการตั้งค่าที่เหมือนกัน 970 CPU และ RAM ที่เพียงพอ

  2. โปรแกรมมักใช้เวลานานถึง 20 วินาทีในการเรียกใช้ (เช่นแสดงหน้าต่างหลัก) ในระบบของฉัน และในบันทึกที่เกี่ยวข้องเชลล์ของ Windows ต้องใช้เวลาสูงสุด 10 วินาทีในการแสดงเมนูบริบทของ Windows Explorer (และพฤติกรรมที่เกี่ยวข้องยังใช้เวลานาน) แม้ว่าฉันจะพยายาม จำกัด รายการเมนูบริบท ค่าเริ่มต้น)

ระบบของฉันเต็มไปด้วยแอปพลิเคชั่นจำนวนมากที่ฉันติดตั้ง (และถอนการติดตั้ง) ในช่วงหลายปีที่ผ่านมา แต่ฉันพยายามอย่างดีที่สุดเพื่อปรับปรุงระบบให้ดีขึ้น

ฉันยังมีแอปพลิเคชันพื้นหลังที่มีลำดับความสำคัญต่ำหลายตัวกำลังทำงานอยู่ โดยเฉพาะอย่างยิ่งซอฟต์แวร์สำรองข้อมูลบนคลาวด์ที่ซ้ำซ้อนเช่น CrashPlan ซึ่งโดยปกติแล้วจะเพิ่มขึ้นเพื่อใช้งานประมาณ 25% ของการใช้งาน CPU ทั้งหมดในระบบ 6-core 12-thread

ฉันจะได้รับคอมพิวเตอร์เครื่องใหม่ ฉันรู้ว่าฉันจะยังคงใช้งานแอปพลิเคชั่นพื้นหลังจำนวนมากต่อไปและติดตั้ง / ถอนการติดตั้งหลายโปรแกรม ถ้าฉันคิดว่าการได้รับระบบ dual-CPU ที่เพิ่มไม่เพียง แต่แกนประมวลผล แต่แคช L3 จะช่วยในการเอาชนะประสิทธิภาพของคอมไพเลอร์ C ++ ที่น่ากลัวและระบบทั่วไปก็ทำงานช้าลงฉันยินดีที่จะทำ

มีควรจะเป็นเหตุผลว่าทำไมระบบระดับ high-end ดำเนินการให้ช้าแม้จะมีหลายโปรแกรมและการประยุกต์ใช้พื้นหลังไม่มี แต่ถ้าปัญหาของฉันจะเกิดขึ้นไม่ว่า CPU ของฉันจะมีพลังงานเท่าใดและแคช L3 ให้ระบบเพียงเพราะฉันมีโปรแกรมและแอปพลิเคชั่นพื้นหลังจำนวนมากที่ติดตั้งและใช้งานอยู่ฉันไม่ต้องการเสียเงินเพิ่มอีก 2,500 ดอลลาร์ใน dual-CPU ระบบที่จะไม่ช่วยแก้ปัญหาของฉัน

ข้อเสนอแนะใด ๆ โดยเฉพาะเกี่ยวกับคำถามของฉันเกี่ยวกับว่าแคช L3 มีการใช้ร่วมกันระหว่างแกนประมวลผลทั้งหมดหรือไม่ (เช่นแอปพลิเคชันพื้นหลังที่มีลำดับความสำคัญต่ำอาจเป็นไปได้ว่าแคช H3 แคชช้าลง แกนจะได้รับการชื่นชม


เป็นคำถามที่ดีที่ฉันไม่มีคำตอบที่ดีเป็นการส่วนตัวยกเว้นบอกว่าฉันยังอยู่ภายใต้การแสดงผล L3 ที่ใช้ร่วมกัน ฉันจะถามว่าทำไมในโลกที่คุณเรียก Xeons รุ่นที่ 2 เหล่านี้เมื่อ 'Xeon' เป็นผลิตภัณฑ์ Intel มาสิบปีแล้ว (ถ้าเป็นโดยการเปรียบเทียบกับ Sandy Bridge i3 /
5/7

Intel หมายถึงสาย i7-2600 ของ CPU เป็น "รุ่นที่ 2" ( ark.intel.com/products/family/59136/ เป็นต้น ) โดย "Xeon เจนเนอเรชั่นที่สอง" ฉันหมายถึงการเปิดตัวซีพียู Xeon Sandy-Bridge E ที่เทียบเท่าซีพียูในวันที่ 6 มีนาคม 2012 ( en.wikipedia.org/wiki/… )
Dan Nissenbaum

1
นั่นคือสิ่งที่ฉันคิดว่าคุณกำลังทำ มันแย่มาก (นั่นคือ i7 เจนเนอเรชั่นที่ 2 แต่นี่ไม่ใช่ 2nd Gen Xeons) และฉันจะเปลี่ยนชื่อ IMO ... ฉันคาดหวังว่าจะพบคำถามเกี่ยวกับโปรเซสเซอร์อายุ 12 ปีและอาจทำให้ผู้คนจำนวนมาก จากการคลิกที่นี่ อาจเปลี่ยน 'รุ่นที่ 2' เป็น 'Sandy Bridge-E'
Shinrai

คำตอบ:


13

บน CPU เหล่านี้แต่ละฟิสิคัลคอร์มีแคช L2 ของตัวเอง แคช L3 นั้นใช้ร่วมกันโดยคอร์ทั้งหมดและรวมอยู่ด้วยนั่นคือข้อมูลใด ๆ ที่อยู่ในแคช L2 ของคอร์ใด ๆ ก็จะอยู่ในแคช L3 ด้วยเช่นกัน

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

ดังนั้นในขณะที่แต่ละคอร์มีแคช L2 256KB ของตัวเองและสำรองอย่างมีประสิทธิภาพ 256KB ในแคช L3 ความสมดุลจะถูกแชร์โดยคอร์ทั้งหมด กิจกรรมที่สำคัญน้อยลงในแกนประมวลผลอื่นอาจเป็นอันตรายต่อประสิทธิภาพของงานที่สำคัญยิ่งกว่าซึ่งได้รับประโยชน์จากการใช้พื้นที่ L3 แต่สำหรับเหตุผลที่ฉันกล่าวถึงโดยทั่วไปแล้วมันไม่ได้มีผลกระทบอย่างมีนัยสำคัญในทางปฏิบัติและโดยทั่วไปแล้วไม่คุ้มค่าที่จะกังวลเกินกว่าการเพิ่มประสิทธิภาพการทำงาน "ข้อมูลจำนวนมาก" (เช่นการบีบอัดและการสแกน (ตัวอย่างเช่นการใช้การดำเนินการที่ไม่ใช่ชั่วคราว)


0

ฉันเข้าใจว่าแคชทุกระดับถูกนำไปใช้โดยตรงบนชิปและ L2 และ L3 นั้นเป็นหนึ่งเดียวกัน (ที่ Intel เท่านั้นที่ตระหนักถึงความแตกต่าง AMD รวมเข้าด้วยกัน) ด้วยสิ่งนี้ในใจฉันจะจินตนาการว่าแคช L3 บน CPU ไม่ได้ถูกแชร์ระหว่าง CPU บนเมนบอร์ดที่มีซ็อกเก็ตคู่ สิ่งนี้ทำให้รู้สึกว่าเป็นเรื่องปกติที่จะเห็นช่องสัญญาณหน่วยความจำแยกเป็น RAM ต่อซีพียู

มีคนแก้ไขฉันถ้าฉันผิด


L2 และ L3 นั้นไม่เหมือนกันทั้งหมด ในการออกแบบของ Intel เมื่อเร็ว ๆ นี้ L1 / L2 นั้นเป็นแบบ Per-Core และขนาดเล็ก (32k L1 I $ & D $ / 256k Unified L2) ในขณะที่ L3 นั้นถูกรวมและแชร์โดย GPU และทุกคอร์ L1 / L2 แยกจากกัน แต่เป็นการบริการที่คล้ายกัน (เช่นการทำให้การเข้าถึงหน่วยความจำเร็วสำหรับคอร์เดียว) L3 ที่รวมมีจุดประสงค์อื่น: การเชื่อมโยงระหว่างคอร์ (และ GPU) ดูคำตอบของ @ DavidSchwartz
Peter Cordes
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.