Mesa рд╕рд╛рдареА OpenCL рдЪреА рд░рд╕реНрдЯ рдЕрдВрдорд▓рдмрдЬрд╛рд╡рдгреА OpenCL 3.0 рд╕рд╛рдареА рд╕рдорд░реНрдерди рдкреБрд░рд╡рддреЗ

рдореЗрд╕рд╛ рдкреНрд░рдХрд▓реНрдкрд╛рд╕рд╛рдареА рд╡рд┐рдХрд╕рд┐рдд рдХреЗрд▓реНрдпрд╛ рдЬрд╛рдд рдЕрд╕рд▓реЗрд▓реНрдпрд╛ рд░рд╕реНрдЯрдордзреНрдпреЗ рд▓рд┐рд╣рд┐рд▓реЗрд▓реНрдпрд╛ рдирд╡реАрди OpenCL рдЕрдВрдорд▓рдмрдЬрд╛рд╡рдгреА (рд░рд╕реНрдЯрд┐рдХрд▓) рдиреЗ OpenCL 3.0 рд╡реИрд╢рд┐рд╖реНрдЯреНрдпрд╛рдВрд╕рд╣ рд╕реБрд╕рдВрдЧрддрддреЗрдЪреЗ рдореВрд▓реНрдпрд╛рдВрдХрди рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА Khronos рдХрдВрд╕реЛрд░реНрдЯрд┐рдпрдорджреНрд╡рд╛рд░реЗ рд╡рд╛рдкрд░рд▓реЗрд▓рд╛ CTS (рдХреНрд░реЛрдиреЛрд╕ рдХреЙрдиреНрдлреЙрд░реНрдордиреНрд╕ рдЯреЗрд╕реНрдЯ рд╕реВрдЯ) рдЪрд╛рдЪрдгреА рд╕рдВрдЪ рдпрд╢рд╕реНрд╡реАрд░рд┐рддреНрдпрд╛ рдЙрддреНрддреАрд░реНрдг рдХреЗрд▓рд╛ рдЖрд╣реЗ. рд╣рд╛ рдкреНрд░рдХрд▓реНрдк Red Hat рдордзреАрд▓ Karol Herbst рджреНрд╡рд╛рд░реЗ рд╡рд┐рдХрд╕рд┐рдд рдХреЗрд▓рд╛ рдЬрд╛рдд рдЖрд╣реЗ, рдЬреЛ Mesa, Nouveau рдбреНрд░рд╛рдпрд╡реНрд╣рд░ рдЖрдгрд┐ OpenCL рдУрдкрди рд╕реНрдЯреЕрдХрдЪреНрдпрд╛ рд╡рд┐рдХрд╛рд╕рд╛рдд рд╕рд╣рднрд╛рдЧреА рдЖрд╣реЗ. рд░рд╕реНрдЯрд┐рдХрд▓рдордзреАрд▓ OpenCL 3.0 рд╕рдорд░реНрдердирд╛рдЪреНрдпрд╛ рдЕрдзрд┐рдХреГрдд рдкреНрд░рдорд╛рдгреАрдХрд░рдгрд╛рдмрд╛рдмрдд рдХреЕрд░реЛрд▓рдиреЗ рдЦреНрд░реЛрдиреЛрд╕рд╢реА рд╕рдВрдкрд░реНрдХ рд╕рд╛рдзрд▓рд╛ рд╣реЛрддрд╛.

