Screenshot DX12U
| |

ไมโครซอฟท์ยกเครื่อง DirectX จับมือผู้ผลิต GPU นำเกมบน Windows เข้าสู่ยุคที่ ML/AI เป็นหัวใจของการเรนเดอร์ ไม่ใช่แค่ฟีเจอร์เสริมอีกต่อไป

ไมโครซอฟท์กำลังยกเครื่อง DirectX ให้รองรับงานแมชชีนเลิร์นนิงอย่างเต็มรูปแบบ ตั้งแต่ระดับเชดเดอร์ไปจนถึงระดับโมเดล ทั้งฝั่งเครื่องมือพัฒนาและ API โดยจับมือ AMD, Intel, NVIDIA และ Qualcomm เพื่อดัน ML ให้กลายเป็นส่วนปกติของกราฟิกเรียลไทม์บนพีซีเกมยุคใหม่​

ไมโครซอฟท์กำลังทำอะไรกับ DirectX

  • ยืนยันทิศทางว่า ML (Machine Learning) จะเป็นหัวใจของกราฟิก ไม่ใช่แค่เอฟเฟ็กต์เสริมอีกต่อไป ทั้งในขั้นตอนเรนเดอร์ สร้างเฟรม และเวิร์กโฟลว์สร้างคอนเทนต์​
  • เปิดตัว DirectX Linear Algebra เพิ่มความสามารถด้านเวกเตอร์–เมทริกซ์และเมทริกซ์–เมทริกซ์โดยตรงใน HLSL ต่อจาก Cooperative Vector (Shader Model 6.9) เพื่อรองรับงานอย่าง neural texture compression (NTC) และ neural radiance caching (NRC) ที่ฝังเข้าไปในเชดเดอร์ได้เลย
  • เปิดตัว DirectX Compute Graph Compiler API ฝั่ง ML ตัวใหม่สำหรับรันทั้งโมเดล ในรูปกราฟคำนวณบน GPU ด้วยประสิทธิภาพระดับเนทีฟ และผูกเข้ากับ D3D12 queue/command list ได้ตามปกติ​
  • วางเลเยอร์ ML สองระดับใน DirectX:
    • ระดับ shader-level ใช้ HLSL Linear Algebra สำหรับงาน ML ขนาดเล็กในเชดเดอร์
    • ระดับ model-level ใช้ Compute Graph Compiler สำหรับรันโมเดลใหญ่แบบกราฟครบวงจร
DirectX ML
  • อธิบายภาพด้านบนเป็นตัวอย่างของการแทรกขั้นตอนของ ML ลงไปพร้อมกันกับการใช้ Shader ตามปกติ
    • Pipeline ที่ 1: ข้อมูล → Shader → งาน ML ขนาดใหญ่ (เช่น Water Simulation) → Shader ที่มี ML ฝังอยู่ (เช่น neural BRDF) → เฟรมที่เสร็จสิ้น
    • Pipeline ที่ 2: ข้อมูล → Shader ที่มี ML (เช่น neural radiance caching) → งาน ML ขนาดใหญ่ (เช่น Super Resolution) → เฟรมที่เสร็จสิ้น
    • Pipeline ที่ 3: ข้อมูล → Shader → งาน ML ขนาดใหญ่ (เช่น Neural Denoising) → Shader → เฟรมที่เสร็จสิ้น

