เป„เบ”เป€เบงเบตเปเบซเบผเปˆเบ‡เป€เบ›เบตเบ” Rusticle เบ–เบทเบเบฎเบฑเบšเบฎเบญเบ‡เป€เบ‚เบปเป‰เบฒเบเบฑเบ™เป„เบ”เป‰เบเบฑเบš OpenCL 3.0

เบ™เบฑเบเบžเบฑเบ”เบ—เบฐเบ™เบฒเป‚เบ„เบ‡เบเบฒเบ™ Mesa เป„เบ”เป‰เบ›เบฐเบเบฒเบ”เบเบฒเบ™เบขเบฑเป‰เบ‡เบขเบทเบ™เป‚เบ”เบเบญเบปเบ‡เบเบฒเบ™เบˆเบฑเบ”เบ•เบฑเป‰เบ‡ Khronos เบ‚เบญเบ‡เบœเบนเป‰เบ‚เบฑเบšเบ‚เบตเปˆ rusticl, เป€เบŠเบดเปˆเบ‡เป„เบ”เป‰เบœเปˆเบฒเบ™เบเบฒเบ™เบ—เบปเบ”เบชเบญเบšเบ—เบฑเบ‡เบซเบกเบปเบ”เบขเปˆเบฒเบ‡เบชเปเบฒเป€เบฅเบฑเบ”เบœเบปเบ™เบˆเบฒเบเบŠเบธเบ” CTS (Kronos Conformance Test Suite) เปเบฅเบฐเป„เบ”เป‰เบฎเบฑเบšเบเบฒเบ™เบเบญเบกเบฎเบฑเบšเบงเปˆเบฒเป€เบ‚เบปเป‰เบฒเบเบฑเบ™เป„เบ”เป‰เบขเปˆเบฒเบ‡เป€เบ•เบฑเบกเบชเปˆเบงเบ™เบเบฑเบš OpenCL 3.0 specification, เป€เบŠเบดเปˆเบ‡เบเปเบฒเบ™เบปเบ” APIs เปเบฅเบฐ เบชเปˆเบงเบ™เบ‚เบฐเบซเบเบฒเบเบ‚เบญเบ‡เบžเบฒเบชเบฒ C เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบˆเบฑเบ”เบฅเบฐเบšเบฝเบšเบ„เบญเบกเบžเบดเบงเป€เบ•เบตเบ‚เบฐเบซเบ™เบฒเบ™เบ‚เป‰เบฒเบกเป€เบงเบ—เบต. เบเบฒเบ™เป„เบ”เป‰เบฎเบฑเบšเปƒเบšเบขเบฑเป‰เบ‡เบขเบทเบ™เบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เบ—เปˆเบฒเบ™เบ›เบฐเบเบฒเบ”เบขเปˆเบฒเบ‡เป€เบ›เบฑเบ™เบ—เบฒเบ‡เบเบฒเบ™เบเปˆเบฝเบงเบเบฑเบšเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบ•เบฒเบกเบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™เปเบฅเบฐเบ™เปเบฒเปƒเบŠเป‰เป€เบ„เบทเปˆเบญเบ‡เบซเบกเบฒเบเบเบฒเบ™เบ„เป‰เบฒ Khronos เบ—เบตเปˆเบเปˆเบฝเบงเบ‚เป‰เบญเบ‡. เบเบฒเบ™เบ—เบปเบ”เบชเบญเบšเป„เบ”เป‰เบ–เบทเบเบ›เบฐเบ•เบดเบšเบฑเบ”เบขเบนเปˆเปƒเบ™เบฅเบฐเบšเบปเบšเบ—เบตเปˆเบกเบต 12 เบฅเบธเป‰เบ™ Intel GPUs เบ›เบฐเบชเบปเบกเบ›เบฐเบชเบฒเบ™เป‚เบ”เบเปƒเบŠเป‰เป„เบ”เป€เบงเบต Gallium3D Iris.

