PoCL 1.4 рдХреЛ рд░рд┐рд▓реАрдЬ, OpenCL рдорд╛рдирдХ рдХреЛ рдПрдХ рд╕реНрд╡рддрдиреНрддреНрд░ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди

рдЙрдкрд▓рдмреНрдз рдЫ рдкрд░рд┐рдпреЛрдЬрдирд╛ рд░рд┐рд▓реАрдЬ рдкреЛрд╕реАрдПрд▓ рез.1.4 (рдкреЛрд░реНрдЯреЗрдмрд▓ рдХрдореНрдкреНрдпреБрдЯрд┐рдЩ рд▓реНрдпрд╛рдЩреНрдЧреНрд╡реЗрдЬ рдУрдкрдирд╕реАрдПрд▓), рдЬрд╕рд▓реЗ рдУрдкрдирд╕реАрдПрд▓ рдорд╛рдирдХрдХреЛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╡рд┐рдХрд╛рд╕ рдЧрд░реНрджрдЫ рдЬреБрди рдЧреНрд░рд╛рдлрд┐рдХреНрд╕ рдПрдХреНрд╕реЗрд▓реЗрдЯрд░ рдирд┐рд░реНрдорд╛рддрд╛рд╣рд░реВрдмрд╛рдЯ рд╕реНрд╡рддрдиреНрддреНрд░ рдЫ рд░ рд╡рд┐рднрд┐рдиреНрди рдкреНрд░рдХрд╛рд░рдХрд╛ рдЧреНрд░рд╛рдлрд┐рдХреНрд╕ рд░ рдХреЗрдиреНрджреНрд░реАрдп рдкреНрд░реЛрд╕реЗрд╕рд░рд╣рд░реВрдорд╛ рдУрдкрдирд╕реАрдПрд▓ рдХрд░реНрдиреЗрд▓рд╣рд░реВ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдЧрд░реНрди рд╡рд┐рднрд┐рдиреНрди рдмреНрдпрд╛рдХрдПрдиреНрдбрд╣рд░реВ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рдЕрдиреБрдорддрд┐ рджрд┐рдиреНрдЫред рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЛрдб рджреНрд╡рд╛рд░рд╛ рд╡рд┐рддрд░рд┐рдд MIT рд▓рд╛рдЗрд╕реЗрдиреНрд╕ рдЕрдиреНрддрд░реНрдЧрддред X86_64, MIPS32, ARM v7, AMD HSA APU рдкреНрд▓реЗрдЯрдлрд░реНрдорд╣рд░реВ рд░ рд╡рд┐рднрд┐рдиреНрди рд╡рд┐рд╢реЗрд╖ TTA рдкреНрд░реЛрд╕реЗрд╕рд░рд╣рд░реВрдорд╛ рдХрд╛рдо рдЧрд░реНрди рд╕рдорд░реНрдерди рдЧрд░реНрджрдЫ (рдпрд╛рддрд╛рдпрд╛рдд рдЯреНрд░рд┐рдЧрд░ рд╡рд╛рд╕реНрддреБрдХрд▓рд╛) рд╡рд╛рд╕реНрддреБрдХрд▓рд╛ рд╕рдВрдЧ VLIW.

