มีการตั้งข้อสังเกตุขึ้นมาใหม่อีกตัว ตอนนี้น่าจะเป็น บั๊ก หรือ bug ใน Windows 10’s scheduler ก็ได้ที่ไปส่งผลกระทบต่อประสิทธิภาพของ AMD Ryzen CPUs. ตัว bug ได้ถูกออกมายืนยันแล้วว่ามันจะส่งผลกระทบเฉพาะผู้ที่ใช้ Windows 10 แต่จะไม่มีผลใดๆกับ Windows 7. และยังไม่เป็นที่แน่ชัดว่า Windows 8.1 จะร่วมอยู่ด้วยหรือไม่.
ปัญหาเริ่มมีมากขึ้นสำหรับ AMD ในรูปแบบ Simulatneous Multi-Threading ใหม่
Ryzen processors นั้นเป็นชิปตัวแรกของทาง AMD ที่มาพร้อมรูปแบบ simulatenous multi-threading technology (มาพร้อมกับแกนการประมวลผลถึง 8 แกนสามารถคำนวณได้ทีละ 16 threads พร้อมๆกัน). ซึ่งจะยอมให้หรือ enables แต่ละ CPU core ปฏิบัติการ์ณได้สอง threads ไปพร้อมๆกัน. ตัว thread หลักของแต่ละแกนจะมีตัวแกนรองคอยเสริมในด้านผลของการประมวลผลนั้นสามารถรับปริมาณงานหรือ threaded workloads ได้สูงยิ่งขึ้น. แนวคิดนี้สำหรับการปฏิบัติการ thread รูปแแบนี้ก็เพื่อให้สามารถรับคำสั่งหรือมีรอบในการรับคาสั่งนั้นมีประสิทธิภาพที่ไวมากยิ่งขึ้นต่อรอบหรือ per clock throughput, เช่นมีประสิทธิภาพที่เพิ่มสูงขึ้น. นอกเหนือไปจากนั้น ในรูปแบบ SMT thread สามารถกระทำได้และใช้ได้ภายใต้ขีดความสามารถของแกนที่มีให้เท่านั้น.
สำหรับ Intel’s hyper-threading technology ก็จะคล้ายๆกัน. จะยอมให้แต่ละ “hyper-thread” พร้อมด้วยพื้นที่ (ทรัพยากร) บางส่วนเท่านั้นให้กับ thread หลักในแกนตัวใดของ CPU core ก็ได้. ในแง่ดีของ SMT นั้นจะเพิ่มประสิทธิภาพหรือผลลัพท์เพิ่มขึ้นประมาณ 20-30% สำหรับทั้ง Intel’s latest Skylake microarchitecture และ AMD’s Zen microarchitecture.
ไม่ทุกตัวของ Threads จะมีมาเท่ากัน
Windows 10′ scheduler นั้นก็ปฏิบัติหน้าที่ของมันอย่างถูกต้องแล้วโดยที่บอกสถานะของ Intel’s hyper-threads นั้นมีประสิทธิภาพที่ด้อยกว่าหากเทียบกับ principal core threads/แกนหลัก และ schedules tasks/อันดับหรือขั้นตอนของงาน ก็ได้ประโยชน์ที่เพิ่มมากขึ้นจากผลลัพท์โดยที่ไม่ส่งผลกระทบต่อประสิทธิภาพใดๆ. ในทางตรงกัน scheduler ณ ขณะนี้มันยังไม่มีความสามารถพอที่จะหาข้อแตกต่างระหว่าง principal core threads จาก virtual SMT threads/แบบจำลองที่เป็นของ Ryzen และในความเป็นจริงกลับเห็น 16 thread Ryzen 7 processors ที่เป็น processors พร้อมด้วย 16 physical cores/ตัวเป็นๆของจริง พร้อมด้วยขีดความสามารถ (ทรัพยากร)ที่เท่าๆกันในแต่ละ thread.
เหตุที่เป็นเช่นนี้เพราะมันยังไม่การกำหนดหรือบอกให้อันไหนควรทำก่อนหรือเป็นพิเศษสำหรับหน้าที่ของ scheduling tasks โดยเฉพาะมาเจอ threads ที่ถูกสร้างมาจาก SMT threads เลยงง ซึ่งจะไม่เหมือนของทาง Intel platforms, ซึ่งสามารถรองรับจำนวนงานได้มากกว่าหรือเปอร์เซนต์ที่เยอะกว่าและสามารถลำเรียงไปให้ virtual SMT thread ได้ดีกว่าแทนที่จะเป็น principal core thread. ผลที่ได้สำหรับฝั่งแดงคือประสิทธิภาพที่ด้อยลง.
สถานะของ Ryzen ใน Windows 10 Scheduler
อีกอย่างที่ดูเหมือนเป็นปัญหาเช่นกันก็คือไม่สามารถรู้จำนวนที่แน่นอนของ cache ที่มีอยู่ในแต่ละ thread. การไปเพิ่มจำนวนแบบ L2 และ L3 cache ทำให้ Windows 10’s scheduler “thinks/คิดว่า” iจำนวนที่มีอยู่ทั้งหมดนั้นมีมากถึง 136MB ที่เป็น cache, แต่ความเป็นจริง Ryzen 7 นั้นมีแค่ 20MB ของ L2+L3 cache หากนำมารวมกัน.
Windows 10 Scheduler Single Core Thread Mapping:
*--------------- Data Cache 0, Level 1, 32 KB, Assoc 8, LineSize 64 *--------------- Instruction Cache 0, Level 1, 64 KB, Assoc 4, LineSize 64 *--------------- Unified Cache 0, Level 2, 512 KB, Assoc 8, LineSize 64 *--------------- Unified Cache 1, Level 3, 16 MB, Assoc 16, LineSize 64 -*-------------- Data Cache 1, Level 1, 32 KB, Assoc 8, LineSize 64 -*-------------- Instruction Cache 1, Level 1, 64 KB, Assoc 4, LineSize 64 -*-------------- Unified Cache 2, Level 2, 512 KB, Assoc 8, LineSize 64 -*-------------- Unified Cache 3, Level 3, 16 MB, Assoc 16, LineSize 64
แล้วจะทำอย่างไรในตอนนี้
อย่างแรก, ตอนนี้เรารู้แล้วว่าทาง AMD รู้ถึงปัญหาด้านนี้. แน่นอนว่าต้องออกมากล่าวอ้างว่าเป็นเพราะ Microsoft เลยทำให้ปัญหาเกิดขึ้น. ทางบริษัทก็พยายามที่จะให้ทางฝ่ายผลิตนั้นให้ระวังให้ดีกับระบบ OS ใหม่ล่าสุดนี้เป็นระยะเป็นปีเช่นกัน. แต่ทำไปทำมาทำให้ตัวฮาร์ดแวร์นั้นไม่สามารถรองรับ Windows 10 ได้เต็มที่. และสิ่งที่จะแก้ปัญหานี้ได้ก็คงหนีไม่พ้นต้องเข้ามาเจรจาร่วมกันเพื่อแก้ปัญหาด้านนี้.
เราเคยเห็นเหตุการ์ณนี้เกิดขึ้นมาแล้วในอดีตเกี่ยวกับ Intel’s hyper-threading. มันกินเวลามากเหมือนกันและ patches/ซอร์ฟแวร์ อีกหลายรุ่นกว่าจะลุล่วงได้ดีและนี้อาจจะเป็นกรณีเดียวกันเช่นกันสำหรับ Ryzen microarchtiecture ตัวใหม่นี้. ข่าวดีก็คือ Windows 7 ยังเป็นญาติดีกันอยู่และที่น่ายินดีเป็นอย่างยิ่งก็คือ Windows 7 ได้ออก drivers ตัวใหม่มาเพื่อ AM4 motherboards อีกด้วย. และนี้อาจจะเป็นวิธีที่ดีที่สุดสำหรับรอการแก้ไขเพราะรู้แน่นอนว่า Windows 7 นั้น bug free หรือไม่มีจุดบกพร่องให้เห็นและได้รับการยืนยันอย่างเป็นทางการสำหรับผู้ผลิตบอร์ดด้วย.
หากคุณเป็นอีกคนที่ใช้ Windows 10 ยังสามารถแก้ได้อีกอย่างก็คือทำ bypass ส่วนของ scheduler หรือให้ข้ามไปเพื่อให้ประสิทธิภาพนั้นสามารถดำเนินต่อไปได้สำหรับงานนั้นๆ/specific workloads. สำหรับ games คุณสามารถไปยกเลิกชั่วคราวหรือ disable SMT และที่เห็นประสิทธิภาพก็ดีขึ้น. และนี้เองที่เป็นจุดบงชี้ว่าทำไมเกมส์บางเกมส์นั้นใช้ได้ดีหรือไม่ดีเสียส่วนใหญ่กับการนำเอา SMT มาร่วมใช้. หากว่างานของคุณนั้นใช้ threaded ไม่มากเท่าหรือเป็นแบบ single และ lightly threaded workloads/ปริมาณที่ไม่มาก เราแนะนำให้คุณไปยกเลิกการใช้งานของ SMT เสียก่อนจนกว่า Microsoft จะอีพเดทปัญหานี้อีกที. หากคุณใช้งานทางด้านกราฟฟิกหรืองานที่เกี่ยวข้องกับ multi-threaded work ที่เข้มข้นก็ควรที่จะเปิดใช้งานต่อไปสำหรับ SMT หรือ enabled ไปซะ เพราะอาจจะไม่ส่งผลกระทบอะไรมากเท่าไหร่หากมันไม่เข้มข้นจนเกินไปทางด้านกราฟฟิกหรือปริมาณงานที่กระทำ.
ที่มาเครดิต/Sources:
http://wccftech.com/amd-ryzen-performance-negatively-affected-windows-10-scheduler-bug/