เป„เบ”เป€เบงเบตเปเบกเปˆเบ™เบ‚เบฝเบ™เปƒเบ™ Rust เปเบฅเบฐเบžเบฑเบ”เบ—เบฐเบ™เบฒเป‚เบ”เบ Karol Herbst เบˆเบฒเบ Red Hat, เบœเบนเป‰เบ—เบตเปˆเบกเบตเบชเปˆเบงเบ™เบฎเปˆเบงเบกเปƒเบ™เบเบฒเบ™เบžเบฑเบ”เบ—เบฐเบ™เบฒ Mesa, เป„เบ”เป€เบงเบต Nouveau เปเบฅเบฐ OpenCL open stack. Rusticle เป€เบฎเบฑเบ”เบซเบ™เป‰เบฒเบ—เบตเปˆเป€เบ›เบฑเบ™เบ•เบปเบงเบ›เบฝเบšเบ—เบฝเบšเบ‚เบญเบ‡ OpenCL frontend Clover เบ‚เบญเบ‡ Mesa เปเบฅเบฐเบเบฑเบ‡เบ–เบทเบเบžเบฑเบ”เบ—เบฐเบ™เบฒเป‚เบ”เบเปƒเบŠเป‰เบเบฒเบ™เป‚เบ•เป‰เบ•เบญเบš Gallium เบ—เบตเปˆเบชเบฐเบซเบ™เบญเบ‡เปƒเบซเป‰เบขเบนเปˆเปƒเบ™ Mesa. Clover เป„เบ”เป‰เบ–เบทเบเบ›เบฐเบ–เบดเป‰เบกเป„เบงเป‰เป€เบ›เบฑเบ™เป€เบงเบฅเบฒเบ”เบปเบ™เบ™เบฒเบ™เปเบฅเบฐ rusticl เปเบกเปˆเบ™เบ–เบทเบเบˆเบฑเบ”เปƒเบชเปˆเปƒเบ™เบเบฒเบ™เบ—เบปเบ”เปเบ—เบ™เปƒเบ™เบญเบฐเบ™เบฒเบ„เบปเบ”. เบ™เบญเบเป€เบซเบ™เบทเบญเบˆเบฒเบเบเบฒเบ™เบšเบฑเบ™เบฅเบธเบ„เบงเบฒเบกเป€เบ‚เบปเป‰เบฒเบเบฑเบ™เป„เบ”เป‰ OpenCL 3.0, เป‚เบ„เบ‡เบเบฒเบ™ Rusticle เปเบ•เบเบ•เปˆเบฒเบ‡เบˆเบฒเบ Clover เปƒเบ™เบเบฒเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบเบฒเบ™เบ‚เบฐเบซเบเบฒเบ OpenCL เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ›เบธเบ‡เปเบ•เปˆเบ‡เบฎเบนเบšเบžเบฒเบš, เปเบ•เปˆเบเบฑเบ‡เบšเปเปˆเบ—เบฑเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบฎเบนเบšเปเบšเบš FP16. เป€เบžเบทเปˆเบญเบชเป‰เบฒเบ‡เบเบฒเบ™เบœเบนเบเบกเบฑเบ”เบชเปเบฒเบฅเบฑเบš Mesa เปเบฅเบฐ OpenCL, เบŠเปˆเบงเบเปƒเบซเป‰เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เป€เบญเบตเป‰เบ™เบŸเบฑเบ‡เบŠเบฑเบ™ Rust เบˆเบฒเบเบฅเบฐเบซเบฑเบ” C เปเบฅเบฐเปƒเบ™เบ—เบฒเบ‡เบเบฑเบšเบเบฑเบ™, rust-bindgen เปเบกเปˆเบ™เปƒเบŠเป‰เปƒเบ™ Rusticle.

