เจาะลึกฮาร์ดแวร์
Hardware
AMD ฝังตัวโปรไฟล์หน่วยความจำลง Zen 6 หวังให้ Linux รู้ว่าหน้าไหน "ร้อน" ควรย้ายกลับ DRAM
ฟีเจอร์ที่แทบไม่มีใครพูดถึงนี้ อาจเป็นกุญแจสำคัญของสถาปัตยกรรมหน่วยความจำแบบหลายชั้นบนเซิร์ฟเวอร์ EPYC รุ่นถัดไป
ทีมข่าว เอไอไทย.com
⏱ อ่าน 5 นาที
ตัวเลขสวยหรูบนสไลด์ กับความจริงที่ว่า Redis ไม่ได้อะไรเลย — อันไหนคือภาพจริงของฟีเจอร์นี้
ถ้าพูดถึง Zen 6 คนส่วนใหญ่จะนึกถึงจำนวนคอร์ที่เพิ่มขึ้นหรือ IPC ที่กระโดดขึ้น แต่มีฟีเจอร์หนึ่งที่แทบไม่มีใครพูดถึงเลย ทั้งที่มันอาจส่งผลกับงานเซิร์ฟเวอร์หนักๆ มากกว่าที่คิด นั่นคือ IBS Memory Profiler ฮาร์ดแวร์ตัวใหม่ที่ AMD ใส่มาในซีพียูรุ่นถัดไป
เรื่องนี้ถูกเปิดเผยในงาน Linux Plumbers Conference (LPC) 2026 ที่กรุงปราก เมื่อวันที่ 5 ตุลาคมที่ผ่านมา โดย Bharata Bhasker Rao วิศวกรของ AMD เป็นคนนำเสนอเองเลย ไม่ใช่ข่าวหลุดจากที่ไหน
IBS หรือ Instruction-Based Sampling ไม่ใช่ของใหม่ มันเป็นฮาร์ดแวร์โปรไฟล์ที่ AMD มีอยู่แล้วในซีพียูรุ่นก่อนๆ แต่สิ่งที่ Zen 6 เพิ่มเข้ามาคืออินสแตนซ์แยกอีกตัวที่เบากว่า ทำหน้าที่เดียวคือสุ่มเก็บตัวอย่างการเข้าถึงหน่วยความจำข้อมูล (data memory access) เท่านั้น
จุดที่ทำให้มันน่าสนใจคือ ทุกครั้งที่เก็บตัวอย่างได้ ตัวโปรไฟล์จะส่งที่อยู่ทางกายภาพ (physical address) ของการเข้าถึงนั้นให้เคอร์เนล พร้อมบอกด้วยว่าข้อมูลที่ดึงมานั้นมาจาก DRAM หรือหน่วยความจำภายนอกอย่าง CXL
ทำไมเรื่องนี้ถึงสำคัญ? ก็เพราะบนเซิร์ฟเวอร์ที่ใช้หน่วยความจำแบบหลายชั้น (tiered memory) Linux ต้องหาวิธีระบุว่าเพจไหนถูกใช้งานบ่อย หรือที่เรียกว่า "hot page" เพื่อย้ายมันจาก CXL ที่ช้ากว่า กลับขึ้นมาอยู่บน DRAM ที่เร็วกว่า งานนี้ถ้าทำพลาด ประสิทธิภาพก็ร่วงทั้งระบบ
และตัวฮาร์ดแวร์ที่รองรับเรื่องนี้ก็คือ EPYC 9006 "Venice" ที่รองรับการขยายหน่วยความจำผ่าน CXL 3.1 นั่นเอง
ตอนนี้ Linux หา hot page ด้วยวิธีสแกน page table แล้วดักจับ page fault เอา ซึ่งก็ทำงานได้ในระดับหนึ่ง แต่ AMD อยากให้เอาตัวอย่างที่ได้จากโปรไฟล์ใหม่นี้ป้อนเข้า pghot ซึ่งเป็นซับซิสเต็มของเคอร์เนลที่เสนอขึ้นมาเพื่อติดตาม hot page โดยเฉพาะ
ตรงนี้แหละที่ผมว่าเป็นส่วนที่ต้องพูดตรงๆ เพราะตัวเลขที่ AMD เอามาโชว์ในงานมันไม่ได้สวยหรูแบบที่หลายคนอาจคิด
บนระบบทดสอบที่ใช้ 256 โลจิคัลซีพียู และหน่วยความจำ CXL ขนาด 256 GB ผลออกมาดังนี้ — XSBench วิ่งได้เร็วขึ้น 4.57 เท่าเมื่อเทียบกับเบสไลน์ที่ไม่มีการทำ tiering เลย ขณะที่วิธีปัจจุบันทำได้แค่ 1.18 เท่า ส่วน Graph500 ทำได้ 3.17 เท่า เทียบกับ 2.34 เท่าของวิธีเดิม
ฟังดูดีใช่ไหม แต่เดี๋ยวก่อน เพราะ Redis ไม่ได้ประโยชน์อะไรเลยจากวิธีใหม่นี้ และ NAS BT ยังช้ากว่าวิธีเดิมเล็กน้อยด้วยซ้ำ
ส่วนต้นทุนการย้ายเพจต่อ folio ลดลงจาก 26.1 ไมโครวินาที เหลือ 15.8 ไมโครวินาที ในการทดสอบวัด overhead อย่างไรก็ตาม เบนช์มาร์กตัวนั้นกลับทำงานช้าลงราว 5%
ทั้งหมดนี้ต้องย้ำว่าเป็นตัวเลขของ AMD เอง ไม่ใช่ผลทดสอบจากคนนอก และในสไลด์ก็ไม่ได้ระบุถึงการรองรับ virtualization สำหรับตัวโปรไฟล์นี้เลยด้วย ซึ่งถ้าคุณทำงานกับ VM หนักๆ ก็คงต้องรอดูกันต่อไป
pghot ยังพัฒนาไม่เสร็จ
แพตช์ของ pghot ยังอยู่ในขั้นตอนพัฒนาอยู่เลย ยังไม่มีกำหนดว่าจะเข้า mainline เคอร์เนลเมื่อไหร่
Venice พร้อมผลิตแล้ว
EPYC Venice อยู่ในขั้นตอนการผลิตแล้ว คาดว่าจะเห็นการใช้งานจริงบนคลาวด์ภายในปีนี้
ยังไม่มีการรองรับ virtualization
สไลด์ของ AMD ไม่ได้พูดถึงการรองรับ virtualization สำหรับ IBS Memory Profiler นี้เลย
เอาจริงๆ ผมว่าฟีเจอร์นี้เป็นตัวอย่างที่ดีของคำว่า "ศักยภาพสูง แต่ยังไม่จบ" ตัวแนวคิดมันฉลาดมาก — แทนที่จะให้ซอฟต์แวร์เดาเอาว่าหน้าไหนร้อน ให้ฮาร์ดแวร์บอกตรงๆ ว่าข้อมูลมาจากไหน ซึ่งถ้าทำได้เต็มรูปแบบ มันจะลดภาระของเคอร์เนลลงได้เยอะ
แต่ปัญหาคือผลลัพธ์ยังไม่นิ่ง งานบางประเภทได้ประโยชน์มหาศาล งานบางประเภทไม่เห็นผล หรือแย่กว่านั้นคือช้าลงด้วยซ้ำ นี่ไม่ใช่เรื่องแปลกสำหรับฟีเจอร์ระดับฮาร์ดแวร์ที่เพิ่งเริ่มต้น แต่ก็บอกได้เลยว่ามันยังไม่ใช่ของที่พร้อมให้ทุกคนใช้ได้ทันที
IBS Memory Profiler ของ Zen 6 ไม่ใช่ฟีเจอร์ที่ทุกคนจะได้ใช้ทันทีที่ซื้อซีพียู เพราะมันต้องรอทั้ง pghot ที่ยังไม่เสร็จ และรอให้ผลทดสอบจริงจากคนนอกยืนยันตัวเลขของ AMD แต่ถ้ามันทำได้ตามที่โชว์จริง มันจะเปลี่ยนวิธีที่ Linux จัดการหน่วยความจำแบบ tiered ไปเลย — และนั่นคือสิ่งที่คนทำงานเซิร์ฟเวอร์ควรจับตา ไม่ใช่แค่จำนวนคอร์ที่เพิ่มขึ้น
ที่มา: TechPowerUp — อ่านต้นฉบับ
ความคิดเห็น 5
กำลังโหลดความคิดเห็น...