Rusticle рдЦреБрд▓рд╛ рд╕реНрд░реЛрдд рдЪрд╛рд▓рдХ OpenCL 3.0 рд╕рдБрдЧ рдЙрдкрдпреБрдХреНрдд рдкреНрд░рдорд╛рдгрд┐рдд рдЫ

рдореЗрд╕рд╛ рдкрд░рд┐рдпреЛрдЬрдирд╛рдХрд╛ рд╡рд┐рдХрд╛рд╕рдХрд░реНрддрд╛рд╣рд░реВрд▓реЗ рд░рд╕реНрдЯрд┐рдХрд▓ рдбреНрд░рд╛рдЗрднрд░рдХреЛ рдХреНрд░реЛрдиреЛрд╕ рд╕рдВрдЧрдардирджреНрд╡рд╛рд░рд╛ рдкреНрд░рдорд╛рдгреАрдХрд░рдгрдХреЛ рдШреЛрд╖рдгрд╛ рдЧрд░реЗ, рдЬрд╕рд▓реЗ рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ CTS (рдХреНрд░реЛрдиреЛрд╕ рдХрдиреНрдлрд░реНрдореЗрдиреНрд╕ рдЯреЗрд╕реНрдЯ рд╕реБрдЗрдЯ) рд╕реЗрдЯрдмрд╛рдЯ рд╕рдмреИ рдкрд░реАрдХреНрд╖рдгрд╣рд░реВ рдЙрддреНрддреАрд░реНрдг рдЧрд░реЗрдХреЛ рдЫ рд░ OpenCL 3.0 рд╕реНрдкреЗрд╕рд┐рдлрд┐рдХреЗрд╢рдирд╕рдБрдЧ рдкреВрд░реНрдг рд░реВрдкрдорд╛ рдорд┐рд▓реНрджреЛ рд░реВрдкрдорд╛ рдорд╛рдиреНрдпрддрд╛ рдкреНрд░рд╛рдкреНрдд рдЧрд░реЗрдХреЛ рдЫ, рдЬрд╕рд▓реЗ API рд╣рд░реВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдЧрд░реНрджрдЫред рдХреНрд░рд╕-рдкреНрд▓реЗрдЯрдлрд░реНрдо рд╕рдорд╛рдирд╛рдиреНрддрд░ рдХрдореНрдкреНрдпреБрдЯрд┐рдЩ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдЧрд░реНрдирдХреЛ рд▓рд╛рдЧрд┐ C рднрд╛рд╖рд╛рдХреЛ рд╡рд┐рд╕реНрддрд╛рд░ред рдкреНрд░рдорд╛рдгрдкрддреНрд░ рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрдирд╛рд▓реЗ рддрдкрд╛рдИрдВрд▓рд╛рдИ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рд░реВрдкрдорд╛ рдорд╛рдкрджрдгреНрдбрд╣рд░реВрдХреЛ рдЕрдиреБрдкрд╛рд▓рди рдШреЛрд╖рдгрд╛ рдЧрд░реНрди рд░ рд╕рдореНрдмрдиреНрдзрд┐рдд Khronos рдЯреНрд░реЗрдбрдорд╛рд░реНрдХрд╣рд░реВ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рдЕрдиреБрдорддрд┐ рджрд┐рдиреНрдЫред рдкрд░реАрдХреНрд╖рдг Gallium12D Iris рдбреНрд░рд╛рдЗрднрд░ рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ 3-рдкреБрд╕реНрддрд╛рдХреЛ рдПрдХреАрдХреГрдд Intel GPUs рд╕рдБрдЧ рдкреНрд░рдгрд╛рд▓реАрдорд╛ рдЧрд░рд┐рдПрдХреЛ рдерд┐рдпреЛред