เบฅเบฐเบซเบฑเบ”เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบžเบฒเบชเบฒ Rust เปเบฅเบฐเป„เบ”เป€เบงเบต rusticl เป„เบ”เป‰เบฎเบฑเบšเบเบฒเบ™เบเบญเบกเบฎเบฑเบšเป€เบ‚เบปเป‰เบฒเป„เบ›เปƒเบ™ Mesa mainstream เปเบฅเบฐเบˆเบฐเบ–เบทเบเบ™เปเบฒเบชเบฐเป€เบซเบ™เบตเปƒเบ™เบเบฒเบ™เบ›เปˆเบญเบ Mesa 22.3, เบ„เบฒเบ”เบงเปˆเบฒเบˆเบฐเบขเบนเปˆเปƒเบ™เบ—เป‰เบฒเบเป€เบ”เบทเบญเบ™เบžเบฐเบˆเบดเบ. เบเบฒเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™ Rust เปเบฅเบฐ rusticl เบˆเบฐเบ–เบทเบเบ›เบดเบ”เปƒเบŠเป‰เบ‡เบฒเบ™เป‚เบ”เบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบฅเบฐเบˆเบฐเบฎเบฝเบเบฎเป‰เบญเบ‡เปƒเบซเป‰เบกเบตเบเบฒเบ™เบเปเปˆเบชเป‰เบฒเบ‡เบ”เป‰เบงเบเบ•เบปเบงเป€เบฅเบทเบญเบ "-D gallium-rusticl=true -Dllvm=enabled -Drust_std=2021" เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ—เบตเปˆเบฅเบฐเบšเบธเป„เบงเป‰เบขเปˆเบฒเบ‡เบˆเบฐเปเบˆเป‰เบ‡. เปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเบเบฒเบ™เบเปเปˆเบชเป‰เบฒเบ‡, เบ—เปˆเบฒเบ™เบˆเบฐเบ•เป‰เบญเบ‡เบเบฒเบ™ compiler rustc, bindgen binding generator, LLVM, SPIRV-Tools, เปเบฅเบฐ SPIRV-LLVM-Translator เป€เบ›เบฑเบ™เบเบฒเบ™เบ‚เบถเป‰เบ™เบเบฑเบšเป€เบžเบตเปˆเบกเป€เบ•เบตเบก.

เบ„เบงเบฒเบกเป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰เบ‚เบญเบ‡เบเบฒเบ™เปƒเบŠเป‰เบžเบฒเบชเบฒ Rust เปƒเบ™เป‚เบ„เบ‡เบเบฒเบ™ Mesa เป„เบ”เป‰เบ–เบทเบเบ›เบถเบเบชเบฒเบซเบฒเบฅเบทเบ•เบฑเป‰เบ‡เปเบ•เปˆเบ›เบต 2020. เปƒเบ™เบšเบฑเบ™เบ”เบฒเบ‚เปเป‰เป„เบ”เป‰เบ›เบฝเบšเบ‚เบญเบ‡เบเบฒเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™ Rust, เบ„เบงเบฒเบกเบ›เบญเบ”เป„เบžเบ—เบตเปˆเป€เบžเบตเปˆเบกเบ‚เบถเป‰เบ™เปเบฅเบฐเบ„เบธเบ™เบ™เบฐเบžเบฒเบšเบ‚เบญเบ‡เบœเบนเป‰เบ‚เบฑเบšเบ‚เบตเปˆเป„เบ”เป‰เบ–เบทเบเบเปˆเบฒเบงเป€เบ–เบดเบ‡เป€เบ™เบทเปˆเบญเบ‡เบˆเบฒเบเบเบฒเบ™เบเปเบฒเบˆเบฑเบ”เบšเบฑเบ™เบซเบฒเบ›เบปเบเบเบฐเบ•เบดเปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเป€เบฎเบฑเบ”เบงเบฝเบเบเบฑเบšเบซเบ™เปˆเบงเบเบ„เบงเบฒเบกเบˆเปเบฒ, เป€เบŠเบฑเปˆเบ™เบ”เบฝเบงเบเบฑเบ™เบเบฑเบšเบ„เบงเบฒเบกเบชเบฒเบกเบฒเบ”เปƒเบ™เบเบฒเบ™เบฅเบงเบกเป€เบญเบปเบฒเบเบฒเบ™เบžเบฑเบ”เบ—เบฐเบ™เบฒเบ‚เบญเบ‡เบžเบฒเบเบชเปˆเบงเบ™เบ—เบตเบชเบฒเบกเปƒเบ™ Mesa, เป€เบŠเบฑเปˆเบ™ Kazan (เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบ‚เบญเบ‡ Vulkan. เปƒเบ™ Rust). เบ‚เปเป‰เป€เบชเบเบฅเบงเบกเป€เบ–เบดเบ‡เบ„เบงเบฒเบกเบŠเบฑเบšเบŠเป‰เบญเบ™เบ‚เบญเบ‡เบฅเบฐเบšเบปเบšเบเบฒเบ™เบเปเปˆเบชเป‰เบฒเบ‡เบ—เบตเปˆเป€เบžเบตเปˆเบกเบ‚เบถเป‰เบ™, เบ„เบงเบฒเบกเบšเปเปˆเป€เบ•เบฑเบกเปƒเบˆเบ—เบตเปˆเบˆเบฐเบ•เบดเบ”เบเบฑเบšเบฅเบฐเบšเบปเบšเบเบฒเบ™เบซเบธเป‰เบกเบซเปเปˆเบชเบดเบ™เบ„เป‰เบฒ, เบ„เบงเบฒเบกเบ•เป‰เบญเบ‡เบเบฒเบ™เบ‚เบฐเบซเบเบฒเบเบชเปเบฒเบฅเบฑเบšเบชเบฐเบžเบฒเบšเปเบงเบ”เบฅเป‰เบญเบกเบเบฒเบ™เบเปเปˆเบชเป‰เบฒเบ‡, เปเบฅเบฐเบ„เบงเบฒเบกเบ•เป‰เบญเบ‡เบเบฒเบ™เบ—เบตเปˆเบˆเบฐเบฅเบงเบกเป€เบญเบปเบฒ Rust compiler เปƒเบ™เบเบฒเบ™เบ‚เบถเป‰เบ™เบเบฑเบšเบเบฒเบ™เบเปเปˆเบชเป‰เบฒเบ‡เบ—เบตเปˆเบ•เป‰เบญเบ‡เบเบฒเบ™เป€เบžเบทเปˆเบญเบชเป‰เบฒเบ‡เบญเบปเบ‡เบ›เบฐเบเบญเบš desktop เบ—เบตเปˆเบชเปเบฒเบ„เบฑเบ™เปƒเบ™ Linux.

