การใช้งาน OpenCL สำหรับ Mesa แบบ Rust ให้การสนับสนุน OpenCL 3.0

การใช้งาน OpenCL ใหม่ (rusticl) ซึ่งเขียนด้วยภาษา Rust ซึ่งได้รับการพัฒนาสำหรับโครงการ Mesa ได้ผ่านชุดทดสอบ CTS (Kronos Conformance Test Suite) ที่ใช้โดยกลุ่ม Khronos เพื่อประเมินความเข้ากันได้กับข้อกำหนด OpenCL 3.0 เรียบร้อยแล้ว โครงการนี้กำลังได้รับการพัฒนาโดย Karol Herbst จาก Red Hat ซึ่งเกี่ยวข้องกับการพัฒนา Mesa ไดรเวอร์ Nouveau และ OpenCL open stack มีข้อสังเกตว่า Carol ติดต่อ Khronos เกี่ยวกับการรับรองอย่างเป็นทางการของการสนับสนุน OpenCL 3.0 ในชนบท

การทดสอบเสร็จสิ้นบนระบบที่ใช้ Intel GPU รุ่นที่ 12 (Alder Lake) งานนี้ดำเนินการโดยใช้ไดรเวอร์ Mesa Iris แต่โครงการควรทำงานร่วมกับไดรเวอร์ Mesa อื่นๆ ที่ใช้การแสดงระดับกลางแบบไร้พิมพ์ (IR) ของเชเดอร์ NIR คำขอรวม Rusticle กับ Mesa ยังอยู่ระหว่างการตรวจสอบ และยังไม่มีการตัดสินใจว่าจะรวมโค้ด Rust ใน Mesa หรือไม่ ก่อนที่ Rusticl จะได้รับการยอมรับในองค์ประกอบหลักของ Mesa คุณสามารถใช้สาขาแยกต่างหากสำหรับการสร้างได้ เมื่อทำการคอมไพล์ซึ่งคุณควรระบุพารามิเตอร์บิลด์ “-Dgallium-rusticl=true -Dopencl-spirv=true -Dshader-cache=true -Dllvm= จริง".

Rusticle ทำหน้าที่เป็นอะนาล็อกของ OpenCL frontend Clover ของ Mesa และยังได้รับการพัฒนาโดยใช้อินเทอร์เฟซ Gallium ที่ให้ไว้ใน Mesa เสา Clover ได้ถูกละทิ้งมาเป็นเวลานาน และชนบทจะถูกวางตำแหน่งเพื่อทดแทนในอนาคต นอกเหนือจากการบรรลุความเข้ากันได้ของ OpenCL 3.0 แล้ว โครงการ Rusticle ยังแตกต่างจาก Clover ในการรองรับส่วนขยาย OpenCL สำหรับการประมวลผลภาพ แต่ยังไม่รองรับรูปแบบ FP16

Rusticl ใช้ rust-bindgen ในการสร้าง bindings สำหรับ Mesa และ OpenCL ทำให้สามารถเรียกใช้ฟังก์ชัน Rust จากโค้ด C และในทางกลับกันได้ ความเป็นไปได้ในการใช้ภาษา Rust ในโครงการ Mesa ได้มีการพูดคุยกันมาตั้งแต่ปี 2020 ข้อดีของการสนับสนุน Rust ได้แก่ ความปลอดภัยและคุณภาพของไดรเวอร์ที่เพิ่มขึ้นเนื่องจากการกำจัดปัญหาหน่วยความจำทั่วไป รวมถึงความสามารถในการรวมการพัฒนาจากภายนอกเข้ากับ Mesa เช่น Kazan (การใช้งาน Vulkan ในภาษา Rust) ข้อเสีย ได้แก่ ความซับซ้อนของระบบการสร้างที่เพิ่มขึ้น ความลังเลที่จะเชื่อมต่อกับระบบการบรรจุของ cargo ข้อกำหนดของสภาพแวดล้อมการสร้างที่ขยายมากขึ้น และความจำเป็นในการรวมคอมไพเลอร์ Rust ไว้ใน dependency ที่จำเป็นสำหรับการสร้างส่วนประกอบเดสก์ท็อปที่สำคัญ Linux.

ที่มา: opennet.ru

ซื้อโฮสติ้งที่เชื่อถือได้สำหรับไซต์ที่มีการป้องกัน DDoS เซิร์ฟเวอร์ VPS VDS 🔥 ซื้อบริการเว็บโฮสติ้งที่เชื่อถือได้ พร้อมระบบป้องกัน DDoS และเซิร์ฟเวอร์ VPS/VDS | ProHoster