12рд╡реНрдпрд╛ рдкрд┐рдвреАрддреАрд▓ рдЗрдВрдЯреЗрд▓ GPU (рдЕрд▓реНрдбрд░ рд▓реЗрдХ) рдЕрд╕рд▓реЗрд▓реНрдпрд╛ рдкреНрд░рдгрд╛рд▓реАрд╡рд░ рдЪрд╛рдЪрдгреНрдпрд╛ рдкреВрд░реНрдг рдХреЗрд▓реНрдпрд╛ рдЧреЗрд▓реНрдпрд╛. рд╣реЗ рдХрд╛рдо рдореЗрд╕рд╛ рдЖрдпрд░рд┐рд╕ рдбреНрд░рд╛рдпрд╡реНрд╣рд░ рд╡рд╛рдкрд░реВрди рдХреЗрд▓реЗ рдЧреЗрд▓реЗ, рдкрд░рдВрддреБ рдкреНрд░рдХрд▓реНрдкрд╛рдиреЗ рдЗрддрд░ рдореЗрд╕рд╛ рдбреНрд░рд╛рдпрд╡реНрд╣рд░реНрд╕рд╕рд╣ рджреЗрдЦреАрд▓ рдХрд╛рд░реНрдп рдХреЗрд▓реЗ рдкрд╛рд╣рд┐рдЬреЗ рдЬреЗ NIR рд╢реЗрдбрд░реНрд╕рдЪреЗ рдЯрд╛рдЗрдкрд▓реЗрд╕ рдЗрдВрдЯрд░рдореАрдбрд┐рдПрдЯ рд░рд┐рдкреНрд░реЗрдЭреЗрдВрдЯреЗрд╢рди (IR) рд╡рд╛рдкрд░рддрд╛рдд. Mesa рдордзреНрдпреЗ Rusticle рд╡рд┐рд▓реАрди рдХрд░рдгреНрдпрд╛рдЪреА рд╡рд┐рдирдВрддреА рдЕрджреНрдпрд╛рдк рдкреБрдирд░рд╛рд╡рд▓реЛрдХрдирд╛рдзреАрди рдЖрд╣реЗ рдЖрдгрд┐ Mesa рдордзреНрдпреЗ Rust code рд╕рдорд╛рд╡рд┐рд╖реНрдЯ рдХрд░рд╛рдпрдЪрд╛ рдХреА рдирд╛рд╣реА рдпрд╛рд╡рд░ рдХреЛрдгрддрд╛рд╣реА рдирд┐рд░реНрдгрдп рдЭрд╛рд▓реЗрд▓рд╛ рдирд╛рд╣реА. рдореБрдЦреНрдп рдореЗрд╕рд╛ рдХрдВрдкреЛрдЭрд┐рд╢рдирдордзреНрдпреЗ рд░рд╕реНрдЯрд┐рдХрд▓ рд╕реНрд╡реАрдХрд╛рд░рдгреНрдпрд╛рдЖрдзреА, рддреБрдореНрд╣реА рдмрд┐рд▓реНрдбрд┐рдВрдЧрд╕рд╛рдареА рд╡реЗрдЧрд│реА рд╢рд╛рдЦрд╛ рд╡рд╛рдкрд░реВ рд╢рдХрддрд╛, рдЬреНрдпрд╛рдЪреЗ рд╕рдВрдХрд▓рди рдХрд░рддрд╛рдирд╛ рддреБрдореНрд╣реА рдмрд┐рд▓реНрдб рдкреЕрд░рд╛рдореАрдЯрд░реНрд╕ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХреЗрд▓реЗ рдкрд╛рд╣рд┐рдЬреЗрдд тАЬ-Dgallium-rusticl=true -Dopencl-spirv=true -Dshader-cache=true -Dllvm= рдЦрд░реЗ".

рд░рд╕реНрдЯрд┐рдХрд▓ рдореЗрд╕рд╛рдЪреНрдпрд╛ рдУрдкрдирд╕реАрдПрд▓ рдлреНрд░рдВрдЯрдПрдВрдб рдХреНрд▓реЛрд╡реНрд╣рд░рдЪреЗ ре▓рдирд╛рд▓реЙрдЧ рдореНрд╣рдгреВрди рдХрд╛рдо рдХрд░рддреЗ рдЖрдгрд┐ рдореЗрд╕рд╛рдордзреНрдпреЗ рдкреНрд░рджрд╛рди рдХреЗрд▓реЗрд▓реНрдпрд╛ рдЧреЕрд▓рд┐рдпрдо рдЗрдВрдЯрд░рдлреЗрд╕рдЪрд╛ рд╡рд╛рдкрд░ рдХрд░реВрди рд╡рд┐рдХрд╕рд┐рдд рдХреЗрд▓реЗ рдЬрд╛рддреЗ. рдХреНрд▓реЛрд╡реНрд╣рд░ рд╕реНрдЯреЗрдХ рдмрд░реНрдпрд╛рдЪ рдХрд╛рд│рд╛рдкрд╛рд╕реВрди рд╕реЛрдбрд▓рд╛ рдЧреЗрд▓рд╛ рдЖрд╣реЗ рдЖрдгрд┐ рд░рд╕реНрдЯрд┐рдХрд▓рд▓рд╛ рддреНрдпрд╛рдЪреА рднрд╡рд┐рд╖реНрдпрд╛рддреАрд▓ рдмрджрд▓реА рдореНрд╣рдгреВрди рд╕реНрдерд╛рди рджреЗрдгреНрдпрд╛рдд рдЖрд▓реЗ рдЖрд╣реЗ. OpenCL 3.0 рд╕реБрд╕рдВрдЧрддрддрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдгреНрдпрд╛рд╡реНрдпрддрд┐рд░рд┐рдХреНрдд, рдкреНрд░рддрд┐рдорд╛ рдкреНрд░рдХреНрд░рд┐рдпреЗрд╕рд╛рдареА OpenCL рд╡рд┐рд╕реНрддрд╛рд░рд╛рдВрдирд╛ рд╕рдорд░реНрдерди рджреЗрдгреНрдпрд╛рд╕рд╛рдареА Rusticle рдкреНрд░рдХрд▓реНрдк рдХреНрд▓реЛрд╡реНрд╣рд░рдкреЗрдХреНрд╖рд╛ рд╡реЗрдЧрд│рд╛ рдЖрд╣реЗ, рдкрд░рдВрддреБ рдЕрджреНрдпрд╛рдк FP16 рд╕реНрд╡рд░реВрдкрдирд╛рд╕ рд╕рдорд░реНрдерди рджреЗрдд рдирд╛рд╣реА.