เบ™เบญเบเบˆเบฒเบเบ™เบฑเป‰เบ™, เบžเบงเบเป€เบฎเบปเบฒเบชเบฒเบกเบฒเบ”เบชเบฑเบ‡เป€เบเบ”เบเบฒเบ™เป€เบฎเบฑเบ”เบงเบฝเบเบเปˆเบฝเบงเบเบฑเบšเบเบฒเบ™เบžเบฑเบ”เบ—เบฐเบ™เบฒเบ„เบปเบ™เบ‚เบฑเบš Nouveau, เบเบฑเบ‡เบ”เปเบฒเป€เบ™เบตเบ™เป‚เบ”เบ Carol Herbst. เป„เบ”เป€เบงเบต Nouveau เป„เบ”เป‰เป€เบžเบตเปˆเบกเบเบฒเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™ OpenGL เบžเบทเป‰เบ™เบ–เบฒเบ™เบชเปเบฒเบฅเบฑเบš GNU NVIDIA GeForce RTX 30xx เป‚เบ”เบเบญเบตเบ‡เปƒเบชเปˆ Ampere microarchitecture, เบ›เปˆเบญเบเบญเบญเบเบกเบฒเบ•เบฑเป‰เบ‡เปเบ•เปˆเป€เบ”เบทเบญเบ™เบžเบถเบ”เบชเบฐเบžเบฒ 2020. เบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เบ—เบตเปˆเบเปˆเบฝเบงเบ‚เป‰เบญเบ‡เบเบฑเบšเบเบฒเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบŠเบดเบšเปƒเบซเบกเปˆเบˆเบฐเบ–เบทเบเบฅเบงเบกเบขเบนเปˆเปƒเบ™ Linux 6.2 kernel เปเบฅเบฐ Mesa 22.3.

เปเบซเบผเปˆเบ‡เบ‚เปเป‰เบกเบนเบ™: opennet.ru

เป€เบžเบตเปˆเบกเบ„เบงเบฒเบกเบ„เบดเบ”เป€เบซเบฑเบ™