ืžื ื”ืœ ื”ืชืงืŸ ืงื•ื“ ืคืชื•ื— ืฉืœ Rusticle ืžืื•ืฉืจ ืชื•ืื ืœ-OpenCL 3.0

ืžืคืชื—ื™ ืคืจื•ื™ืงื˜ Mesa ื”ื›ืจื™ื–ื• ืขืœ ื”ืกืžื›ื” ืขืœ ื™ื“ื™ ืืจื’ื•ืŸ Khronos ืฉืœ ื”ื ื”ื’ ื”ื›ืคืจื™, ืืฉืจ ืขื‘ืจ ื‘ื”ืฆืœื—ื” ืืช ื›ืœ ื”ื‘ื“ื™ืงื•ืช ืžืžืขืจืš ื”-CTS (Kronos Conformance Test Suite) ื•ืžื•ื›ืจ ื›ืชื•ืื ื‘ืื•ืคืŸ ืžืœื ืœืžืคืจื˜ OpenCL 3.0, ื”ืžื’ื“ื™ืจ ืžืžืฉืงื™ API ื•-API. ื”ืจื—ื‘ื•ืช ืฉืœ ืฉืคืช C ืœืืจื’ื•ืŸ ืžื—ืฉื•ื‘ ืžืงื‘ื™ืœ ื‘ื™ืŸ ืคืœื˜ืคื•ืจืžื•ืช. ืงื‘ืœืช ืชืขื•ื“ื” ืžืืคืฉืจืช ืœืš ืœื”ืฆื”ื™ืจ ื‘ืื•ืคืŸ ืจืฉืžื™ ืขืœ ืขืžื™ื“ื” ื‘ืชืงื ื™ื ื•ืœื”ืฉืชืžืฉ ื‘ืกื™ืžื ื™ื ื”ืžืกื—ืจื™ื™ื ื”ืงืฉื•ืจื™ื ืœื›ืจื•ื ื•ืก. ื”ื‘ื“ื™ืงื” ื‘ื•ืฆืขื” ืขืœ ืžืขืจื›ืช ืขื ืžืขื‘ื“ื™ ืื™ื ื˜ืœ ืžืฉื•ืœื‘ื™ื ื‘ื ื™ 12 ื“ื•ืจื•ืช ื‘ืืžืฆืขื•ืช ืžื ื”ืœ ื”ื”ืชืงืŸ Gallium3D Iris.

ื”ื“ืจื™ื™ื‘ืจ ื ื›ืชื‘ ื‘-Rust ื•ืคื•ืชื— ืขืœ ื™ื“ื™ Karol Herbst ืž-Red Hat, ื”ืžืขื•ืจื‘ ื‘ืคื™ืชื•ื— ืฉืœ Mesa, ื“ืจื™ื™ื‘ืจ ื”ื ื•ื‘ื• ื•ื”-OpenCL Open Stack. Rusticle ืคื•ืขืœ ื›ืื ืœื•ื’ื™ ืœ-OpenCL Frontend Clover ืฉืœ Mesa ื•ืžืคื•ืชื— ื’ื ื‘ืืžืฆืขื•ืช ืžืžืฉืง Gallium ื”ืžืกื•ืคืง ื‘-Mesa. ืชืœืชืŸ ื ื˜ื•ืฉ ื‘ืžืฉืš ื–ืžืŸ ืจื‘ ื•ื”ื›ืคืจื™ื™ื ืžื•ืฆื‘ื™ื ื›ืžื—ืœื™ืคื• ื”ืขืชื™ื“ื™. ื‘ื ื•ืกืฃ ืœื”ืฉื’ืช ืชืื™ืžื•ืช OpenCL 3.0, ืคืจื•ื™ืงื˜ Rusticle ืฉื•ื ื” ืž-Clover ื‘ืชืžื™ื›ื” ื‘ื”ืจื—ื‘ื•ืช OpenCL ืœืขื™ื‘ื•ื“ ืชืžื•ื ื”, ืืš ืขื“ื™ื™ืŸ ืื™ื ื• ืชื•ืžืš ื‘ืคื•ืจืžื˜ FP16. ื›ื“ื™ ืœื™ืฆื•ืจ ื›ืจื™ื›ื•ืช ืขื‘ื•ืจ Mesa ื•-OpenCL, ืžื” ืฉืžืืคืฉืจ ืœืš ืœืงืจื•ื ืœืคื•ื ืงืฆื™ื•ืช Rust ืžืงื•ื“ C ื•ืœื”ื™ืคืš, Rust-bindgen ืžืฉืžืฉ ื‘-Rusticle.