рдбреНрд░рд╛рдЗрднрд░ Rust рдорд╛ рд▓реЗрдЦрд┐рдПрдХреЛ рдЫ рд░ Red Hat рдмрд╛рдЯ Karol Herbst рджреНрд╡рд╛рд░рд╛ рд╡рд┐рдХрд╕рд┐рдд рдЧрд░рд┐рдПрдХреЛ рдЫ, рдЬреЛ Mesa, Nouveau рдбреНрд░рд╛рдЗрднрд░ рд░ OpenCL рдУрдкрди рд╕реНрдЯреНрдпрд╛рдХрдХреЛ рд╡рд┐рдХрд╛рд╕рдорд╛ рд╕рдВрд▓рдЧреНрди рдЫред рд░реБрд╕реНрдЯрд┐рдХрд▓рд▓реЗ рдореЗрд╕рд╛рдХреЛ рдУрдкрдирд╕реАрдПрд▓ рдлреНрд░рдиреНрдЯрдПрдиреНрдб рдХреНрд▓реЛрднрд░рдХреЛ рдПрдирд╛рд▓рдЧрдХреЛ рд░реВрдкрдорд╛ рдХрд╛рд░реНрдп рдЧрд░реНрджрдЫ рд░ рдореЗрд╕рд╛рдорд╛ рдкреНрд░рджрд╛рди рдЧрд░рд┐рдПрдХреЛ рдЧреНрдпрд╛рд▓рд┐рдпрдо рдЗрдиреНрдЯрд░рдлреЗрд╕ рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рдкрдирд┐ рд╡рд┐рдХрд╕рд┐рдд рдЧрд░рд┐рдПрдХреЛ рдЫред рдХреНрд▓реЛрднрд░ рд▓рд╛рдореЛ рд╕рдордпрдХреЛ рд▓рд╛рдЧрд┐ рддреНрдпрд╛рдЧрд┐рдПрдХреЛ рдЫ рд░ рд░рд╕реНрдЯрд┐рдХрд▓ рдпрд╕рдХреЛ рднрд╡рд┐рд╖реНрдпрдХреЛ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрдирдХреЛ рд░реВрдкрдорд╛ рд░рд╛рдЦрд┐рдПрдХреЛ рдЫред OpenCL 3.0 рдХрдореНрдкреНрдпрд╛рдЯрд┐рдмрд┐рд▓рд┐рдЯреА рд╣рд╛рд╕рд┐рд▓ рдЧрд░реНрдиреБрдХреЛ рдЕрддрд┐рд░рд┐рдХреНрдд, Rusticle рдкрд░рд┐рдпреЛрдЬрдирд╛рд▓реЗ рдЫрд╡рд┐ рдкреНрд░рд╢реЛрдзрдирдХрд╛ рд▓рд╛рдЧрд┐ OpenCL рд╡рд┐рд╕реНрддрд╛рд░рд╣рд░реВрд▓рд╛рдИ рд╕рдорд░реНрдерди рдЧрд░реНрди рдХреНрд▓реЛрднрд░ рднрдиреНрджрд╛ рдлрд░рдХ рдЫ, рддрд░ FP16 рдврд╛рдБрдЪрд╛рд▓рд╛рдИ рдЕрдЭреИ рд╕рдорд░реНрдерди рдЧрд░реНрджреИрдиред рдореЗрд╕рд╛ рд░ рдУрдкрдирд╕реАрдПрд▓рдХрд╛ рд▓рд╛рдЧрд┐ рдмрд╛рдЗрдиреНрдбрд┐рдЩрд╣рд░реВ рдЙрддреНрдкрдиреНрди рдЧрд░реНрди, рддрдкрд╛рдИрдВрд▓рд╛рдИ C рдХреЛрдбрдмрд╛рдЯ рд░рд╕реНрдЯ рдкреНрд░рдХрд╛рд░реНрдпрд╣рд░реВ рдХрд▓ рдЧрд░реНрди рдЕрдиреБрдорддрд┐ рджрд┐рдБрджреИ, рд░рд╕реНрдЯ-рдмрд┐рдиреНрдЬреЗрди Rusticle рдорд╛ рдкреНрд░рдпреЛрдЧ рдЧрд░рд┐рдиреНрдЫред

