BLOG

Throttling in 2017

ปัญหาที่อยู่คู่กับคอมพิวเตอร์นี้คืออะไร และยังมีอยู่หรือไม่ ลองมาดูกัน

ในช่วงต้นๆ ที่เราเริ่มทำยี่ห้อนี้ ผมมักจะได้ยินคำถามว่า ทำไมถึงทำยี่ห้อนี้ออกมา นึกยังไง คิดอะไรอยู่ เบื้องหลังมันเป็นยังไง หลายๆ ท่านก็น่าจะได้ยินเนื้อเรื่องจากผมและน้องชาย เริ่มเรื่องคล้ายๆ กัน ประมาณว่า

ทุกเครื่องที่เราใช้มา มีปัญหาเรื่องใช้งานนานมากไม่ได้ มันร้อนจนเครื่องอืดลง เล่นเกมได้ 20-30 นาทีก็เริ่มกระตุกแล้วไม่รู้จะทำยังไง ก็ฝืนใช้ไปจนพังไป 4 เครื่องแล้ว...

ต่อจากนั้นก็เป็นประวัติศาสตร์ครับ เหอๆ ผมกะน้องก็ไปได้ i7-4720HQ + GTX980M มาคนละตัว คุยกับเจ้าของถูกคอ แล้วก็เลยเถิดจนเกิดยี่ห้อนี้ขึ้นมา

สองปีผ่านไป...เมื่อสองสามวันก่อน ผมก็ไปเจอกับโพสของ Notebookcheck ซึ่งเว็บรีวิวโน๊ตบุ้คที่ผมติดตามมานาน และทำให้ผมรู้จักและใฝ่ฝันถึงยี่ห้อ CLEVO นี้ เขาได้โพสเกี่ยวกับเรื่องของอาการ "Throttling" ในเครื่องที่พวกเขารีวิวกัน

เดี๋ยวนะ...สองปีแล้ว มันยังมีปัญหาเรื่องนี้อีกเรอะ!

โดยเขาจั่วหัวมาเลยว่า

Due to the prevalence of thermal throttling and new passive-cooling technologies, it is no longer enough to run a few short benchmarks and declare a machine's performance is satisfactory.

เดี๋ยวนี้มีปัญหา Thermal Throttling เกิดขึ้นเยอะมากและประกอบกับการที่มีเทคโนโลยีการระบายความร้อนแบบ Passive (ไม่ใช้พัดลม) การที่จะแค่รันโปรแกรมทดสอบสั้นๆ แล้วบอกว่า ประสิทธิภาพเครื่องนี้ได้ผลดี มันไม่เพียงพอแล้ว

ลองไปอ่านบทความเต็ม ๆ ได้ที่นี่:
https://www.notebookcheck.net/Opinion-It-s-time-we-talked-about-throttling-in-reviews.234232.0.html

เกี่ยวเนื่องกัน ก็คือเรื่องของ Nvidia Max-Q ประเด็นนี้เต็มๆ เลย ก็น่าอ่านดีเหมือนกัน
https://www.notebookcheck.net/Opinion-Nvidia-s-Max-Q-Maximum-efficiency-minimum-performance.232038.0.html

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

อะไรคือ Throttling?

ในสมัยก่อน CPU สามารถเกิดการ "ไหม้" ได้ เนื่องจากความร้อนที่เกิดจากการทำงานมีสูงมากจนเกินไป จนความร้อนนั้นมันเกินกว่าที่วัสดุที่ใช้ผลิต CPU/GPU หรือสิ่งที่อยู่รอบๆ มันจะทนได้จนมัน "ไหม้" นั่นแหละครับ เคสที่ทำให้ตะกั่วเชื่อมละลาย ก็เคยเกิดขึ้นมาแล้ว (แต่ครั้งนั้นเพราะตะกั่วไม่ได้มาตรฐาน) สมัยก่อนนู้นก็คือแค่เราเปิดเครื่องคอมพิวเตอร์ โดยไม่มี Heatsink ก็ทำให้ CPU พังได้ทันที หรืออาจจะเคยได้ยินว่า เราสามารถ Overclock CPU จนมันไหม้ ก็เพราะเหตุนี้ละครับ แต่ถ้า CPU เก่ามากจริงๆ มันยังไม่มี Heatsink นะ แค่ให้มันระบายความร้อนใส่อากาศรอบๆ มันก็เพียงพอแล้วสำหรับการทำงาน

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

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