Mesa рдЖрдгрд┐ OpenCL рд╕рд╛рдареА рдмрд╛рдЗрдВрдбрд┐рдВрдЧреНрд╕ рдирд┐рд░реНрдорд╛рдг рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА, рддреБрдореНрд╣рд╛рд▓рд╛ C рдХреЛрдбрд╡рд░реВрди рд░рд╕реНрдЯ рдлрдВрдХреНрд╢рдиреНрд╕ рдХреЙрд▓ рдХрд░рдгреНрдпрд╛рдЪреА рдкрд░рд╡рд╛рдирдЧреА рджреЗрддреЗ рдЖрдгрд┐ рддреНрдпрд╛рдЙрд▓рдЯ, Rust-bindgen рдЪрд╛ рд╡рд╛рдкрд░ Rusticle рдордзреНрдпреЗ рдХреЗрд▓рд╛ рдЬрд╛рддреЛ. рдореЗрд╕рд╛ рдкреНрд░рдХрд▓реНрдкрд╛рдд рд░рд╕реНрдЯ рднрд╛рд╖рд╛ рд╡рд╛рдкрд░рдгреНрдпрд╛рдЪреА рд╢рдХреНрдпрддрд╛ 2020 рдкрд╛рд╕реВрди рдЪрд░реНрдЪреЗрдд рдЖрд╣реЗ. рд░рд╕реНрдЯ рд╕рдкреЛрд░реНрдЯрдЪреНрдпрд╛ рдлрд╛рдпрджреНрдпрд╛рдВрдкреИрдХреА, рдореЗрдорд░реАрд╕рд╣ рдХрд╛рдо рдХрд░рддрд╛рдирд╛ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╕рдорд╕реНрдпрд╛рдВрдкрд╛рд╕реВрди рдореБрдХреНрдд рд╣реЛрдгреНрдпрд╛рдореБрд│реЗ, рддрд╕реЗрдЪ рдХрд╛рдЭрд╛рди (рд╡рд▓реНрдХрдирдЪреА рдЕрдВрдорд▓рдмрдЬрд╛рд╡рдгреА) рд╕рд╛рд░рдЦреНрдпрд╛ рдореЗрд╕рд╛рдордзреАрд▓ рддреГрддреАрдп-рдкрдХреНрд╖ рд╡рд┐рдХрд╛рд╕ рд╕рдорд╛рд╡рд┐рд╖реНрдЯ рдХрд░рдгреНрдпрд╛рдЪреА рдХреНрд╖рдорддрд╛ рдпрд╛рдореБрд│реЗ рдбреНрд░рд╛рдпрд╡реНрд╣рд░реНрд╕рдЪреА рд╡рд╛рдврд▓реЗрд▓реА рд╕реБрд░рдХреНрд╖рд╛ рдЖрдгрд┐ рдЧреБрдгрд╡рддреНрддрд╛ рдирдореВрдж рдХреЗрд▓реА рдЖрд╣реЗ. рдЧрдВрдЬ рдордзреНрдпреЗ). рддреЛрдЯреНрдпрд╛рдВрдордзреНрдпреЗ рдмрд┐рд▓реНрдб рд╕рд┐рд╕реНрдЯрдордЪреА рд╡рд╛рдврд▓реЗрд▓реА рдЬрдЯрд┐рд▓рддрд╛, рдХрд╛рд░реНрдЧреЛ рдкреЕрдХреЗрдЬ рд╕рд┐рд╕реНрдЯрдорд╢реА рдЬреЛрдбрдгреНрдпрд╛рдЪреА рдЕрдирд┐рдЪреНрдЫрд╛, рдмрд┐рд▓реНрдб рд╡рд╛рддрд╛рд╡рд░рдгрд╛рд╕рд╛рдареА рд╡рд┐рд╕реНрддрд╛рд░рд┐рдд рдЖрд╡рд╢реНрдпрдХрддрд╛ рдЖрдгрд┐ Linux рд╡рд░ рдореБрдЦреНрдп рдбреЗрд╕реНрдХрдЯреЙрдк рдШрдЯрдХ рддрдпрд╛рд░ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдЖрд╡рд╢реНрдпрдХ рдЕрд╕рд▓реЗрд▓реНрдпрд╛ рдмрд┐рд▓реНрдб рдЕрд╡рд▓рдВрдмрдирд╛рдВрдордзреНрдпреЗ рд░рд╕реНрдЯ рдХрдВрдкрд╛рдЗрд▓рд░ рд╕рдорд╛рд╡рд┐рд╖реНрдЯ рдХрд░рдгреНрдпрд╛рдЪреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдпрд╛рдВрдЪрд╛ рд╕рдорд╛рд╡реЗрд╢ рдЖрд╣реЗ.

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

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдЬреЛрдбрд╛