рд░рд╕реНрдЯ рднрд╛рд╖рд╛ рд╕рдорд░реНрдерди рдХреЛрдб рд░ рд░рд╕реНрдЯрд┐рдХрд▓ рдбреНрд░рд╛рдЗрднрд░рд▓рд╛рдИ рдореЗрд╕рд╛ рдореБрдЦреНрдпрдзрд╛рд░рд╛рдорд╛ рд╕реНрд╡реАрдХрд╛рд░ рдЧрд░рд┐рдПрдХреЛ рдЫ рд░ рдореЗрд╕рд╛ 22.3 рд░рд┐рд▓реАрдЬрдорд╛ рдкреНрд░рд╕реНрддрд╛рд╡ рдЧрд░рд┐рдиреЗрдЫ, рдиреЛрднреЗрдореНрдмрд░рдХреЛ рдЕрдиреНрддрдорд╛ рдЕрдкреЗрдХреНрд╖рд┐рддред рд░рд╕реНрдЯ рд░ рд░рд╕реНрдЯрд┐рдХрд▓ рд╕рдорд░реНрдердирд▓рд╛рдИ рдкреВрд░реНрд╡рдирд┐рд░реНрдзрд╛рд░рд┐рдд рд░реВрдкрдорд╛ рдЕрд╕рдХреНрд╖рдо рдкрд╛рд░рд┐рдиреЗрдЫ рд░ рд╕реНрдкрд╖реНрдЯ рд░реВрдкрдорд╛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдЧрд░рд┐рдПрдХреЛ "-D gallium-rusticl=true -Dllvm=enabled -Drust_std=2021" рд╡рд┐рдХрд▓реНрдкрд╣рд░реВрд╕рдБрдЧ рдирд┐рд░реНрдорд╛рдг рдЖрд╡рд╢реНрдпрдХ рд╣реБрдиреЗрдЫред рдирд┐рд░реНрдорд╛рдг рдЧрд░реНрджрд╛, рддрдкрд╛рдИрдВрд▓рд╛рдИ рдЕрддрд┐рд░рд┐рдХреНрдд рдирд┐рд░реНрднрд░рддрд╛рдХреЛ рд░реВрдкрдорд╛ rustc рдХрдореНрдкрд╛рдЗрд▓рд░, рдмрд╛рдЗрдиреНрдбрдЬреЗрди рдмрд╛рдЗрдиреНрдбрд┐рдЩ рдЬреЗрдиреЗрд░реЗрдЯрд░, LLVM, SPIRV-Tools, рд░ SPIRV-LLVM-Translator рдХреЛ рдЖрд╡рд╢реНрдпрдХрддрд╛ рдкрд░реНрдиреЗрдЫред

