Turin ของ AMD: เปิดตัว EPYC รุ่นที่ 5
(chipsandcheese.com)- การทดสอบจริงของ AMD EPYC 9575F แสดงให้เห็นความแตกต่างของ Turin โดยเน้นไปที่ การเปลี่ยนแปลงของซับซิสเต็มหน่วยความจำ สำหรับเซิร์ฟเวอร์ มากกว่าการอธิบายซ้ำเรื่องคอร์ Zen 5
- แบนด์วิดท์แบบเธรดเดียวอยู่ที่ระดับอ่านราว 52GB/s, เขียนราว 48GB/s และ add ราว 95GB/s ขณะที่การอ่านทั้งซ็อกเก็ตแตะเกือบ 99% ของค่าทฤษฎีที่ 576GB/s
- Turin สำหรับเซิร์ฟเวอร์ใช้ GMI3-W พร้อม GMI 2 ลิงก์ระหว่าง CCD กับ I/O die และเพิ่มความกว้างลิงก์ฝั่งเขียนเป็น 32B ต่อลิงก์ ทำให้แบนด์วิดท์ของ CCD สูงกว่า Zen 5 บนเดสก์ท็อป
- latency ของหน่วยความจำในภาวะไม่มีโหลดใกล้เคียงกับ Genoa แต่ latency ระหว่างคอร์เพิ่มขึ้นเป็น Intra-CCD ราว 45ns, Inter-CCD ราว 150ns และ ระหว่างซ็อกเก็ตราว 260ns ซึ่งสูงกว่า Genoa
- 9575F ซึ่งมี 64 คอร์ สามารถแตะ 5GHz สูงสุดในงานเธรดเดียว และรักษาระดับราว 4.3GHz ใน Cinebench 2024 แบบ 128 เธรด สะท้อนลักษณะของ SKU องค์กรที่เน้นความถี่สูงและจำนวนคอร์ค่อนข้างต่ำ
การเปลี่ยนแปลงของ Turin ผ่าน EPYC 9575F
- การวิเคราะห์ Turin อ้างอิงจากข้อมูลวัดจริงของ AMD EPYC 9575F เป็นหลัก
- สามารถทดสอบ CPU ตัวนี้ได้ผ่าน Jordan จาก StorageReview
- เนื่องจากคอร์ Zen 5 ถูกพูดถึงไปแล้วในบริบทของมือถือ เดสก์ท็อป และการเปรียบเทียบรุ่นย่อย ครั้งนี้จึงโฟกัสที่ ซับซิสเต็มหน่วยความจำ
- สไลด์เปิดตัว Turin ของ AMD ดูได้ที่ Serve the Home และที่นี่จะให้น้ำหนักกับข้อมูลที่วัดเองมากกว่า
โครงสร้าง GMI ที่เพิ่มแบนด์วิดท์ให้ CCD
- ผลการทดสอบแบบ 1T แสดงว่าแบนด์วิดท์หน่วยความจำแบบเธรดเดียวของ EPYC 9575F อยู่ที่ระดับดังนี้
- อ่าน: ประมาณ 52GB/s
- เขียน: ประมาณ 48GB/s
- add หรือ Read-Modify-Write: ประมาณ 95GB/s
- คอร์เดียวก็ใช้แบนด์วิดท์หน่วยความจำของ CCD ทั้งชุดได้ในสัดส่วนมาก
- การอ่านใช้ได้เกือบครึ่งหนึ่งของแบนด์วิดท์การอ่านทั้ง CCD
- การเขียนใช้ได้ราว 55% ของแบนด์วิดท์การเขียนทั้ง CCD
- add ใช้ได้มากกว่าสองในสามของแบนด์วิดท์ add ทั้ง CCD
- ความต่างนี้มาจากโครงสร้าง GMI3-W ของ Turin สำหรับเซิร์ฟเวอร์
- EPYC 9575F มี GMI 2 ลิงก์ที่เชื่อมกับ I/O die
- Ryzen 9950X ใช้ GMI เพียงลิงก์เดียว
- ลิงก์เขียนของ GMI ฝั่งเซิร์ฟเวอร์มีขนาด 32B ต่อลิงก์ มากกว่า 16B ต่อลิงก์ของ Zen 5 บนเดสก์ท็อป
หน่วยความจำ 12 ช่องสัญญาณและประสิทธิภาพทั้งซ็อกเก็ต
- Turin รองรับ หน่วยความจำ 12 ช่องสัญญาณ และรองรับได้สูงสุดถึง DDR5-6400MT/s
- DDR5-6400MT/s รองรับเฉพาะบางระบบที่ผ่านการรับรอง
- ความเร็วนี้ทำได้เฉพาะการจัดวางแบบ 1 DIMM ต่อช่องสัญญาณ
- ระบบทดสอบทำงานที่ DDR5-6000MT/s
- ระบบส่วนใหญ่รองรับ DDR5-6000MT/s เมื่อใช้แบบ 1 DIMM ต่อช่องสัญญาณ
- หากใช้ 2 DIMM ต่อช่องสัญญาณ ความเร็วหน่วยความจำจะลดลงเหลือ 4400MT/s
- บนเมนบอร์ดที่มีสล็อต DIMM 2 ช่องต่อหนึ่งช่องสัญญาณ หากใช้เพียง 1 DIMM ต่อช่องสัญญาณ คาดว่าจะได้ 5200MT/s
- แบนด์วิดท์การอ่านของทั้งซ็อกเก็ต 9575F แตะเกือบ 99% ของค่าทฤษฎีที่ 576GB/s
- เขียน: 435GB/s
- add: 453GB/s
- บน AMD Volcano Platform ยังมีการวัดแบนด์วิดท์ระหว่างซ็อกเก็ตของ 9575F สองตัวด้วย
- แพลตฟอร์มนี้มี GMI 3 ลิงก์ ระหว่าง CPU ทั้งสองตัวเท่านั้น
- ผลลัพธ์ใกล้เคียงมากกับการทดสอบ Bergamo และระบบ Bergamo ก็ใช้โครงสร้าง GMI 3 ลิงก์เหมือนกัน
latency ภายใต้โหลดและ latency ระหว่างคอร์
- latency ของหน่วยความจำของ Turin ในภาวะไม่มีโหลดใกล้เคียงกับ Genoa มาก
- ในงาน Hot Chips 2024 ทาง Ampere Computing เผยกราฟ latency ของหน่วยความจำภายใต้โหลดของชิป AmpereOne และ CPU AMD Genoa และมีการนำแนวคิดนั้นมาสร้างการทดสอบ latency ภายใต้โหลด แบบใกล้เคียงกัน
- วิธีทดสอบคือใช้เบนช์มาร์กแบนด์วิดท์หน่วยความจำเพื่อเติมโหลดให้ลิงก์ IOD-CCD หรือทั้งระบบหน่วยความจำ จากนั้นวัด latency ของหน่วยความจำด้วยคอร์หรือ CCD ที่เหลือ
- ในการทดสอบ CCD เดียว จะรันเบนช์มาร์กแบนด์วิดท์หน่วยความจำบน 7 คอร์ของ CCD หนึ่งตัว แล้ววัด latency ที่คอร์ที่ 8
- ในการทดสอบทั้งระบบ จะรันเบนช์มาร์กแบนด์วิดท์หน่วยความจำบน 7 CCD ของ 9575F แล้ววัด latency ที่ CCD ตัวที่ 8
- เมื่ออยู่ภายใต้โหลด การเพิ่มขึ้นของ latency หน่วยความจำของ 9575F อยู่ในระดับใกล้เคียงกันตามเงื่อนไขต่าง ๆ
- เมื่อโหลดอยู่ใน CCD เดียว เพิ่มขึ้นจากภาวะไม่มีโหลดราว 39ns
- เมื่อโหลดทั้งระบบ เพิ่มขึ้นจากภาวะไม่มีโหลดราว 31ns
- latency ระหว่างคอร์สูงขึ้นกว่า Genoa โดยเฉพาะการเพิ่มขึ้นภายใน CCD ที่เด่นชัด
- latency ภายใน CCD เดียว: ประมาณ 45ns
- latency ระหว่าง CCD: ประมาณ 150ns
- latency ระหว่างซ็อกเก็ต: ประมาณ 260ns
ความเร็วสัญญาณนาฬิกาและตำแหน่งผลิตภัณฑ์
- EPYC 9575F สามารถดันคอร์ทั้ง 64 คอร์ไปแตะสูงสุด 5GHz ในการทดสอบแบบเธรดเดียวได้
- ในการทดสอบแบนด์วิดท์หน่วยความจำ สามารถรันคอร์ทั้ง 8 คอร์ของ CCD หนึ่งตัวที่ 5GHz ได้ทั้งหมด
- ใน Cinebench 2024 เมื่อใช้ครบ 128 เธรด จะรักษาความถี่ไว้ได้ราว 4.3GHz
- Wendell จาก Level1Techs พบความเร็วแบบ all-core ราว 4.9GHz ในเวิร์กโหลดเว็บเซิร์ฟเวอร์/TLS transaction ซึ่งเป็นงานที่มีการเวกเตอร์ไรซ์น้อยกว่า
- ไลน์อัป Turin มีทั้ง SKU ที่เน้นจำนวนคอร์สูงและ SKU ที่เน้นความถี่สูง
- AMD มี SKU จำนวนคอร์สูงอย่าง 9755 และ 9965
- และยังมี SKU แบบ 9575F ที่มีจำนวนคอร์ต่ำกว่าแต่ความถี่สูงมาก
- การที่ 64 คอร์ถูกมองว่าเป็น ‘จำนวนคอร์ต่ำ’ เองก็สะท้อนการเปลี่ยนแปลงของตลาด CPU เซิร์ฟเวอร์
- Turin ใกล้เคียงกับการเปลี่ยนผ่านจาก Milan ไป Genoa มากกว่าการปฏิวัติแบบก้าวกระโดดเหมือนจาก Naples ไป Rome โดยเป็นวิวัฒนาการที่ผสาน แบนด์วิดท์หน่วยความจำที่เพิ่มขึ้น จำนวนคอร์ที่เพิ่มขึ้น และการอัปเดตคอร์ เข้าด้วยกัน
1 ความคิดเห็น
ความคิดเห็นจาก Hacker News
AMD EPYC 9175F เป็นรุ่นที่แปลกที่สุด: มี 16 คอร์แต่มี แคช L3 512MB ดูเหมือนทำมาสำหรับลูกค้าที่ต้องการลดค่าไลเซนส์ต่อคอร์
ถ้าไม่ใช่อย่างนั้น การใส่คอร์น้อยขนาดนี้ในชิปราคาแพงขนาดนี้ก็ดูไม่ค่อยสมเหตุสมผล ไม่รู้ว่า Oracle ยังใช้รูปแบบไลเซนส์แบบนี้อยู่หรือเปล่า แต่ถ้าใช่ก็ควรเลิกได้แล้ว
อาจใช้กับงานอย่าง HFT ที่ต้องการเอาอัลกอริทึมทั้งหมดขึ้นไปไว้ใน L3 เพื่อให้ได้ latency ต่ำที่สุดแบบสุดขั้ว หรืออาจเป็นกรณีที่ต้องการใช้เฉพาะคอร์ที่ดีที่สุดในแต่ละชิปเล็ตก็ได้ ถึงอย่างนั้นก็น่าจะเป็นเพราะ ไลเซนส์ซอฟต์แวร์ มากกว่า
การคงสถานะทั้งหมดไว้ในแคชโลคัล แล้วเลือกคอร์ที่เร็วที่สุดมารัน คือการจัดวางที่ดีที่สุด ถ้ารันได้ 16 ตัวแบบขนาน ก็ลดพื้นที่การค้นหาได้เท่านั้น
สำหรับปัญหาแบบนี้แทบไม่ต้องกังวลเรื่อง latency ระหว่าง CCD แม้จะรันอะไรอย่าง genetic algorithm ที่มีการ crossover ระหว่างคอร์จริงเป็นระยะ ๆ ความต้องการแบนด์วิดท์ระหว่างคอร์ก็ยังต่ำ
อย่างที่บอก ถ้าเป็น โค้ดจากบุคคลที่สาม ที่ไม่มีซอร์สหรือสิทธิ์ การเขียนใหม่ก็มักเป็นไปไม่ได้ตั้งแต่แรก
แต่ 512MB นี่ถือว่าค่อนข้างเหลือเฟือ สงสัยเหมือนกันว่าอาจเอา Puppy Linux ทั้งตัวขึ้นไปไว้ในแคช L3 ได้หรือเปล่า
https://www.mathworks.com/products/matlab-parallel-server/li...
การทดสอบอัลกอริทึมด้วยจำนวนเธรดหลาย ๆ ค่าแล้วเลือกจำนวนเธรดที่เหมาะที่สุดเป็นวิธีที่พบได้ทั่วไป อัลกอริทึมที่ใช้หน่วยความจำหนักมักให้ประสิทธิภาพสูงสุดที่จำนวนคอร์ค่อนข้างน้อย
Phoronix เพิ่งรีวิวเปรียบเทียบ Turin Dense 196 คอร์ กับ AmpereOne 192 คอร์
ราคาที่ Ampere แนะนำคือ 5.5 พันดอลลาร์ ส่วน EPYC อยู่ที่ 1.5 หมื่นดอลลาร์, Turin 196 มีประสิทธิภาพดีกว่า 1.6 เท่า ขณะที่ Ampere มีประสิทธิภาพต่อพลังงานดีกว่า 1.2 เท่า
ถ้าดูประสิทธิภาพจริงต่อดอลลาร์ตามรีวิวของ Phoronix แล้ว Ampere 192 คอร์ดีกว่า Turin Dense 196 คอร์ 1.7 เท่า กล่าวคือด้วยเงิน 5.5 พันดอลลาร์ คุณอาจซื้อ CPU AmpereOne 192 คอร์ (274W) หรือ CPU Turin Dense 48 คอร์ (300W) ได้
Ampere มีแผนออกผลิตภัณฑ์ 256 คอร์, 3nm, หน่วยความจำ 12 แชนเนลในปีหน้า จึงอาจแข่งขันกับ Turin Dense และ Sierra Forest ได้ดีขึ้นในด้านประสิทธิภาพดิบ จุดแข็งตอนนี้คือ ประสิทธิภาพต่อดอลลาร์
ประสิทธิภาพของชิปเซิร์ฟเวอร์ที่ใช้ Nuvia ของ Qualcomm ก็น่าสนใจมากเช่นกัน ถ้าการปรับปรุงคอร์ ARM ฝั่งไคลเอนต์เป็นเบาะแส ก็น่าสนใจว่าชิปแบบพัฒนาขึ้นเองอย่าง AWS Graviton, Google Axion, Microsoft Cobalt, Nvidia Grace, Alibaba Yitian จะแข่งขันกับคอร์ Neoverse ที่ดีขึ้นอย่างไร ภาพรวมคือ Nuvia ปะทะ ARM ปะทะ AmpereOne
ตอนนี้อาจเป็น ยุคทองของ CPU เซิร์ฟเวอร์ จริง ๆ เมื่อ 7 ปีก่อนมีแทบแต่ Intel Xeon แต่ตอนนี้มีตัวเลือกมากมาย
ทุกวันนี้ดาต้าเซ็นเตอร์จำนวนมากมักถูกจำกัดด้วยพลังงานที่มีอยู่และการระบายความร้อนที่ตามมา จึงเป็นสัญญาณที่ดีสำหรับ Turin
ถ้าดูแค่ประสิทธิภาพต่อดอลลาร์ ควรดูรุ่น Zen5 ที่มีจำนวนคอร์น้อยกว่า ไม่ใช่ Zen5c และฝั่งนี้มีประสิทธิภาพต่อดอลลาร์เป็นสองเท่าของ 9965 แบบ 192 คอร์
เหตุผลที่วิธีเดียวกันใช้กับ Ampere ได้ไม่ค่อยดี คือรุ่น 192 คอร์ 3.2GHz นั้นแทบจะอยู่ใกล้จุดประสิทธิภาพต่อดอลลาร์สูงสุดอยู่แล้ว
เป็นสเกลที่มหาศาลจริง ๆ แค่เมื่อ 20 ปีก่อน CPU หนึ่งตัวมีแค่ 1–2 คอร์ ถ้าเซิร์ฟเวอร์แบบ dual socket มี 4 คอร์ก็ถือว่าโชคดีแล้ว
ตอนนี้เซิร์ฟเวอร์เครื่องเดียวแทบจะมีได้เกือบ 400 คอร์ แน่นอนว่าถ้าใช้คอร์ ARM อาจมีได้มากกว่านี้ แต่ตอนนี้อย่างน้อยก็ยังไม่ได้ประสิทธิภาพระดับนี้
ถ้าเป็นเมื่อ 20 ปีก่อนคงต้องใช้อุปกรณ์หลายแร็ก
ถ้าเช่าเซิร์ฟเวอร์ dedicated แรง ๆ ได้ในราคาต่ำกว่าเดือนละ 1000 ดอลลาร์และประหยัดเงินได้หลายหมื่นดอลลาร์ ก็สงสัยว่าจะกระทบต่อบริการคลาวด์ที่แพงเกินไปอย่างไร เงินจำนวนนั้นอาจพอจ้างผู้ดูแลระบบเต็มเวลาแล้วยังเหลือด้วยซ้ำ
ถ้ามี เซิร์ฟเวอร์ bare metal AMD Turin ขึ้นบน Hetzner ก็อยากลอง deploy ดู รุ่นก่อนหน้าก็คุ้มค่ามากอยู่แล้ว รุ่นนี้ดูเหมือนจะดีขึ้นไปอีกขั้น
ยังใช้ Dell PowerEdge อายุ 12 ปีที่มี Xeon คู่กันอยู่ สงสัยว่า เซิร์ฟเวอร์ EPYC รุ่นแรก จะเริ่มมีของมือสองราคาถูก ๆ บน eBay เมื่อไร
ถ้าเป้าหมายหลักไม่ใช่เลน PCIe กับความจุ RAM ก็ไม่ค่อยแนะนำรุ่นต่ำกว่ารุ่นที่ 3 CPU สำหรับผู้บริโภครุ่นปัจจุบันแม้จะมีจำนวนคอร์แค่ครึ่งหนึ่งหรือหนึ่งในสี่ แต่ประสิทธิภาพการประมวลผลดีกว่าและกินไฟน้อยกว่ามาก
ประสิทธิภาพต่อคอร์ต่ำเกินไป มีปัญหาเกี่ยวกับ NUMA และกระบวนการผลิตก็แย่กว่า compute die ของรุ่นที่ 2 เป็น TSMC 7nm
ซื้อ 9 5950X มาได้ในราคา 242 ปอนด์
หรือจะหาชุดแบบ Epyc 7282 ก็หาได้ง่ายและใช้ได้ดี
ChipsAndCheese เป็นหนึ่งในสื่อเทคโนโลยีรุ่นใหม่ไม่กี่แห่งที่รู้เรื่องจริง ๆ โดยเฉพาะการ benchmark เชิงลึกแบบนี้
ในยุคที่เว็บเทคโนโลยีเก่า ๆ อย่าง Anandtech, TechReport, HardOCP หายไปแล้ว ดีใจที่มีสื่อใหม่ที่ตามงานเขียนเชิงลึกสไตล์เก่าได้
สำหรับคนที่ไม่ชอบที่ย้ายไป Substack ยังมี https://old.chipsandcheese.com/2024/10/11/amds-turin-5th-gen...
อย่างน้อยตอนนี้ยังใช้ได้
ชิ้นส่วนที่มีแค่ 16 คอร์แต่มี L3 cache 512MB นี่ชัดเจนว่าออกมาสำหรับ workload เฉพาะทาง
ดังนั้นการใช้ CPU 16 คอร์[1] ที่มี cache สูง แบนด์วิดท์สูง clock สูง และหน่วยความจำขนาดใหญ่ ในคอนฟิก 2 socket อาจเป็นตัวเลือกที่คุ้มค่าที่สุดเมื่อเทียบกับค่าไลเซนส์ที่เกิน 1 ล้านดอลลาร์
[1] https://www.amd.com/en/products/processors/server/epyc/9005-...
เท่ากับปิดคอร์ 112 คอร์เพื่อเหลือ 16 คอร์ไว้ โดยพยายามคง cache ให้มากที่สุด
แต่เพราะต้องวิ่งผ่านบัสข้าม chiplet ที่ค่อนข้างช้าตลอด latency ระหว่างคอร์จึงน่าจะไม่ดี
โปรเซสเซอร์ที่ไม่ใช่ X86 รุ่นเก่า ๆ เคยรองรับสิ่งนี้ และมักบูตในโหมดนั้นเพื่อให้ initialize memory controller ได้ ถ้าวันนี้ยังทำได้ ก็อาจมีการใช้งาน embedded ที่น่าสนใจอย่างระบบขนาดใหญ่ที่ไม่มี DRAM
มีส่วนที่บอกว่า “ระบบที่เข้าถึงได้รันหน่วยความจำที่ 6000MT/s และ DDR5-6000 MT/s รองรับในระบบส่วนใหญ่เมื่อใช้ DIMM 1 ตัวต่อ channel ถ้าใช้ DIMM 2 ตัวต่อ channel ความเร็วหน่วยความจำจะลดลงเป็น 4400 MT/s และถ้าใช้ DIMM 1 ตัวต่อ channel บนเมนบอร์ดที่มี 2 DIMM ต่อ channel ให้คาดว่าจะได้ 5200 MT/s” เลยสงสัยว่าความเร็วทั้งหมดนี้อ้างอิงกับ หน่วยความจำ ECC หรือเปล่า