นักพัฒนาเกมและเอนจินได้อะไร

  • เขียน ML แทรกในเชดเดอร์ได้ตรง ๆ ผ่าน DX Linear Algebra คุมการไหลของข้อมูลและการคำนวณได้ละเอียด เช่น ใช้โมเดลเล็ก ๆ สำหรับบีบอัดเท็กซ์เจอร์, แคชแสง, หรือฟิลเตอร์ภาพแบบ ML ในแต่ละพิกเซล
  • ใช้ DirectX Compute Graph Compiler ซึ่งผู้พัฒนาสามารถใส่โมเดล ML แบบเต็มตัว จากเฟรมเวิร์ก ML สมัยใหม่เข้ามาในเอนจินได้ โดยไม่ต้องแปลงเป็นเชดเดอร์ทีละโอเปอเรเตอร์ (พูดง่าย ๆ คือถ้าเรามีโมเดลที่ฝึกเสร็จแล้วก็นำมารวมเป็นส่วนหนึ่งของเกมได้เลย)​
  • ได้ประโยชน์จากการปรับแต่งประสิทธิภาพอัตโนมัติ ไม่ว่าจะเป็นส่วนของ Graph optimization, Memory planning, Operator fusion พร้อมให้เครื่องมืออย่าง PIX มองเห็นงานกราฟิกและ ML รวมกันใน capture เดียว​
  • ลดงานปรับจูนข้ามค่าย GPU เพราะ Compute Graph Compiler ถูกออกแบบมาให้มีประสิทธิภาพที่สามารถปรับแต่งบนฮาร์ดแวร์หลายเจ้า​

ผู้ผลิตฮาร์ดแวร์รายใหญ่ประกาศหนุนฟีเจอร์เหล่านี้ตั้งแต่วันแรก ทั้ง AMD, Intel, NVIDIA และ Qualcomm ซึ่งแปลว่านักพัฒนาสามารถออกแบบฟีเจอร์ ML ในเอนจินโดยมีการรองรับในวงกว้างบนเกมพีซีที่รันบน Windows ได้มากขึ้น​

ผู้เล่นเกมจะได้ประโยชน์อย่างไร

  • เตรียมเห็นฟีเจอร์ ML ฝังลึกกว่าเดิม เช่น การอัปสเกลเชิงเวลา (temporal upscaling), การลด noise ของ ray tracing, และเทคนิคเรนเดอร์แบบ neural อื่น ๆ ที่ทำงานได้ลื่นขึ้นบน DirectX รุ่นใหม่​ ไม่ว่าคุณจะชอบการเรนเดอร์ด้วย AI หรือไม่ คุณไม่สามารถปฏิเสธมันได้แล้ว เพราะบางส่วนมันถูกใส่ในตั้งแต่เริ่มเลย ไม่ใช่ตัวเลือกที่มีเพื่อเปิด/ปิดได้อีกต่อไป
  • การจัดการกราฟโมเดลและหน่วยความจำแบบรวมศูนย์ผ่าน Compute Graph Compiler มีโอกาสช่วยลดการใช้ฮาร์ดแวร์หนัก ๆ ในการใช้ ML ส่งผลให้เฟรมเรตดีขึ้นหรือคุณภาพภาพสูงขึ้นโดยใช้ฮาร์ดแวร์เพื่อการคำนวณเท่าเดิม​
  • เพราะมีการร่วมมือกับผู้ผลิต GPU หลายค่าย ทำให้ฟีเจอร์ ML ในเกมบน Windows มีแนวโน้มจะรองรับการ์ดหลากหลายรุ่นและแบรนด์มากกว่า คุณสมบัติเฉพาะของแต่ละผู้ผลิต เช่น DLSS (NVIDIA), FSR (AMD) และ XeSS (Intel) ทำให้ผู้เล่นไม่ต้องกังวลเรื่องการ์ดจอไม่รองรับอีกต่อไป

โรดแมปและสถานะการทดสอบ

  • DirectX Compute Graph Compiler จะเปิดให้ทดลองแบบ private preview ในช่วงฤดูร้อนนี้ โดยนักพัฒนาต้องติดต่อตัวแทน Windows เพื่อเข้าร่วม
  • DX Linear Algebra เตรียมเข้าช่วง public preview ในเดือนเมษายน เปิดโอกาสให้นักพัฒนาเริ่มทดลองฝัง ML ระดับเชดเดอร์ และเตรียมรับฟังความคิดเห็นจากนักพัฒนาเพื่อกำหนดทิศทางอนาคตของ ML-assisted graphics บน Windows ต่อไป

ข้อมูล: Microsoft Dev Blogs, NVIDIA, Intel