рдореЗрд╕рд╛ рдкрд░рд┐рдпреЛрдЬрдирд╛рдорд╛ тАЛтАЛрд░рд╕реНрдЯ рднрд╛рд╖рд╛ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреЗ рд╕рдореНрднрд╛рд╡рдирд╛ 2020 рджреЗрдЦрд┐ рдЫрд▓рдлрд▓ рдЧрд░рд┐рдПрдХреЛ рдЫред рд░рд╕реНрдЯ рд╕рдорд░реНрдердирдХрд╛ рдлрд╛рдЗрджрд╛рд╣рд░реВ рдордзреНрдпреЗ, рдореЗрдореЛрд░реАрд╕рдБрдЧ рдХрд╛рдо рдЧрд░реНрджрд╛ рд╕рд╛рдорд╛рдиреНрдп рд╕рдорд╕реНрдпрд╛рд╣рд░реВрдмрд╛рдЯ рдЫреБрдЯрдХрд╛рд░рд╛ рдкрд╛рдЙрдирдХрд╛ рд╕рд╛рдереИ рдХрд╛рдЬрд╛рди (Vulkan рдХреЛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди) рдЬрд╕реНрддрд╛ рдореЗрд╕рд╛рдорд╛ рддреЗрд╕реНрд░реЛ-рдкрдХреНрд╖ рд╡рд┐рдХрд╛рд╕рд╣рд░реВ рд╕рдорд╛рд╡реЗрд╢ рдЧрд░реНрдиреЗ рдХреНрд╖рдорддрд╛рдХреЛ рдХрд╛рд░рдгрд▓реЗ рдбреНрд░рд╛рдЗрднрд░рд╣рд░реВрдХреЛ рдмрдвреЗрдХреЛ рд╕реБрд░рдХреНрд╖рд╛ рд░ рдЧреБрдгрд╕реНрддрд░ рдЙрд▓реНрд▓реЗрдЦ рдЧрд░рд┐рдПрдХреЛ рдЫред рдЦрд┐рдпрд╛рдорд╛)ред рдмреЗрдлрд╛рдЗрджрд╛рд╣рд░реВрдорд╛ рдирд┐рд░реНрдорд╛рдг рдкреНрд░рдгрд╛рд▓реАрдХреЛ рдмрдвреНрджреЛ рдЬрдЯрд┐рд▓рддрд╛, рдХрд╛рд░реНрдЧреЛ рдкреНрдпрд╛рдХреЗрдЬ рдкреНрд░рдгрд╛рд▓реАрдорд╛ рдмрд╛рдБрдзреНрди рдЕрдирд┐рдЪреНрдЫреБрдХрддрд╛, рдирд┐рд░реНрдорд╛рдг рд╡рд╛рддрд╛рд╡рд░рдгрдХреЛ рд▓рд╛рдЧрд┐ рд╡рд┐рд╕реНрддрд╛рд░рд┐рдд рдЖрд╡рд╢реНрдпрдХрддрд╛рд╣рд░реВ, рд░ рд▓рд┐рдирдХреНрд╕рдорд╛ рдкреНрд░рдореБрдЦ рдбреЗрд╕реНрдХрдЯрдк рдХрдореНрдкреЛрдиреЗрдиреНрдЯрд╣рд░реВ рдирд┐рд░реНрдорд╛рдг рдЧрд░реНрди рдЖрд╡рд╢реНрдпрдХ рдмрд┐рд▓реНрдб рдирд┐рд░реНрднрд░рддрд╛рд╣рд░реВрдорд╛ рд░рд╕реНрдЯ рдХрдореНрдкрд╛рдЗрд▓рд░ рд╕рдорд╛рд╡реЗрд╢ рдЧрд░реНрди рдЖрд╡рд╢реНрдпрдХ рдкрд░реНрджрдЫред

рдердк рд░реВрдкрдорд╛, рд╣рд╛рдореА рдиреЛрднреЗрдЙ рдбреНрд░рд╛рдЗрднрд░рдХреЛ рд╡рд┐рдХрд╛рд╕рдорд╛ рдХрд╛рдо рдиреЛрдЯ рдЧрд░реНрди рд╕рдХреНрдЫреМрдВ, рдХреНрдпрд╛рд░реЛрд▓ рд╣рд░реНрдмрд╕реНрдЯ рджреНрд╡рд╛рд░рд╛ рдкрдирд┐ред Nouveau рдбреНрд░рд╛рдЗрднрд░рд▓реЗ GNU NVIDIA GeForce RTX 30xx рдХреЛ рд▓рд╛рдЧрд┐ рдЖрдзрд╛рд░рднреВрдд OpenGL рд╕рдорд░реНрдерди рдердкреЗрдХреЛ рдЫ, Ampere рдорд╛рдЗрдХреНрд░реЛрдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░рдорд╛ рдЖрдзрд╛рд░рд┐рдд, рдореЗ реирежреиреж рджреЗрдЦрд┐ рдЬрд╛рд░реА рдЧрд░рд┐рдПрдХреЛ рдЫред рдирдпрд╛рдБ рдЪрд┐рдкрд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рд╕рдорд░реНрдердирд╕рдБрдЧ рд╕рдореНрдмрдиреНрдзрд┐рдд рдкрд░рд┐рд╡рд░реНрддрдирд╣рд░реВ рд▓рд┐рдирдХреНрд╕ 2020 рдХрд░реНрдиреЗрд▓ рд░ рдореЗрд╕рд╛ 6.2 рдорд╛ рд╕рдорд╛рд╡реЗрд╢ рдЧрд░рд┐рдиреЗрдЫред

рд╕реНрд░реЛрдд: opennet.ru

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдердкреНрди