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

PoCL 3.1 (рдкреЛрд░реНрдЯреЗрдмрд▓ рдХрдореНрдкреНрдпреБрдЯрд┐рдЩ рд▓реНрдпрд╛рдЩреНрдЧреНрд╡реЗрдЬ рдУрдкрдирд╕реАрдПрд▓) рдкреНрд░реЛрдЬреЗрдХреНрдЯрдХреЛ рд░рд┐рд▓реАрдЬ рдкреНрд░рд╕реНрддреБрдд рдЧрд░рд┐рдПрдХреЛ рдЫ, рдЬрд╕рд▓реЗ рдУрдкрдирд╕реАрдПрд▓ рдорд╛рдирдХрдХреЛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╡рд┐рдХрд╛рд╕ рдЧрд░реНрджрдЫ рдЬреБрди рдЧреНрд░рд╛рдлрд┐рдХреНрд╕ рдПрдХреНрд╕реЗрд▓реЗрд░реЗрдЯрд░ рдирд┐рд░реНрдорд╛рддрд╛рд╣рд░реВрдмрд╛рдЯ рд╕реНрд╡рддрдиреНрддреНрд░ рдЫ рд░ рд╡рд┐рднрд┐рдиреНрди рдкреНрд░рдХрд╛рд░рдХрд╛ рдЧреНрд░рд╛рдлрд┐рдХреНрд╕ рд░ рдХреЗрдиреНрджреНрд░реАрдпрд╣рд░реВрдорд╛ OpenCL рдХрд░реНрдиреЗрд▓рд╣рд░реВ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдЧрд░реНрди рд╡рд┐рднрд┐рдиреНрди рдмреНрдпрд╛рдХрдЗрдиреНрдбрд╣рд░реВрдХреЛ рдкреНрд░рдпреЛрдЧрд▓рд╛рдИ рдЕрдиреБрдорддрд┐ рджрд┐рдиреНрдЫред рдкреНрд░реЛрд╕реЗрд╕рд░рд╣рд░реВред рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЛрдб MIT рд▓рд╛рдЗрд╕реЗрдиреНрд╕ рдЕрдиреНрддрд░реНрдЧрдд рд╡рд┐рддрд░рдг рдЧрд░рд┐рдПрдХреЛ рдЫред рдкреНрд▓реЗрдЯрдлрд░реНрдорд╣рд░реВ X86_64, MIPS32, ARM v7, AMD HSA APU, NVIDIA GPU рд░ рд╡рд┐рднрд┐рдиреНрди рд╡рд┐рд╢реЗрд╖ ASIP (рдПрдкреНрд▓рд┐рдХреЗрд╢рди-рд╕реНрдкреЗрд╕рд┐рдлрд┐рдХ рдЗрдиреНрд╕реНрдЯреНрд░рдХреНрд╢рди-рд╕реЗрдЯ рдкреНрд░реЛрд╕реЗрд╕рд░) рд░ TTA (рдЯреНрд░рд╛рдиреНрд╕рдкреЛрд░реНрдЯ рдЯреНрд░рд┐рдЧрд░ рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░) рдкреНрд░реЛрд╕реЗрд╕рд░рд╣рд░реВрдорд╛ VLIW рд╡рд╛рд╕реНрддреБрдХрд▓рд╛рдХреЛ рд╕рд╛рде рдХрд╛рдо рдЧрд░реНрди рд╕рдорд░реНрдерди рдЧрд░реНрджрдЫред

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

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

  • Clang/LLVM 15.0 рдХреЛ рд▓рд╛рдЧрд┐ рд╕рдорд░реНрдерди рдердкрд┐рдпреЛред
  • CPU рд░ CUDA рдбреНрд░рд╛рдЗрднрд░рд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рдЙрд▓реНрд▓реЗрдЦрдиреАрдп рд░реВрдкрдорд╛ рд╕реБрдзрд╛рд░рд┐рдПрдХреЛ SPIR-V рд╢реЗрдбрд░ рдордзреНрдпрд╡рд░реНрддреА рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рд╕рдорд░реНрдердиред
  • рд╡рд┐рд╢реЗрд╖ рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ (CL_DEVICE_TYPE_ACCELERATOR) рд░ рдЕрдирд▓рд╛рдЗрди рд╕рдВрдХрд▓рдирд▓рд╛рдИ рд╕рдорд░реНрдерди рдирдЧрд░реНрдиреЗ рдЕрдиреБрдХреВрд▓рди рдЙрдкрдХрд░рдгрд╣рд░реВ (CL_DEVICE_TYPE_CUSTOM) рдХреЛ рд▓рд╛рдЧрд┐ рдбреНрд░рд╛рдЗрднрд░ рдорд╣рддреНрддреНрд╡рдкреВрд░реНрдг рд░реВрдкрдорд╛ рдкреБрди: рдбрд┐рдЬрд╛рдЗрди рдЧрд░рд┐рдПрдХреЛ рдЫред рдПрдХреНрд╕реЗрд▓ рд░ рдЯреНрдпрд╛рд╕рд┐рдо рдбреНрд░рд╛рдЗрднрд░рд╣рд░реВрд▓рд╛рдИ рдирдпрд╛рдБ AlmaIF рдбреНрд░рд╛рдЗрднрд░рдорд╛ рдорд░реНрдЬ рдЧрд░рд┐рдПрдХреЛ рдЫред
  • Vulkan рдЧреНрд░рд╛рдлрд┐рдХреНрд╕ API рдХреЛ рд▓рд╛рдЧрд┐ рдЪрд╛рд▓рдХ рдорд╛ рдХрд╛рдо рдЬрд╛рд░реА рдЫред
  • cl_khr_command_buffer рд╡рд┐рд╕реНрддрд╛рд░рдХреЛ рдЖрдзрд╛рд░рднреВрдд рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рдЫ, рдЬрд╕рд▓реЗ рддрдкрд╛рдИрдВрд▓рд╛рдИ рдПрдХ рдХрд▓рдорд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрдирдХреЛ рд▓рд╛рдЧрд┐ OpenCL рдЖрджреЗрд╢рд╣рд░реВрдХреЛ рдЕрдиреБрдХреНрд░рдо рд▓реЗрдЦреНрди рдЕрдиреБрдорддрд┐ рджрд┐рдиреНрдЫред

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

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