Mesa-д зориулсан OpenCL-ийн Rust хэрэгжилт нь OpenCL 3.0-д дэмжлэг үзүүлдэг

Меса төсөлд зориулан боловсруулж буй Rust хэл дээр бичигдсэн шинэ OpenCL хэрэгжилт (rusticl) нь OpenCL 3.0 техникийн үзүүлэлттэй нийцэж байгаа эсэхийг үнэлэх зорилгоор Khronos консорциумын ашигладаг CTS (Kronos Conformance Test Suite) тестийг амжилттай давлаа. Төслийг Mesa, Nouveau драйвер болон OpenCL нээлттэй стекийг боловсруулахад оролцдог Red Hat-ийн Карол Хербст боловсруулж байна. Кэрол Rusticl хэл дээрх OpenCL 3.0 дэмжлэгийн албан ёсны гэрчилгээний талаар Khronos-тэй холбоо барьсан гэж тэмдэглэжээ.

Туршилтыг 12-р үеийн Intel GPU (Alder Lake) бүхий систем дээр хийсэн. Уг ажлыг Mesa Iris драйвер ашиглан хийсэн боловч төсөл нь NIR шэйдерүүдийн төрөлгүй завсрын төлөөлөл (IR) ашигладаг бусад Mesa драйверуудтай ажиллах ёстой. Rusticle-ийг Mesa-тай нэгтгэх хүсэлтийг одоог хүртэл хянаж байгаа бөгөөд Mesa-д Rust кодыг оруулах эсэх талаар шийдвэр гараагүй байна. Rusticl-ийг Меса үндсэн бүрэлдэхүүнд оруулахаас өмнө та барилгын хувьд тусдаа салбар ашиглаж болох бөгөөд үүнийг эмхэтгэхдээ "-Dgallium-rusticl=true -Dopencl-spirv=true -Dshader-cache=true -Dllvm=" гэсэн параметрүүдийг зааж өгөх хэрэгтэй. үнэн".

Rusticle нь Mesa-ийн OpenCL frontend Clover-ийн аналогийн үүрэг гүйцэтгэдэг бөгөөд мөн Mesa-д өгсөн Gallium интерфейсийг ашиглан бүтээгдсэн. Гэрийн хошоонгорын гадас удаан хугацаанд орхигдсон бөгөөд rusticl нь түүнийг ирээдүйд орлуулахаар байр сууриа эзэлдэг. OpenCL 3.0 нийцтэй байхаас гадна Rusticle төсөл нь зураг боловсруулах OpenCL өргөтгөлүүдийг дэмждэгээрээ Clover-ээс ялгаатай боловч FP16 форматыг хараахан дэмждэггүй.

Mesa болон OpenCL-ийн холболтыг үүсгэхийн тулд C кодоос Rust функцийг дуудах, эсрэгээр нь Rusticle-д rust-bindgen ашигладаг. Меса төсөлд Rust хэлийг ашиглах боломж 2020 оноос хойш яригдаж байна. Rust дэмжлэгийн давуу талуудын дунд санах ойтой ажиллахад тохиолддог ердийн асуудлаас ангижрах, түүнчлэн Казань (Вулканы хэрэгжүүлэлт) гэх мэт гуравдагч этгээдийн хөгжүүлэлтийг оруулах боломжтой зэргээс шалтгаалан жолоочийн аюулгүй байдал, чанарыг дээшлүүлэв. Rust-д). Сул тал нь барилгын системийн нарийн төвөгтэй байдал, ачааны багцын системд холбогдох дургүй, бүтээх орчинд тавигдах шаардлага, Rust хөрвүүлэгчийг Линукс дээр үндсэн ширээний бүрэлдэхүүн хэсгүүдийг бүтээхэд шаардагдах барилгын хамааралд оруулах хэрэгцээ зэрэг орно.

Эх сурвалж: opennet.ru

сэтгэгдэл нэмэх