ืงื•ื“ ื”ืชืžื™ื›ื” ื‘ืฉืคืช Rust ื•ืžื ื”ืœ ื”ื”ืชืงืŸ ื”ื›ืคืจื™ ื”ืชืงื‘ืœื• ืœืžื™ื™ื ืกื˜ืจื™ื ืฉืœ Mesa ื•ื™ื•ืฆืขื• ื‘ืžื”ื“ื•ืจืช Mesa 22.3, ื”ืฆืคื•ื™ื” ื‘ืกื•ืฃ ื ื•ื‘ืžื‘ืจ. ืชืžื™ื›ื” ื‘ื—ืœื•ื“ื” ื•ื‘-rusticl ืชื•ืฉื‘ืช ื›ื‘ืจื™ืจืช ืžื—ื“ืœ ื•ืชื“ืจื•ืฉ ื‘ื ื™ื™ื” ืขื ื”ืืคืฉืจื•ื™ื•ืช "-D gallium-rusticl=true -Dllvm=enabled -Drust_std=2021" ืฉืฆื•ื™ื ื• ื‘ืžืคื•ืจืฉ. ื‘ืขืช ื”ื‘ื ื™ื™ื”, ืชื–ื“ืงืง ืœืžื”ื“ืจ rustc, ืžื—ื•ืœืœ ื”ื›ืจื™ื›ื” ืฉืœ bindgen, LLVM, SPIRV-Tools ื•-SPIRV-LLVM-Translator ื›ืชืœื•ืช ื ื•ืกืคืช.

ื”ืืคืฉืจื•ืช ืœื”ืฉืชืžืฉ ื‘ืฉืคืช Rust ื‘ืคืจื•ื™ืงื˜ Mesa ื ื“ื•ื ื” ืžืื– 2020. ื‘ื™ืŸ ื”ื™ืชืจื•ื ื•ืช ืฉืœ ืชืžื™ื›ืช Rust, ืžื•ื–ื›ืจืช ื”ืื‘ื˜ื—ื” ื•ื”ืื™ื›ื•ืช ื”ืžื•ื’ื‘ืจืช ืฉืœ ืžื ื”ืœื™ ื”ืชืงื ื™ื ืขืงื‘ ื”ื™ืคื˜ืจื•ืช ืžื‘ืขื™ื•ืช ืื•ืคื™ื™ื ื™ื•ืช ื‘ืขื‘ื•ื“ื” ืขื ื–ื™ื›ืจื•ืŸ, ื›ืžื• ื’ื ื”ื™ื›ื•ืœืช ืœื›ืœื•ืœ ืคื™ืชื•ื—ื™ื ืฉืœ ืฆื“ ืฉืœื™ืฉื™ ื‘-Mesa, ื›ื’ื•ืŸ Kazan (ื™ื™ืฉื•ื ืฉืœ Vulkan ื‘ื—ืœื•ื“ื”). ื”ื—ืกืจื•ื ื•ืช ื›ื•ืœืœื™ื ืžื•ืจื›ื‘ื•ืช ืžื•ื’ื‘ืจืช ืฉืœ ืžืขืจื›ืช ื”ื‘ื ื™ื™ื”, ื—ื•ืกืจ ืจืฆื•ืŸ ืœื”ื™ื•ืช ืงืฉื•ืจ ืœืžืขืจื›ืช ื—ื‘ื™ืœื•ืช ื”ืžื˜ืขืŸ, ื“ืจื™ืฉื•ืช ืžื•ืจื—ื‘ื•ืช ืœืกื‘ื™ื‘ืช ื”ื‘ื ื™ื™ื”, ื•ื”ืฆื•ืจืš ืœื›ืœื•ืœ ืืช ืžื”ื“ืจ Rust ื‘ืชืœื•ื™ื•ืช ื”ื‘ื ื™ื™ื” ื”ื ื“ืจืฉื•ืช ืœื‘ื ื™ื™ืช ืจื›ื™ื‘ื™ ืฉื•ืœื—ืŸ ืขื‘ื•ื“ื” ืžืจื›ื–ื™ื™ื ื‘ืœื™ื ื•ืงืก.

ื‘ื ื•ืกืฃ, ืื ื• ื™ื›ื•ืœื™ื ืœืฆื™ื™ืŸ ืืช ื”ืขื‘ื•ื“ื” ืขืœ ืคื™ืชื•ื— ื ื”ื’ ื”ื ื•ื‘ื•, ืฉื‘ื•ืฆืขื” ื’ื ืขืœ ื™ื“ื™ ืงืจื•ืœ ื”ืจื‘ืกื˜. ืžื ื”ืœ ื”ื”ืชืงืŸ ืฉืœ ื ื•ื‘ื• ื”ื•ืกื™ืฃ ืชืžื™ื›ื” ื‘ืกื™ืกื™ืช ื‘-OpenGL ืขื‘ื•ืจ GNU NVIDIA GeForce RTX 30xx ื”ืžื‘ื•ืกืกืช ืขืœ ื”ืžื™ืงืจื•-ืืจื›ื™ื˜ืงื˜ื•ืจื” ืฉืœ ืืžืคืจ, ืฉืฉื•ื—ืจืจื” ืžืื– ืžืื™ 2020. ืฉื™ื ื•ื™ื™ื ื”ืงืฉื•ืจื™ื ืœืชืžื™ื›ื” ื‘ืฉื‘ื‘ื™ื ื—ื“ืฉื™ื ื™ื™ื›ืœืœื• ื‘ืœื™ื‘ืช Linux 6.2 ื•ื‘-Mesa 22.3.

ืžืงื•ืจ: OpenNet.ru

ื”ื•ืกืคืช ืชื’ื•ื‘ื”