วันอาทิตย์ที่ 3 เมษายน พ.ศ. 2559


กลุ่ม Khronos ผู้ดูแลมาตรฐานกราฟิก OpenGL เปิดตัวมาตรฐานกราฟิกยุคใหม่ Vulkan ที่ถูกออกแบบใหม่หมดเพื่อใช้แทน OpenGL ที่เริ่มล้าสมัยแล้ว

นับถึงวันนี้ OpenGL มีอายุได้ 22 ปี เริ่มไม่สามารถตอบสนองต่อความต้องการของแอพพลิเคชันยุคใหม่ๆ ที่ต้องการรีดประสิทธิภาพของฮาร์ดแวร์ให้มากขึ้น ดังจะเห็นได้จาก API กราฟิกรุ่นใหม่ๆ อย่าง AMD Mantle, Apple Metal, DirectX 12 ที่เปิดให้แอพพลิเคชันลงไปจัดการฮาร์ดแวร์ระดับล่างได้มากขึ้น

ปีที่แล้ว Khronos เริ่มร่างมาตรฐาน OpenGL ยุคใหม่โดยใช้รหัสว่า GLNext (หรือชื่อเต็มๆ Next Generation OpenGL Initiative) และวันนี้ที่งาน GDC 2015 มันก็เปิดตัวอย่างเป็นทางการในชื่อ Vulkan
Vulkan ถูกออกแบบมาเพื่อแก้ปัญหาหลายๆ อย่างของ OpenGL โดยสร้างขึ้นบนหลักการว่าต้องรองรับ GPU รุ่นใหม่ที่มีประสิทธิภาพสูง และใช้งานได้บนอุปกรณ์ที่หลากหลาย
OpenGL ถูกออกแบบมาในยุคที่งานกราฟิกทำผ่านเครื่องเวิร์คสเตชัน ในขณะที่ Vulkan เกิดขึ้นในยุค GPU ทำงานบนอุปกรณ์พกพา แนวคิดเรื่องการเข้าถึงหน่วยความจำก็ต่างกันมาก เพราะยุคนี้เป็นยุคของ Unified Memory กันหมดแล้ว


ตารางด้านล่างเป็นการเปรียบเทียบความแตกต่างของ OpenGL กับ Vulkan
สถาปัตยกรรมของ Vulkan ต่างไปจาก OpenGL มาก โดย Vulkan ถูกออกแบบให้เบากว่า OpenGL เยอะ ทำหน้าที่เป็นตัวกลางในการสื่อสารและควบคุม GPU เท่านั้น งานหลายอย่างไม่จำเป็นต้องโหลดถ้าไม่ใช้งาน และมอบอำนาจเข้าถึงฮาร์ดแวร์ระดับล่างให้แอพพลิเคชันเป็นฝ่ายสั่งการแทน

อีกประเด็นที่น่าสนใจคือ Vulkan ตั้งเป้าเป็น API เดียวสำหรับอุปกรณ์ทุกประเภท ดังนั้นจะไม่มีการแยกรุ่นแบบ OpenGL (พีซี) กับ OpenGL ES (อุปกรณ์พกพา) อีกแล้ว
ถึงแม้จะมี API ตัวอื่นๆ พยายามแก้ปัญหาของ OpenGL แต่ API เหล่านี้ก็มีข้อจำกัดของตัวเอง
1. Mantle รองรับแค่ GPU ค่าย AMD
2. DirectX 12 รองรับแค่ระบบปฏิบัติการฝั่งไมโครซอฟท์
3. Metal ยิ่งแล้วใหญ่คือใช้ได้เฉพาะ GPU ของแอปเปิลบน iOS เท่านั้น
แต่ Vulkan ตั้งเป้าเป็นมาตรฐานกลางของวงการ ที่ GPU/OS ใดๆ สามารถใช้งานได้ทั้งหมด (ไมโครซอฟท์เองก็สมัครเข้าเป็นสมาชิก Khronos แล้ว)
ข้อจำกัดอีกอย่างของ OpenGL คือบังคับว่าไดรเวอร์ของฮาร์ดแวร์ต้องเขียนด้วยภาษา shader ที่เรียกว่า GLSL ทำให้กระบวนการพัฒนายุ่งยาก

แนวคิดของ Vulkan นำแนวทางมาจาก Mantle (ที่ AMD ยินดียกให้ใช้งาน) และ OpenCL ซึ่งเป็น API สำหรับนำ GPU มาประมวลผลงานที่ไม่ใช่กราฟิก

แนวทางของ OpenCL คือใช้การคอมไพล์ 2 ครั้งแบบ Java/.NET โดยเขียนไดรเวอร์ในภาษาอะไรก็ได้ แล้วแปลงเป็นภาษาขั้นกลาง (intermediate language) ที่เรียกว่า SPIR เพื่อให้รันไทม์ของ OpenCL แปลงเป็นภาษาเครื่องของฮาร์ดแวร์แต่ละรุ่นอีกทีหนึ่ง

Vulkan สืบทอดแนวคิดนี้มาใช้ โดย Khronos จะพัฒนาภาษา SPIR เป็นรุ่นใหม่ที่เรียกว่า SPIR-V แทน ผลคือ GLSL ยังเป็นภาษาหลักของ Vulkan อยู่เช่นเดิม แต่ด้วยสถาปัตยกรรมที่เปิดกว้างมากขึ้น ทำให้เราจะได้เห็น Vulkan รองรับภาษาใหม่ๆ (เช่น C++ ตามในภาพ) เพิ่มเข้ามาในอนาคต
ตอนนี้กระบวนการร่างมาตรฐาน Vulkan ยังอยู่ในช่วงเริ่มต้น โดย Khronos กำลังรวบรวมข้อเสนอของสมาชิก และเคลียร์เรื่องเงื่อนไขด้านสิทธิบัตร-ทรัพย์สินทางปัญญา คาดว่าเราจะได้เห็นร่างของ Vulkan ออกมาเปิดรับความคิดเห็นจากภาคส่วนต่างๆ ภายในปีนี้

ในแง่ของสเปกฮาร์ดแวร์ Khronos บอกว่าอะไรก็ตามที่รัน OpenGL ES 3.1 ได้ จะใช้งานกับ Vulkan ได้อย่างแน่นอน ส่วนกลุ่มบริษัทที่ร่วมสนับสนุน Vulkan ก็ตามโลโก้ด้านล่างครับ
ที่มา - KhronosAnandTechArs Technica
ขอขอบคุณข้อมูลจาก https://www.blognone.com/node/66308












ไม่มีความคิดเห็น:

แสดงความคิดเห็น