рдУрдкрдирд╕реАрдПрд▓ 3.0 рдорд╛рдирдХрд╛рдЪреНрдпрд╛ рд╕реНрд╡рддрдВрддреНрд░ рдЕрдВрдорд▓рдмрдЬрд╛рд╡рдгреАрд╕рд╣ PoCL 3.0 рдЪреЗ рдкреНрд░рдХрд╛рд╢рди

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

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

рдирд╡реАрди рдЖрд╡реГрддреНрддреАрдордзреНрдпреЗ:

  • OpenCL 3.0 рддрдкрд╢реАрд▓рд╛рд▓рд╛ рд╕рдорд░реНрдерди рджреЗрдгреНрдпрд╛рд╕рд╛рдареА рдЖрд╡рд╢реНрдпрдХ рдЕрд╕рд▓реЗрд▓реНрдпрд╛ рд╡реИрд╢рд┐рд╖реНрдЯреНрдпрд╛рдВрдЪрд╛ рдХрд┐рдорд╛рди рд╕рдВрдЪ рд▓рд╛рдЧреВ рдХреЗрд▓рд╛ рдЧреЗрд▓рд╛ рдЖрд╣реЗ. OpenCL 3.0 рд╕рдорд░реНрдерди рд╕рдзреНрдпрд╛ рдлрдХреНрдд LLVM 14 рд╕рд╣ CPU-рдЖрдзрд╛рд░рд┐рдд рдмреЕрдХрдПрдВрдбрд╡рд░ рдЙрдкрд▓рдмреНрдз рдЖрд╣реЗ (рдЗрддрд░ рдмреЕрдХрдПрдВрдбреНрд╕ рдЖрдгрд┐ LLVM рдЪреНрдпрд╛ рдЬреБрдиреНрдпрд╛ рдЖрд╡реГрддреНрддреНрдпрд╛ OpenCL 1.2 рд╕рд╛рдареА рд╕рдорд░реНрдерди рджреЗрддрд╛рдд).
  • Clang/LLVM 14 рд╕рд╛рдареА рд╕рдорд░реНрдерди рдЬреЛрдбрд▓реЗ.
  • рд╕реБрдзрд╛рд░рд┐рдд рдЯреНрд░реЗрд╕рд┐рдВрдЧ рдЖрдгрд┐ рд╡реНрд╣рд┐рдЬреНрдпреБрдЕрд▓рд╛рдпрдЭреЗрд╢рди.
  • рдлрдВрдХреНрд╢рдиреНрд╕рдЪреЗ рд╡рд┐рд╢реЗрд╖ рдЧрдЯ рдирд┐рд░реНрдорд╛рдг рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдЖрдгрд┐ OpenCL рдХрд░реНрдирд▓рд╕рд╣ рдПрдХреНрдЭрд┐рдХреНрдпреБрдЯреЗрдмрд▓ рдлрд╛рдЗрд▓реНрд╕рдордзреНрдпреЗ рд╕рдорд╛рд╡рд┐рд╖реНрдЯ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рд╕рдорд░реНрдерди рдЬреЛрдбрд▓реЗ.

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

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