OpenCL рдХрд░реНрдиреЗрд▓ рдХрдореНрдкрд╛рдЗрд▓рд░рдХреЛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди LLVM рдХреЛ рдЖрдзрд╛рд░рдорд╛ рдмрдирд╛рдЗрдПрдХреЛ рдЫ, рд░ Clang рд▓рд╛рдИ OpenCL C рдХреЛ рдЕрдЧрд╛рдбрд┐рдХреЛ рднрд╛рдЧрдХреЛ рд░реВрдкрдорд╛ рдкреНрд░рдпреЛрдЧ рдЧрд░рд┐рдиреНрдЫред рдЙрдЪрд┐рдд рдкреЛрд░реНрдЯреЗрдмрд┐рд▓рд┐рдЯреА рд░ рдХрд╛рд░реНрдпрд╕рдореНрдкрд╛рджрди рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдЧрд░реНрди, OpenCL рдХрд░реНрдиреЗрд▓ рдХрдореНрдкрд╛рдЗрд▓рд░рд▓реЗ рд╕рдВрдпреЛрдЬрди рдкреНрд░рдХрд╛рд░реНрдпрд╣рд░реВ рдЙрддреНрдкрдиреНрди рдЧрд░реНрди рд╕рдХреНрдЫ рдЬрд╕рд▓реЗ рдХреЛрдб рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрдирд▓рд╛рдИ рд╕рдорд╛рдирд╛рдиреНрддрд░ рдмрдирд╛рдЙрди рд╡рд┐рднрд┐рдиреНрди рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рд╕реНрд░реЛрддрд╣рд░реВ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рд╕рдХреНрдЫ, рдЬрд╕реНрддреИ VLIW, superscalar, SIMD, SIMT, рдмрд╣реБ-рдХреЛрд░ рд░ рдмрд╣реБ-рдереНрд░реЗрдбрд┐рдЩред ICD рдЪрд╛рд▓рдХ рд╕рдорд░реНрдерди рдЙрдкрд▓рдмреНрдз рдЫ
(рд╕реНрдерд╛рдкрдирд╛ рдпреЛрдЧреНрдп рдЧреНрд░рд╛рд╣рдХ рдЪрд╛рд▓рдХ)ред рддреНрдпрд╣рд╛рдБ CPU, ASIP (TCE/TTA), GPU рдЖрдзрд╛рд░рд┐рдд рд╡рд╛рд╕реНрддреБрдХрд▓рд╛ рдорд╛рд░реНрдлрдд рд╕рдЮреНрдЪрд╛рд▓рди рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдЧрд░реНрди рдмреНрдпрд╛рдХрдПрдиреНрдбрд╣рд░реВ рдЫрдиреНред HSA рд░ NVIDIA GPU (CUDA)ред

╨Т рдирдпрд╛рдБ рд╕рдВрд╕реНрдХрд░рдг:

  • рд╕рдорд░реНрдерди рдердкрд┐рдпреЛ LLVM/Clang резрей.реж.режред рем.реж рднрдиреНрджрд╛ рдкреБрд░рд╛рдиреЛ LLVM рд╕рдВрд╕реНрдХрд░рдгрд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рд╕рдорд░реНрдерди рдмрдиреНрдж рдЧрд░рд┐рдПрдХреЛ рдЫред
  • рдордзреНрдпрд╡рд░реНрддреА рдХреЛрдб рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡рд╣рд░реВрдХреЛ рд╕реБрдзрд╛рд░рд┐рдПрдХреЛ CPU-рдЖрдзрд╛рд░рд┐рдд рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди SPIR ╨╕ SPIR-V (Vulkan API рдорд╛ рдкреНрд░рдпреЛрдЧ рдЧрд░рд┐рдПрдХреЛ), рдЬреБрди рдЧреНрд░рд╛рдлрд┐рдХреНрд╕ рд░ рд╕рдорд╛рдирд╛рдиреНрддрд░ рдХрдореНрдкреНрдпреБрдЯрд┐рдЩрдХрд╛ тАЛтАЛрд▓рд╛рдЧрд┐ рд╢реЗрдбрд░рд╣рд░реВ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдЧрд░реНрди рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рд╕рдХрд┐рдиреНрдЫ;
  • рдореЗрдореЛрд░реА-рдореНрдпрд╛рдк рдЧрд░рд┐рдПрдХреЛ (mmap) рдирд┐рдпрдиреНрддреНрд░рдг рдЗрдиреНрдЯрд░рдлреЗрд╕ рд▓рд╛рдЧреВ рдЧрд░реНрдиреЗ OpenCL 1.2 рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рдПрдХреНрд╕реЗрд▓реЗрд░реЗрдЯрд░рд╣рд░реВрд▓рд╛рдИ рд╕рдорд░реНрдерди рдЧрд░реНрди рдЙрджрд╛рд╣рд░рдг рдкреВрд░реНрд╡рд╛рдзрд╛рд░рдХреЛ рд╕рд╛рде pocl-accel рдбреНрд░рд╛рдЗрднрд░ рдердкрд┐рдпреЛ;
  • рдбрд╛рдЗрд░реЗрдХреНрдЯрд░реА (рд░рд┐рд▓реЛрдХрдЯреЗрдмрд▓) рдорд╛ рдмрд╛рдБрдзрд┐рдПрдХреЛ рдЫреИрди pocl рд╕реНрдерд╛рдкрдирд╛рд╣рд░реВ рдирд┐рд░реНрдорд╛рдг рдЧрд░реНрдиреЗ рдХреНрд╖рдорддрд╛ рдердкрд┐рдпреЛред

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

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