epp_boost คืออะไร และทำไมคนใช้ Steam Deck ควรสนใจ
แพตช์ AMD P-State driver ที่เพิ่มฟีเจอร์ epp_boost คือการปรับปรุงกลไกจัดการพลังงานของซีพียูบนลินุกซ์ให้ตอบสนองต่อโหลดเกมแบบต่อคอร์ ทำให้ 1% low FPS บน Steam Deck ดีขึ้นอย่างมีนัยสำคัญโดยไม่ต้องบังคับให้ทุกคอร์วิ่งโหมดประสิทธิภาพสูงตลอดเวลา ซึ่งช่วยลดปัญหาเฟรมตกแบบฉับพลันและรักษาความลื่นในการเล่นเกมสำหรับเครื่องเกมพกพาได้ดีกว่าเดิมในขณะที่ยังคงประสิทธิภาพการใช้พลังงานที่เหมาะสม
หัวใจของเรื่องนี้คือแพตช์ AMD P-State driver ที่เพิ่มตัวเลือก epp_boost แบบต่อคอร์ โดยทดสอบบน Steam Deck ด้วย benchmark ของ Civilization VI พบว่า 1% low frame rate เพิ่มขึ้นถึง 31.8% และ 99th-percentile frame time ดีขึ้นอีก 4.1% ซึ่งเป็นตัวเลขที่สะท้อนประสบการณ์เล่นจริงมากกว่า FPS เฉลี่ย นี่ไม่ใช่การอัปเดตเล็กๆ แต่คือโอกาสทองของ Steam Deck FPS optimization สำหรับเจ้าของเครื่องเดิมที่ยังอยากเค้นศักยภาพจากฮาร์ดแวร์ชุดเดิมให้ได้มากที่สุด.
ปัญหาเดิมของ Linux kernel performance บนเกมพกพา
เพื่อเข้าใจว่าทำไมแพตช์นี้สำคัญ เราต้องมองที่ปัญหาเดิมของ Linux kernel performance บนเกมพกพาอย่าง Steam Deck ก่อน ในโหมด Energy Performance Preference (EPP) แบบปัจจุบัน แพลตฟอร์มจะเลือกจุดทำงานระหว่าง min_perf และ max_perf ตาม hint ของ EPP โดยเคอร์เนลจะเขียนค่าใหม่เมื่อมีการเปลี่ยนนโยบายหรือข้อจำกัดเท่านั้น ฟังดูชาญฉลาด แต่กลับเป็นกับดักสำหรับเวิร์กโหลดเกมยุคใหม่ที่ใช้เธรดหลักเพียงหนึ่งเธรดซึ่งยุ่งเกือบตลอดเวลาแต่มีการ sleep สั้นๆ ซ้ำๆ เช่นตอนรอ GPU fence หรือ synchronization event
ทุกครั้งที่เธรดเกม sleep สัญญาณประสิทธิภาพของฮาร์ดแวร์จะลดลง พอเธรดตื่นกลับมาทำงาน ซีพียูจึงเริ่มจากระดับความถี่ต่ำ ทำให้ tail latency หรือเฟรมท้ายๆ ช้าลาก ทั้งที่ระหว่างมีงาน ซีพียูแทบเต็มโหลดตลอด ผลลัพธ์คือค่า FPS เฉลี่ยดูดี แต่ 1% low และเปอร์เซ็นไทล์ของ frame-time แย่มาก การเล่นจึงสะดุดเป็นระยะๆ ซึ่งเป็นฝันร้ายของ handheld gaming frame rate ที่มีข้อจำกัดด้านพลังงานและความร้อนร่วมกันระหว่าง CPU และ GPU อย่างชัดเจน
กลไก epp_boost: บูสต์เท่าที่จำเป็น ไม่เผาแบตทิ้ง
David Vernet จากค่าย Meta ผู้พัฒนาแพตช์นี้เสนอคำตอบที่ไม่ใช่การเปิดโหมด EPP=performance ทั้งระบบ เพราะทางออกนั้นกินพลังงานเกินไป โดยเฉพาะบนเครื่องพกพาอย่าง Steam Deck เขาจึงเพิ่มฟีเจอร์ opt-in แบบต่อคอร์ที่ชื่อ epp_boost แทน แนวคิดคือไม่บังคับทุกคอร์ให้วิ่งแรงตลอด แต่เพิ่มความดุเฉพาะคอร์ที่มีงานจริงและยุ่งต่อเนื่อง กลไกของแพตช์คือเคอร์เนลจะสุ่มตัวอย่าง C0 residency ของแต่ละคอร์ทุกช่วงไม่เกิน 10 มิลลิวินาที หากพบว่าคอร์ใดมีโหลดอย่างน้อย 50% จะสลับค่า EPP ของคอร์นั้นไปสู่โหมดประสิทธิภาพสูงสุดชั่วคราว
เมื่อโหลดบนคอร์นั้นหายไปและไม่มีตัวอย่างที่ยุ่งเกิน 50% อีกภายใน 300 มิลลิวินาที ระบบจะปรับนโยบายกลับสู่โหมดปกติ แนวทางนี้ทำให้ epp_boost สามารถเพิ่มความลื่นไหลของ handheld gaming frame rate ได้โดยแทบไม่กระทบต่ออายุแบต เพราะมันบูสต์เฉพาะช่วงที่เธรดเกมทำงานจริง และปล่อยให้คอร์พักเมื่อเกมหยุดรอ การออกแบบแบบ per-core เช่นนี้คือคำตอบที่สมดุลกว่าการดันทุกคอร์ให้แรงสุดจนกินไฟและร้อนเกินงบประมาณความร้อนของเครื่องพกพา.
ผลลัพธ์ต่อ Steam Deck FPS optimization และประสบการณ์เล่นจริง
ตัวเลขที่ออกมาจากการทดสอบบน Steam Deck ด้วย benchmark ของ Civilization VI นั้นชัดเจน: 1% low frame rate เพิ่มขึ้น 31.8% ขณะที่ 99th-percentile frame time ดีขึ้น 4.1% นี่เป็นคำพูดที่ควรจดจำว่า “การเพิ่มขึ้น 31.8% ใน 1% low FPS ทำให้ประสบการณ์เล่นเกมลื่นขึ้นโดยไม่จำเป็นต้องเพิ่มค่า FPS เฉลี่ย” เพราะในโลกของเกมพกพา การที่เฟรมท้ายๆ ไม่ตกฮวบสำคัญกว่าตัวเลขสูงสุดบนหน้าจอนับเฟรมเสียอีก ผู้เล่นจะรู้สึกถึงความสม่ำเสมอของเฟรมไทม์มากกว่าค่าเฉลี่ยที่บางครั้งเป็นแค่ตัวเลขสวยๆ
สิ่งที่น่าสนใจคือผลลัพธ์นี้มาจากเพียงหนึ่งเกมและหนึ่งเครื่อง จึงยังถือว่าเป็นผลทดสอบแคบ แต่หากแนวโน้มเดียวกันเกิดบนเกมอื่นและฮาร์ดแวร์ Ryzen รุ่นใหม่ๆ ผลของ AMD P-State driver patch นี้อาจขยายไปสู่ SteamOS handheld อื่นและเดสก์ท็อปลินุกซ์ได้เช่นกัน สำหรับเจ้าของ Steam Deck ปัจจุบัน นี่คือ Steam Deck FPS optimization ที่ใช้ซอฟต์แวร์เพียวๆ ไม่ต้องเปลี่ยนฮาร์ดแวร์ แต่ยกระดับความลื่นได้แบบสัมผัสได้จริง.
ต้องลองไหมตอนนี้ และอนาคตของ epp_boost บนเกมพกพา
ในเชิงเทคนิค epp_boost ยังไม่ใช่ฟีเจอร์อย่างเป็นทางการของลินุกซ์ แพตช์นี้ยังต้องผ่านการรีวิวจากผู้ดูแลเคอร์เนลและทีมของ AMD ก่อนจะถูกรวมในเวอร์ชันผลิตจริง ตอนนี้ผู้ใช้ที่อยากลองต้องแพตช์เคอร์เนลเอง และเปิดใช้งานด้วยพารามิเตอร์ amd_pstate.epp_boost=1 จากนั้นตรวจสอบได้ผ่านไฟล์ /sys/module/amd_pstate/parameters/epp_boost ว่าฟีเจอร์ทำงานหรือยัง นี่ไม่ใช่ขั้นตอนสำหรับผู้ใช้ทั่วไป แต่เป็นข่าวดีที่บอกว่าช่องทางเพิ่มประสิทธิภาพจากระดับเคอร์เนลยังไม่หมดลง แม้บนฮาร์ดแวร์ที่ออกมาหลายปีแล้วก็ตาม.
จากมุมมองของคนเล่นเกมพกพา epp_boost คือทิศทางที่ถูกต้อง: แก้ไขปัญหาความแปรปรวนของประสิทธิภาพโดยไม่แลกแบตหมดไวเกินจำเป็น แทนที่จะหมกมุ่นกับ FPS สูงสุด ฝั่งลินุกซ์กำลังหันมาให้ความสำคัญกับ 1% low และ frame-time consistency ซึ่งสะท้อนประสบการณ์เล่นจริงมากกว่า หากในอนาคตแพตช์นี้ถูกพิสูจน์บนฮาร์ดแวร์ Ryzen หลายรุ่นและถูกรวมในลินุกซ์หลัก เราอาจเห็นยุคใหม่ของ handheld gaming frame rate ที่เน้น “ลื่นเสมอ” มากกว่าคะแนน benchmark สวยงามบนกระดาษ และ Steam Deck รุ่นปัจจุบันก็จะได้รับอานิสงส์เต็มๆ โดยไม่ต้องรอเครื่องรุ่นใหม่.