และนอกจากนี้ ก็ยังมีเรื่องของ Power Limit/Current Limit/EDP Limit Throttling ด้วย ซึ่งเกิดจากการที่ภาคจ่ายไฟ ไม่สาามารถจ่ายไฟไปเลี้ยง CPU/GPU ได้เพียงพอ หรือเป็นที่การลิมิตปริมาณกระแสไฟฟ้าที่ผ่านวงจรได้ จากภายในตัว CPU เอง (EDP : Electrical Design Power) ตัวมันก็ต้องลดความเร็วลงเช่นกัน เพื่อป้องกันภาคจ่ายไฟเสียหาย และป้องกันความผิดพลาดในการคำนวณด้วย

แค่ไหนคือ Throttling?

คำจำกัดความของ Throttling นี้ค่อนข้างกำกวมมาากก เมื่อมีความเร็วที่เรียกว่า Turbo/Boost เข้ามาเกี่ยวข้องครับ อย่างเช่น CPU i7-7700HQ มันสามารถทำความเร็วได้สูงสุด 3.8GHz แต่ว่าต้องใช้งานแค่ 1 Core เท่านั้น ถ้าเกินกว่า 1 Core มันจะลดความเร็วลงไปเป็นขั้นๆ แล้วแบบนี้จะเรียกว่ามัน Throttle ได้ไหม?

ส่วนถ้าท่านที่มี CPU แบบ HK หรือ K ก็น่าจะเคยพบแล้วเหมือนกันว่า ถึงแม้จะปลดล็อคคัวคูณได้ แต่เราคูณไว้เยอะ พอมันทำงาน 100% ครบทุก Core มันก็ไม่ถึงที่เราตั้งไว้ และจะไปเจอ Power Limit (ปรับได้) หรือ EDP / Current (ปรับไม่ได้) Limit Throttling อีก

สำหรับ Notebookcheck ได้ให้คำจำกัดความเอาไว้ว่า ถ้า CPU ไม่สามารถวิ่งที่ความเร็ว Turbo Boost ได้ แบบนี้คือเกิดการ Throttling ครับ:

I've established that a CPU should hold its turbo boost under load or it is considered throttling, but what is throttling, anyway? As you might have guessed, it is the intentional reduction of the speed of a processor due to some limiting factor in the system (generally power limit, current, or, most commonly, thermal). Note that when a CPU is at idle it will reduce its clockspeed, but the system — and myself — do not consider it throttling: while the clocks indeed drop at idle, the CPU does not return a throttling flag in this state (you can check using Intel's own XTU or one of many other CPU monitoring utilities).

และในการทดสอบ ทาง Notebookcheck ใช้วิธีการรัน Cinebench R15 แบบลูป เป็นเวลา 30 นาทีแล้วพล็อตออกมาเป็นกราฟว่าคะแนนมีความแตกต่างกันขนาดไหน

แต่ผมเชื่อว่าปัญหานี้ น่าจะเกิดกับเฉพาะเครื่องเล็กๆ บางๆ ที่ต้องใช้ความสามารถในการระบายความร้อนสูงเป็นพิเศษเท่านั้นนะ แต่ผมก็สงสัยอยู่ดี เลยลองดู

CLEVO นายแน่แค่ไหน?

จากความรู้สึกส่วนตัว ก็ต้องบอกว่า หลังจากใช้ CLEVO แล้ว ไม่เคยห่วงเรื่อง Throttling อีกเลย แต่เราจะใช้ฟีลลิ่งอย่างเดียวไม่ได้ ต้องขอลองวัดดูหน่อย ผมเลยลองเขียนโปรแกรม ที่จะทำการรัน Cinebench วนดูว่า ผลคะแนนเป็นอย่างไร มีขึ้นมีลงบ้างไหม ผลออกมาตามนี้ครับ

