Valve ได้เปิดคอมไพเลอร์เชเดอร์ใหม่สำหรับ AMD GPU

บริษัทวาล์ว แนะนำ รายชื่อผู้รับจดหมายของนักพัฒนา Mesa มีคอมไพเลอร์เชเดอร์ใหม่ ACO สำหรับไดรเวอร์ Vulkan RADV วางตำแหน่งได้ เป็นทางเลือกแทนคอมไพเลอร์เชเดอร์ AMDGPU ที่ใช้ในไดรเวอร์ OpenGL และ Vulkan RadeonSI และ RADV สำหรับชิปกราฟิก AMD
เมื่อการทดสอบเสร็จสิ้นและฟังก์ชันการทำงานเสร็จสิ้นแล้ว จะมีการวางแผน ACO เพื่อรวมไว้ในองค์ประกอบหลักของ Mesa

โค้ดที่นำเสนอของ Valve มุ่งเป้าไปที่การสร้างโค้ดที่เหมาะสมที่สุดเท่าที่จะเป็นไปได้สำหรับเชเดอร์แอปพลิเคชันเกม ตลอดจนบรรลุความเร็วในการคอมไพล์ที่สูงมาก คอมไพเลอร์เชเดอร์ของ Mesa ใช้ส่วนประกอบ LLVM ซึ่งไม่ได้ให้ความเร็วในการคอมไพล์ตามที่ต้องการ และไม่อนุญาตให้มีการควบคุมโฟลว์การควบคุมทั้งหมด ซึ่งก่อให้เกิดข้อผิดพลาดร้ายแรงในอดีต นอกจากนี้ การย้ายออกจาก LLVM ทำให้สามารถนำการวิเคราะห์ความคลาดเคลื่อนเชิงรุกมาใช้ได้มากขึ้น และการควบคุมโหลดรีจิสเตอร์ที่ละเอียดยิ่งขึ้น ซึ่งช่วยให้คุณสร้างไฟล์ปฏิบัติการที่มีประสิทธิภาพมากขึ้นได้

ACO เขียนด้วยภาษา C++ ซึ่งออกแบบโดยคำนึงถึงการคอมไพล์ JIT และใช้โครงสร้างข้อมูลแบบวนซ้ำอย่างรวดเร็ว หลีกเลี่ยงโครงสร้างแบบพอยน์เตอร์ เช่น รายการที่เชื่อมโยงและลูกโซ่ def-use การแสดงโค้ดระดับกลางนั้นขึ้นอยู่กับทั้งหมด SSA (Static Single Assignment) และอนุญาตการจัดสรรรีจิสเตอร์โดยการคำนวณรีจิสเตอร์ล่วงหน้าอย่างแม่นยำ ขึ้นอยู่กับเชเดอร์

ปัจจุบัน รองรับเฉพาะพิกเซล (แฟรกเมนต์) และตัวเชเดอร์การประมวลผลบน GPU แบบแยก AMD (dGPU VI+) อย่างไรก็ตาม ACO รวบรวมเชเดอร์อย่างถูกต้องสำหรับเกมทั้งหมดที่ทดสอบ รวมถึงเชเดอร์ที่ซับซ้อนจาก Shadow of the Tomb Raider และ Wolfenstein II ต้นแบบ ACO ที่เสนอสำหรับการทดสอบนั้นเร็วกว่าคอมไพเลอร์เชเดอร์ AMDGPU เกือบสองเท่าในแง่ของความเร็วในการคอมไพล์ และแสดงให้เห็นถึงการเพิ่มขึ้นของ FPS ในบางเกมเมื่อทำงานบนระบบที่มีไดรเวอร์ RADV

Valve ได้เปิดคอมไพเลอร์เชเดอร์ใหม่สำหรับ AMD GPU

Valve ได้เปิดคอมไพเลอร์เชเดอร์ใหม่สำหรับ AMD GPU

ที่มา: opennet.ru

เพิ่มความคิดเห็น