benchmark GPU บนเบราว์เซอร์วัดอะไรได้และวัดอะไรไม่ได้
เราเป็นคนสร้าง benchmark บนเบราว์เซอร์เอง ดังนั้นขอให้อ่านบทความนี้เหมือนผู้ผลิตที่พิมพ์ผลข้างเคียงลงบนฉลากด้วยความสมัครใจ คะแนน GPU บนเบราว์เซอร์คือการวัดสิ่งที่มีอยู่จริง แต่สิ่งนั้นไม่ใช่สิ่งเดียวกับที่ 3DMark วัด และการแกล้งทำเป็นว่ามันเหมือนกันคือหนทางที่ทำให้ตัวเลข benchmark กลายเป็นโหราศาสตร์
ตัวเลขนั้นมีอะไรอยู่ข้างในบ้าง
เมื่อการทดสอบประสิทธิภาพของเรารายงานว่าเครื่องของคุณรักษาอนุภาค 600,000 จุดไว้ได้ที่อัตราเฟรมคงที่ ตัวเลขนั้นเป็นผลลัพธ์ของห่วงโซ่ที่ยาวมาก
- ตัวชิป GPU ซึ่งเห็นได้ชัดอยู่แล้ว
- ไดรเวอร์ และชั้นเชื่อมต่อที่เบราว์เซอร์ครอบไว้อีกที
- ตัวประกอบภาพของเบราว์เซอร์ ซึ่งกำหนดว่าเฟรมของคุณจะไปถึงหน้าจอเมื่อไร
- JavaScript และตัวเก็บขยะหน่วยความจำ ในฉากที่รีดการทำงานของ CPU
- ตัวจัดการพลังงานของระบบปฏิบัติการ ที่ตัดสินใจทีละวินาทีว่าคุณสมควรได้ความเร็วสัญญาณนาฬิกาเท่าไร
- ความร้อน ทั้งตัวถัง เส้นโค้งการทำงานของพัดลม และระยะเวลาตั้งแต่คุณรันทดสอบครั้งก่อน
- และทุกอย่างที่ทำงานอยู่ ทั้งแท็บ 40 แท็บของคุณ วิดีโอคอล และการสแกนของโปรแกรมป้องกันไวรัสในช่วงบ่าย
benchmark แบบเนทีฟตั้งใจข้ามข้อต่อหลายจุดในห่วงโซ่นี้เพื่อแยกฮาร์ดแวร์ออกมาให้ชัด ส่วน benchmark บนเบราว์เซอร์เก็บทุกข้อต่อไว้ ซึ่งเป็นได้ทั้งข้อดีและข้อเสีย
จุดที่คะแนนจากเบราว์เซอร์เป็นเครื่องมือที่ผิด
การจัดอันดับ GPU ข้ามระบบ การ์ดจอตัวเดียวกันอาจได้คะแนนต่างกันอย่างมีนัยสำคัญเมื่อเปลี่ยนเบราว์เซอร์ เวอร์ชันไดรเวอร์ หรือระบบปฏิบัติการ เพราะเบราว์เซอร์คือชั้นแปลภาษา คำสั่ง WebGL จะถูกเขียนใหม่ให้ตรงกับ API เนทีฟที่อยู่ข้างล่าง เช่น Metal บน macOS และ Direct3D บน Windows หากคุณอยากรู้ว่า GPU รุ่นหนึ่งแรงกว่าอีกรุ่นหรือไม่ ให้อ่านรีวิวแบบเนทีฟ นั่นคือเครื่องมือที่ถูกต้อง
การทำนายค่า FPS ในเกมแบบสัมบูรณ์ เอนจินเกมที่ผ่านการปรับแต่งมาเป็นสัปดาห์ ๆ ไม่ได้ทำงานเหมือนผืนผ้าใบในเบราว์เซอร์ คะแนนจากเบราว์เซอร์สัมพันธ์กับประสิทธิภาพในเกมอย่างหลวม ๆ เท่านั้น แต่พยากรณ์มันไม่ได้
ส่วนต่างที่เฉียดฉิว ลองรัน benchmark บนเบราว์เซอร์ตัวใดก็ได้ห้าครั้ง แล้วคุณจะเห็นการกระจายตัวไม่กี่เปอร์เซ็นต์แถมมาฟรี ๆ ความต่างที่อยู่ภายในช่วงนั้นคือสัญญาณรบกวน เราจึงติดป้ายผลทดสอบที่ประสิทธิภาพลดลงเพราะความร้อน และเปิดให้คุณดูผลรายฉากได้ เพื่อไม่ให้ช่องว่างเล็ก ๆ ถูกตีความเกินจริง
จุดที่คะแนนจากเบราว์เซอร์คือเครื่องมือที่ถูกต้องพอดี
การวัดสิ่งที่เว็บใช้ได้จริง หากสิ่งที่คุณสนใจคือแอปเว็บหนัก ๆ เครื่องมือบนผืนผ้าใบ แผนที่ และเว็บไซต์ WebGL จะให้ความรู้สึกอย่างไรบนอุปกรณ์เครื่องหนึ่ง ชั้นแปลภาษาเหล่านั้นไม่ใช่ความคลาดเคลื่อนของการวัด แต่คือปรากฏการณ์ที่ต้องการวัดเอง benchmark แบบเนทีฟมองไม่เห็นการถดถอยของเบราว์เซอร์ที่ลดประสิทธิภาพจริงของคุณลงครึ่งหนึ่ง แต่ benchmark บนเบราว์เซอร์อยู่ในนั้นด้วย
การเทียบเครื่องของคุณกับตัวมันเอง อุปกรณ์เดียวกัน เบราว์เซอร์เดียวกัน ก่อนและหลังอัปเดตไดรเวอร์ อัปเกรดระบบปฏิบัติการ หรือเมื่อรู้สึกว่าเครื่องช้าลงอย่างน่าสงสัย นี่คือจุดที่ benchmark บนเบราว์เซอร์เปล่งประกาย เพราะทุกอย่างถูกตรึงไว้เหมือนเดิมยกเว้นสิ่งที่คุณเปลี่ยน ประวัติคะแนนของคุณจึงเก็บไว้บนอุปกรณ์ของคุณเพื่อการใช้งานแบบนี้โดยเฉพาะ
การเปรียบเทียบบนห่วงโซ่เดียวกันในระดับใหญ่ การรันภาระงานเวอร์ชันเดียวกันหนึ่งหมื่นครั้งแล้วจัดกลุ่มตามตระกูล GPU ให้ค่ามัธยฐานที่มีประโยชน์จริง ๆ ว่า MacBook ชิปตระกูล M หรือ Android ระดับกลางโดยทั่วไปทำได้เท่าไรในเบราว์เซอร์ นั่นคือชุดข้อมูลที่ตัวอย่างแบบไม่ระบุตัวตนของเราสร้างขึ้น โดยมีเกณฑ์จำนวนขั้นต่ำก่อนที่เราจะเผยแพร่อะไรก็ตาม
การตรวจคัดกรองทันทีบนฮาร์ดแวร์ที่ไม่ใช่ของคุณ ไม่ต้องติดตั้ง ไม่ต้องมีสิทธิ์ผู้ดูแลระบบ ใช้ได้บนโน้ตบุ๊กมือสองที่คุณกำลังตรวจ หรือบนเครื่องออฟฟิศที่ถูกล็อกไว้ การทดสอบที่คุณรันได้จริงย่อมดีกว่าการทดสอบที่ดีกว่าแต่คุณรันไม่ได้ (ในเรื่องนี้ ดูขั้นตอนตรวจหน้าจอของอุปกรณ์มือสอง)
เรารักษาความซื่อตรงของตัวเลขอย่างไร
รายละเอียดอยู่ในวิธีคำนวณคะแนน แต่สรุปวินัยที่เรายึดถือได้สั้น ๆ ดังนี้
- ใช้เวลาต่อเฟรม ไม่ใช่ตัวนับ FPS เราตัดสินเวลาต่อเฟรมบนหน้าต่างขนาดหลายวินาที โดยนับเฟรมที่พลาดเทียบกับงบเวลาที่รู้จักจังหวะของจอ แทนการเฉลี่ยกลบทิ้ง benchmark ที่เฉลี่ยจนอาการกระตุกหายไปนั้นกำลังวัดงานการตลาด
- งบเวลาต่อเฟรมที่ตรึงไว้ คือ 16.67 ms ไม่ว่าจออัตรารีเฟรชเท่าใด โน้ตบุ๊กจอ 120 Hz จึงไม่ถูกลงโทษเพราะมีจอที่ดีกว่า
- ภาระงานที่มีเวอร์ชันกำกับ การเปลี่ยนสิ่งที่ฉากวาดแม้เพียงเล็กน้อยก็ทำให้เวอร์ชันของ benchmark ขยับ และคะแนนข้ามเวอร์ชันเทียบกันไม่ได้เด็ดขาด
- ติดป้ายการเสื่อมประสิทธิภาพ ไม่ใช่กลืนมันเข้าไป หากอุปกรณ์ช้าลงระหว่างการทดสอบ ซึ่งมักเกิดจากความร้อน ผลลัพธ์จะบอกตรง ๆ แทนที่จะแอบเฉลี่ยการลดความเร็วเข้าไปในตัวเลขของคุณ
- ไม่แต่งตัวเป็นห้องแล็บ เราเรียกคะแนนนี้ว่าคะแนนภาระงานบนเบราว์เซอร์ เพราะมันเป็นอย่างนั้นจริง ๆ
วิธีให้ได้ตัวเลขที่ควรค่าแก่การเก็บไว้
ปิดสิ่งที่ปิดได้ เสียบสายชาร์จ ปิดโหมดประหยัดแบตเตอรี่ ปล่อยให้เครื่องเย็นลง และอย่าแตะอะไรระหว่างการทดสอบ เพราะภาระเบื้องหลังกับความร้อนคือสองต้นเหตุใหญ่ที่สุดของความแปรปรวนเท่าที่เราเห็นมา จากนั้นให้รันสองครั้งแล้วเชื่อผลครั้งที่สองมากกว่า เพราะครั้งแรกเป็นตัวจ่ายค่าอุ่นเครื่องไปแล้ว