P-13 i7-7500U, (16GB Single Channel) 2 ชั่วโมง

SX i7-7700HQ GTX1070 MAXQ Prototype (8GB Dual Channel) ชั่วโมงนิดๆ

ก็อุ่นใจได้ว่าเครื่อง CLEVO ที่เราเลือกใช้ ไม่มีปัญหาเรื่อง Throttling กวนใจ คะแนนก็แกว่งอยู่ในช่วง 1% - 2% ซึ่งจัดว่าไม่มีประเด็นอะไรทางสถิติ ขนาดเครื่อง Ultrabook ก็ยังทำคะแนนได้คงที่มาก ยกเว้นตอนแรกของ SX พอรันไปสองทีสังเกตว่าคะแนนมันน้อยแปลกๆ และพัดลมมันไม่หมุนแรงครับ เลยลองไปเปลี่ยนเป็นโหมด High Performance คะแนนเลยเพิ่มขึ่้นครับ

ข้อสังเกตก็คือ Cinebench จะมีช่วงเวลาที่โหลดอยู่นานพอสมควรเหมือนกัน ประมาณ 10-30 วินาทีเลย จังหวะนี้ก็น่าจะเป็นช่วงที่ภาคระบายความร้อนสามารถระบายความร้อนออกไปได้บ้างแล้ว จะว่าไป ผมว่าการใช้ Cinebench ก็เข้าท่ากว่าการใช้โปรแกรมที่ Burn จริงจังตลอดเวลา เพราะมันคล้ายๆ กับการทำงานจริงของเรา ที่เราทำๆ พักนึง อยู่แล้วก็สั่งให้เครื่องประมวลผล จากนั้นก็กลับมาทำต่อ อย่างการเขียนโค๊ด ที่ต้องมีการคอมไพล์เป็นช่วงๆ (ถ้าใช้ Visual Studio มันคอมไพล์ตลอดเวลาเลยนะ เพื่อทำ Intellisense) หรือว่าตัดต่อหนัง ที่ต้องมี Process Effect เป็นช่วงๆ ครับ

สถานการณ์ของท้องตลาด

ผมลองดูหลายๆ ยี่ห้อจากเว็บ Notebookcheck ก็พบว่า บางยี่ห้อ บางรุ่น โดยเฉพาะรุ่นที่อยู่ในบทความ มีการ Throttle หนักมาก ในขณะที่บางรุ่น ก็ได้คะแนนสวยงามเกือบเท่าเดิมตลอด

ขออนุญาตนำภาพจากหน้าเว็บมาแปะให้เลย เพื่อความสะดวกในการรับชมนะครับ

Fujitsu Celcius Xeon Mobile Boost ได้ 4.2GHz...

Surface Pro - i7-7660U Throttle โหดมาก ลงมาแทบไม่ต่างจาก 7500U

MSI GS63VR ลงไปประมาณ 10% ได้คะแนนสูงสาุดครั้งเดียว

MSI GS73VR ลงไปประมาณ 30%!!!

แล้วมันสำคัญขนาดไหน?

จากความเห็นส่วนตัว ก็คิดว่าน่าจะเป็นเพราะคนที่ออกแบบ คงศึกษาจาก Pattern การใช้งานของกลุ่มตัวอย่างแล้วว่า จริงๆ ประมาณนั้นก็คงพอ หรืออาจจะมีความต้องการว่า เอาแค่ให้ผล Benchmark ออกมาดี ก็ได้เหมือนกัน (นี่เราไม่ได้พูดถึงเรื่อง Dieselgate ของ VW อยู่ใช่่ไหม...)

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

เพราะถ้าเครื่องมันช้าลง 10% เราก็เสียเวลาไป 6 นาที ทุกๆ ชั่วโมงที่เราใช้งานแล้วนะ

BLOG