เวลาเราจะติดตามการทำงานของ GPU ก็สามารถทำได้หลายวิธีครับไม่ว่าจะใช้ซอฟต์แวร์ยอดนิยมอย่าง GPU-Z หรือในระหว่างการเล่นเกมเราก็อาจจะใช้โปรแกรม MSI Afterburner หรือใช้ HWiNFO คู่กับ RivaTuner ก็ได้เช่นกัน แต่จริง ๆ แล้วหนึ่งในเครื่องมือที่ใช้ตรวจสอบการทำงานของกราฟิกการ์ดได้ดีอีกหนึ่งอย่างก็คือ GPU Monitor ที่อยู่ใน Task Manager ของ Windows 10 นั่นเอง (ต้องเป็นเวอร์ชัน Fall Creator Update เป็นต้นไป) และในบทความนี้เราจะมาแนะนำวิธีการใช้ GPU Monitor ของ Windows 10 กันครับ
หมายเหตุ: สำหรับคนที่ติดตั้งหรืออัปเกรดเป็น Windows 10 Fall Creators Update เป็นต้นไปเรียบร้อยแล้ว แต่ใน Task Manager ไม่มี GPU Monitor แสดงขึ้นมา ก็ต้องตรวจสอบดูว่ากราฟิกการ์ดหรือ GPU ของเรานั้นรองรับการทำงานของ WDDM (Windows Display Driver Model) เวอร์ชัน 2.0 ขึ้นไปหรือไม่ เพราะว่าคุณสมบัตินี้จะใช้ได้กับกราฟิกการ์ดที่รองรับ WDDM 2.0 ขึ้นไปเท่านั้น
วิธีตรวจสอบกราฟิกการ์ดว่ารองรับ WDDM 2.0 หรือไม่
ถ้าต้องการตรวจสอบว่ากราฟิกการ์ดที่เราใช้รองรับ WDDM เวอร์ชัน 2.0+ หรือไม่ก็ตรวจสอบง่าย ๆ ด้วยการใช้ DirectX Diagnostic Tool ซึ่งเป็นเครื่องมือที่มาพร้อมกับวินโดวส์ 10 อยู่แล้ว
กดปุ่ม Win+R เพื่อเรียกคำสั่ง Run พิมพ์ dxdiag แล้วกด OK ก็จะมีหน้าจอแสดงขึ้นมาดังในภาพด้านล่างนี้ให้คลิกไปที่แท็บ Display ก็จะทราบได้ว่ากราฟิกการืดที่เราใช้งานอยู่เป็นรุ่นอะไร และรองรับ WDDM เวอรชันใด ในตัวอย่างนี้กราฟิกการ์ดของเราคือ GeForce GTX 970 รองรับการทำงานของ WDDM เวอร์ชัน 2.3 ซึ่งรองรับการทำงานของ GPU Monitor อย่างไม่มีปัญหา
WDDM: Windows Display Driver Model – WDDM นี้ถือว่าเป็นไดรเวอร์สำหรับการทำงานของกราฟิกชิปอีกส่วนหนึ่งก็ว่าได้ และเป็นไดรเวอร์ในแบบขั้นพื้นฐานที่สามารถทำงานร่วมกับกราฟิกชิปได้ทุกค่ายไม่ว่าจะเป็น AMD, Intel หรือ NVIDIA เพียงแต่ไดรเวอร์นี้ไม่ได้ทำหน้าที่ในเรื่องการประมวลผลกราฟิกทางด้านการเล่นเกม แต่ทำหน้าที่ในเรื่องช่วยจัดการหน่วยความจำ และโพรเซสงานบางส่วนที่จะต้องทำงานร่วมกับ Direct3D ที่อยู่ใน DirectX อีกทอดหนึ่ง การทำงานของ WDDM นั้นจะใช้งานได้กับกราฟิชิปที่รองรับการทำงานของ DirectX 9 ขึ้นไป สำหรับ WDDM นี้ก็จะมีเวอร์ชันเหมือนกับไดรเวอร์ทั่ว ๆ ไป เพียงแต่ไดรเวอร์ตัวนี้จะถูกพัฒนาขึ้นมาโดยไมโครซอฟท์เพื่อใส่ไว้ในวินโดวส์เวอร์ชันต่าง ๆ ครับ (ล่าสุดเป็น WDDM 2.3 แล้ว)
วิธีเรียกดู GPU MONITOR ใน TASK MANAGER
สำหรับคนที่อัปเดตวินโดวส์และตรวจสอบแล้วว่ากราฟิกการ์ดหรือ GPU รองรับ WDDM 2.0 ขึ้นไป เราก็ลองเรียก Task Manager ขึ้นมาดูกันเลยครับ กดปุ่ม Win+R เรียกคำสั่ง Run แล้วพิมพ์ taskmgr ก็จะเป็นการเรียกโปรแกรม Task Manager ขึ้นมาทำงาน หรือจะกดปุ่มคีย์ลัด Ctrl + Shift + Esc ก็ได้เช่นกัน เมื่อเรียก Task Manager ขึ้นมาแล้วก็ให้คลิกไปที่ห้วข้อ GPU ครับ
เมื่อคลิกมาที่ส่วนของ GPU เราก็จะพบกับหน้าจอในลักษณะภาพด้านล่างนี้ ดูแล้วก็เหมือนกับหัวข้ออื่น ๆ ใน Task Manager ที่มีการแสดงผลเป็นกราฟให้เราได้ติดตามการทำงาน ในภาพด้านล่างนี้เป็นตัวอย่างจากกราฟิกการ์ด GeForce GTX 1080
ในส่วนของ GPU จะมีพื้นที่แสดงกราฟรายงานข้อมูลอยู่สามส่วนด้วยกัน ส่วนแรกคือพื้นที่สำหรับแสดงการทำงานของกราฟิกเอนจิ้นหรือหน่วยการทำงานอื่น ๆ ที่อยู่ใน GPU ส่วนที่สองคือ Dedicated CPU memory uses ใช้สำหรับแสดงปริมาณการใช้หน่วยความจำที่อยู่บนตัวของกราฟิกการ์ด และส่วนที่สามคือ Shared GPU memory usage แสดงการใช้งานพื้นที่หน่วยความจำที่แชร์มาจากหน่วยความจำหลักของระบบ (RAM) ซึ่งตามปกติจะแชร์มาใช้งานประมาณ 8GB แต่ไม่ต้องตกใจการแชร์ตรงส่วนนี้จะใช้เฉพาะที่จำเป็นและตรงพื้นที่ที่ยังไม่่ได้ใช้งานโปรแกรมอื่น ๆ ก็ยังสามารถเข้าถึงพื้นที่ส่วนนั้นได้ การแชร์ตรงนี้จะเกิดขึ้นมาเนื่องจากใน DirectX 12 ทั้ง CPU และ GPU สามารถช่วยกันประมวลผลและใช้ข้อมูลร่วมกันได้ โดยพื้นที่หน่วยความจำที่แชร์มานี้จะใช้ในกรณีที่ประมวลผลข้อมูลร่วมกันเป็นหลัก และการแสดงข้อมูลทั้งสามส่วนนี้จะเกิดขึ้นในกรณีที่ใช้กราฟิกการ์ดแบบแยก แต่ถ้าเป็นการใช้กราฟิกการ์ดแบบรวม (iGPU) ที่มีการแชร์หน่วยความจำหลักมาเป็นหน่วยความจำสำหรับการแสดงผลด้วยอยู่แล้ว กราฟในส่วนนี้จะมีแค่สองส่วนหลัก ๆ เท่านั้นคือแสดงข้อมูลการใช้งานเอนจิ้นในตัวกราฟิก และแสดงข้อมูล Shared GPU memory usage เท่านั้น ไม่มีหัวข้อ Dedicated GPU memory usage ลองดูภาพตัวอย่างด้านล่างจากเครื่องที่ใช้ ซีพียู Intel และใช้ Intel UHD Graphics
อย่างไรก็ตามใน GPU แต่ละตัวนั้นจะมีโมดูลหรือหน่วยสำหรับการทำงานย่อย ๆ ไปอีกหลายส่วน โดยใน GPU Monitor จะเรียกว่า Engine ลองคลิกไปที่ลิสต์รายการก็จะมีรายชื่อของโมดูลหรือ Engine ย่อยของกราฟิกการ์ดแสดงออกมาให้เราได้เห็นครับ และเราก็สามารถเลือกเพื่อติดตามการทำงานของ Engine ต่าง ๆ ได้จากลิสต์เหล่านั้นเลย ภาพแรกนี้แสดงให้เห็น Engine ที่อยู่ใน GTX 1080
ภาพตัวอย่างด้านล่างนี้แสดงให้เห็นรายละเอียด Engine ต่าง ๆ ที่อยู่ภายในของ Radeon RX Vega
และอีกหนึ่งตัวอย่างของ Engine หรือโมดูลการทำงานย่อยที่อยู่ภายในตัว GPU จาก Intel Graphics UHD 630
เมื่อ GPU มี Engine ย่อยทำงานอยู่หลายส่วนแล้วเราจะติดตามการทำงานของ Engine ย่อย ๆ เหล่านั้นไปพร้อม ๆ กันได้หรือไม่ คำตอบคือได้ครับ และเราสามารถแสดง Engine การทำงานของ GPU ได้พร้อมกันถึง 4 Engine ด้วยกันครับ วิธีการก็คือให้คลิกขวาในบริเวณที่แสดงผลของกราฟ จากนั้นให้เลือกไปที่ Change graph to แล้วเลือก Multiple engines (ถ้าต้องการให้กลับมาเหมือนเดิมก็เลือกเป็น Single engine)
เมื่อเลือกที่ Multiple engines แล้วหน้าตาก็จะเปลี่ยนไปเป็นเหมือนรูปด้านล่างนี้ครับ
จะเห็นได้ว่าพื้นที่ ๆ เคยแสดงเฉพาะ 3D ตอนนี้เพิ่ม Copy, Video Encoder และ Video Decode เข้ามาด้วย และถ้าเราต้องการเปลี่ยน Engine ที่ต้องการแสดงเราก็สามารถทำได้โดยเลือกจากลิสต์รายการได้เช่นกัน
การเปิดให้แสดงหัวข้อการทำงานในลักษณะนี้ถือว่ามีประโยชน์มากครับ เพราะจะทำให้เราทราบได้ดีว่าในขณะที่กราฟิกการ์ดทำงานอยู่นั้น ถูกเรียกใช้งานจากเอนจิ้นการทำงานใดอยู่ รวมไปถึงทำให้เรารู้ด้วยว่าโปรแกรมต่าง ๆ มีวิธีการทำงานที่แตกต่างกันอย่างไร เช่นในกรณีที่เราเปิด YouTube เพื่อดูวิดีโอโดยใช้ Chrome ที่รองรับการทำงานถอดรหัสวิดีโอในระดับฮาร์ดแวร์ตรงช่อง Video Encode ก็จะแสดง % การทำงานที่สูงขึ้น แต่จะมี % ในช่อง 3D น้อย ในขณะที่เราใช้โปรแกรมเบราว์เซอร์อื่นที่ไม่รองรับการถอดรหัสวิดีโอในระดับฮาร์ดแวร์ เราก็อาจจะเห็น % ในช่อง 3D เพิ่มมากขึ้น เพราะว่าไปใช้เอนจิ้น DirectDraw ใน DirectX แทน อย่างนี้เป็นต้น
มาถึงตรงนี้แล้วหลายคนก็คงจะสงสัยว่าแล้วเจ้า Engine ต่าง ๆ ที่อยู่ใน GPU และ GPU Monitor นำมาแสดงนั้นมันคืออะไรและมีหน้าที่อะไรบ้าง เราจะไปทำความรู้จักกับ Engine หรือโมดูลการทำงานย่อย ๆ ในกราฟิกชิปกันครับ
Engine หลัก ๆ ที่กราฟิกชิปทุกตัวจะต้องมีเหมือนอยู่ 4 ส่วนคือ 3D, Copy, Video Encode และ Video Decode ส่วน Engine อื่น ๆ ก็จะมีหรือไม่มีก็ขึ้นอยู่กับคุณสมบัติที่ผู้ผลิตกราฟิกชิปใส่ลงไปใน GPU ครับ เช่นกราฟิกชิป GTX 1080 และ RX Vega จะมี Compute Engine ในขณะที่ Intel UHD Graphics นั้นไม่มี หรือ Legacy Overlay ใน GTX 1080 กับ Intel UHD Graphics มี แต่ใน RX Vega ไม่มีอย่างนี้เป็นต้น ถ้าอย่างนั้นเรามาทำความรู้จักกับ Engine มาตรฐาน และ Engine ที่สำคัญ ๆ ในตัวกราฟิกชิปกันอีกสักเล็นน้อยนะครับ ซึ่งจะช่วยให้เราเข้าใจมากขึ้นว่าในขณะที่เรากำลังดูกราฟแสดงผลอยู่เรากำลังดูหรือติดตามอะไรอยู่บ้าง ไปเริ่มที่ Engine หลักทั้ง 4 กันก่อนเลย
- 3D: ตรงนี้ใช้รายงานข้อมูลการทำงานด้านกราฟิกทั้งหมดไม่ว่าจะเป็น DirectX, OpenGL, Mantle และ Vulkan
- Copy: เป็นการแสดงการทำงานในส่วนของการก็อปปี้ข้อมูล เนื่องจากการประมวลผลโดยทั่วไปแล้วบางครั้งก็มีความจำเป็นต้องใช้ข้อมูลชุดเดียวกันนี้ไปทำงานในหลาย ๆ ส่วนดังนั้นสิ่งที่ทำให้มีข้อมูลที่เหมือน ๆ กันเพิ่มขึ้นมาได้อย่างเร็วที่สุดก็คือการทำสำเนาขึ้นมาอีกชุดนั่นเอง
- Video Encode: การเข้ารหัสไฟล์วิดีโอ (ส่วน Intel จะใช้คำว่า Video Processing ซึ่งในทางเทคนิคแล้วจะมีกระบวนการทำงานที่แตกต่างกันออกไปบ้าง)
- Video Decode: การถอดรหัสไฟล์วิดีโอ
*** หากมีการใช้ Video Encode/Decode หมายถึงโปรแกรมหรือซอฟต์แวร์ที่เรากำลังใช้งานอยู่นั้นรองรับการทำงานของการเข้ารหัสวิดีโอและถอดรหัสวิดีโอในระดับฮาร์ดแวร์ ซึ่งการทำงานแบบนี้จะช่วยลดภาระการทำงานของซีพยูไปด้วยในตัว ซึ่งจะทำให้โปรแกรมนั้นทำงานได้อย่างมีประสิทธิภาพมากขึ้นด้วย และถือเป็นการใช้ทรัพยากรทางด้านฮาร์ดแวร์อย่างคุ้มค่า ***
ENGINE การทำงานอื่น ๆ
สำหรับ Engine การทำงานด้านอื่น ๆ นั้นก็ต้องบอกตามตรงว่าเรายังไม่มีข้อมูลตรงส่วนนี้อย่างครบถ้วนนะครับคงจะต้องรอทางไมโครซอฟท์หรือทางผู้ผลิตกราฟิกชิปให้ข้อมูลมาโดยตรงจะดีกว่าครับ เช่นใน GTX 1080 มี Engine VR ที่สำหรับจัดการข้อมูลสำหรับการเล่นเกมแบบ VR โดยเฉพาะ หรือใน RX Vega ก็มี Ture Audio ซึ่งทำหน้าที่เป็นเหมือนซาวน์ดการ์ดในตัว เหล่านี้ก็จะชันเจนหน่อย แต่ส่วนอื่น ๆ ก็ยังต้องรอทางผู้ผลิตมาให้ข้อมูลโดยตรงครับ แต่จะมีที่ตั้งข้อสังเกตอยู่บ้างก็อย่างเช่น ชื่อของ Engine แล้วตามด้วยตัวเลข เช่นใน RX Vega มี Compute 0 ไปจนถึง 3 หรือมี Engine ทางด้าน Compute จำนวน 4 ชุด ซึ่งบางครั้งจำนวน Compute อาจจะไม่ได้มี 4 ชุดจริง ๆ แต่ Compute หนึ่งชุดสามารถรองรับได้ 4 เธรด อย่างนี้ก็มีครับ และถ้าเรามีข้อมูลตรงส่วนนี้เพิ่มเติมเราก็จะมาอัปเดตให้ทุกคนได้ทราบกันทันทีครับ
สำหรับตอนนี้เราก็คิดว่าน่าจะพอทำให้คุณผู้อ่านได้เข้าใจและสามารถใช้งาน GPU Monitor ได้อย่างตรงกับความต้องการมากยิ่งขึ้นแล้วนะครับ พบกันใหม่ในครั้งต่อไป ขอบคุณสำหรับการติดตามครับ