ืžืขืœื“ื•ื ื’ ืคื•ืŸ PoCL 1.4, ืึท ืคืจื™ื™ึท ื™ืžืคึผืœืึทืžืขื ื˜ื™ื™ืฉืึทืŸ ืคื•ืŸ ื“ื™ OpenCL ื ืึธืจืžืึทืœ

ื‘ื ื™ืžืฆื ืคึผืจื•ื™ืขืงื˜ ืžืขืœื“ื•ื ื’ PoCL 1.4 (Portable Computing Language OpenCL), ื•ื•ืึธืก ื“ืขื•ื•ืขืœืึธืคึผืก ืึทืŸ ื™ืžืคึผืœืึทืžืขื ื˜ื™ื™ืฉืึทืŸ ืคื•ืŸ ื“ื™ OpenCL ื ืึธืจืžืึทืœ ื•ื•ืึธืก ืื™ื– ืคืจื™ื™ึท ืคื•ืŸ ื’ืจืึทืคื™ืงืก ืึทืงืกืขืœืขืจืึทื˜ืึธืจ ืžืึทื ื™ืึทืคืึทืงื˜ืฉืขืจืขืจื– ืื•ืŸ ืึทืœืึทื•ื– ื“ื™ ื ื•ืฆืŸ ืคื•ืŸ ืคืึทืจืฉื™ื“ืŸ ื‘ืึทืงืขื ื“ื– ืคึฟืึทืจ ืขืงืกืึทืงื™ื•ื˜ื™ื ื’ OpenCL ืงืขืจื ืึทืœื– ืื•ื™ืฃ ืคืึทืจืฉื™ื“ืขื ืข ื˜ื™ื™ืคึผืก ืคื•ืŸ ื’ืจืึทืคื™ืงืก ืื•ืŸ ื”ื•ื™ืคื˜ ืคึผืจืึทืกืขืกืขืจื–. ืคึผืจืึธื™ืขืงื˜ ืงืึธื“ ืคื•ื ืื ื“ืขืจื’ืขื˜ื™ื™ืœื˜ ื“ื•ืจืš ืื•ื ื˜ืขืจ MIT ื“ืขืจืœื•ื™ื‘ืขื ื™ืฉ. ืฉื˜ื™ืฆื˜ ืึทืจื‘ืขื˜ ืื•ื™ืฃ X86_64, MIPS32, ARM v7, AMD HSA APU ืคึผืœืึทื˜ืคืึธืจืžืก ืื•ืŸ ืคืึทืจืฉื™ื“ืŸ ืกืคึผืขืฉืึทืœื™ื™ื–ื“ ื˜ื˜ืึท ืคึผืจืึทืกืขืกืขืจื– (ืึทืจื™ื‘ืขืจืคื™ืจืŸ ื˜ืจื™ื’ืขืจื“ ืึทืจื˜ืฉื™ื˜ืขืงื˜ื•ืจืข) ืžื™ื˜ ืึทืจืงืึทื˜ืขืงื˜ืฉืขืจ VLIW.

ื“ื™ ื™ืžืคึผืœืึทืžืขื ื˜ื™ื™ืฉืึทืŸ ืคื•ืŸ ื“ื™ OpenCL ืงืขืจืŸ ืงืึทืžืคึผื™ื™ืœืขืจ ืื™ื– ื’ืขื‘ื•ื™ื˜ ืื•ื™ืฃ ื“ืขืจ ื‘ืื–ืข ืคื•ืŸ โ€‹โ€‹LLVM, ืื•ืŸ Clang ืื™ื– ื’ืขื ื™ืฆื˜ ื•ื•ื™ ื“ื™ ืคืจืึธื ื˜ ืกื•ืฃ ืคึฟืึทืจ OpenCL C. ืฆื• ืขื ืฉื•ืจ ื’ืขื”ืขืจื™ืง ืคึผืึธืจื˜ืึทื‘ื™ืœื™ื˜ื™ ืื•ืŸ ืคืึธืจืฉื˜ืขืœื•ื ื’, ื“ื™ OpenCL ืงืขืจืŸ ืงืึทืžืคึผื™ื™ืœืขืจ ืงืขื ืขืŸ ื“ื–ืฉืขื ืขืจื™ื™ื˜ ืงืึธืžื‘ื™ื ืึทืฆื™ืข ืคืึทื ื’ืงืฉืึทื ื– ื•ื•ืึธืก ืงืขื ืขืŸ ื ื•ืฆืŸ ืคืึทืจืฉื™ื“ืŸ ื™ื™ึทื–ื ื•ื•ืึทืจื’ ืจืขืกื•ืจืกืŸ ืฆื• ืคึผืึทืจืึทืœืขืœื™ื–ื™ืจืŸ ืงืึธื“ ื“ื•ืจื›ืคื™ืจื•ื ื’, ืึทื–ืึท ื•ื•ื™ VLIW, ืกื•ืคึผืขืจืกืงืึทืœืขืจ, SIMD, SIMT, ืžื•ืœื˜ื™-ื”ืึทืจืฅ ืื•ืŸ ืžื•ืœื˜ื™-ืคืึธื“ืขื. ICD ืฉืึธืคืขืจ ืฉื˜ื™ืฆืŸ ื‘ื ื™ืžืฆื
(ื™ื ืกื˜ืึทืœืœืึทื‘ืœืข ืงืœื™ืขื ื˜ ื“ืจื™ื™ื•ื•ืขืจ). ืขืก ื–ืขื ืขืŸ ื‘ืึทืงืขื ื“ื– ืฆื• ืขื ืฉื•ืจ ืึธืคึผืขืจืึทืฆื™ืข ื“ื•ืจืš ืงืคึผื•, ASIP (TCE / TTA), ื’ืคึผื• ื‘ืื–ื™ืจื˜ ืึทืจืงืึทื˜ืขืงื˜ืฉืขืจ ื”ืกืึท ืื•ืŸ NVIDIA GPU (CUDA).

ะ’ ื ื™ื™ึท ื•ื•ืขืจืกื™ืข:

  • ืฆื•ื’ืขื’ืขื‘ืŸ ืฉื˜ื™ืฆืŸ LLVM/Clang 9.0. ืฉื˜ื™ืฆืŸ ืคึฟืึทืจ LLVM ื•ื•ืขืจืกื™ืขืก ืขืœื˜ืขืจ ื•ื•ื™ 6.0 ืื™ื– ืึธืคึผื’ืขืฉื˜ืขืœื˜.
  • ื™ืžืคึผืจื•ื•ื•ื“ ืงืคึผื•-ื‘ืื–ื™ืจื˜ ื™ืžืคึผืœืึทืžืขื ื˜ื™ื™ืฉืึทืŸ ืคื•ืŸ ื™ื ื˜ืขืจืžื™ื“ื™ื™ื˜ ืงืึธื“ ืจืขืคึผืจืึทื–ืึทื ื˜ื™ื™ืฉืึทื ื– SPIR ะธ SPIR-V (ื’ืขื ื™ืฆื˜ ืื™ืŸ ื“ื™ Vulkan API), ื•ื•ืึธืก ืงืขื ืขืŸ ื–ื™ื™ืŸ ื’ืขื•ื•ื™ื™ื ื˜ ื‘ื™ื™ื“ืข ืฆื• ืคืึธืจืฉื˜ืขืœืŸ ืฉืึทื“ืขืจื– ืคึฟืึทืจ ื’ืจืึทืคื™ืงืก ืื•ืŸ ืคึฟืึทืจ ืคึผืึทืจืึทืœืขืœ ืงืึทืžืคึผื™ื•ื˜ื™ื ื’;
  • ืฆื•ื’ืขืœื™ื™ื’ื˜ ืคึผืึธืงืœ-ืึทืงืกืขืœ ืฉืึธืคืขืจ ืžื™ื˜ ืึท ื‘ื™ื™ืฉืคึผื™ืœ ื™ื ืคืจืึทืกื˜ืจืึทืงื˜ืฉืขืจ ืฆื• ืฉื˜ื™ืฆืŸ OpenCL 1.2 ื™ื™ึทื–ื ื•ื•ืึทืจื’ ืึทืงืกืขืœืขืจื™ื™ื˜ืขืจื– ื•ื•ืึธืก ื™ื ืกื˜ืจื•ืžืขื ื˜ ืึท ื–ื›ึผืจื•ืŸ-ืžืึทืคึผื˜ (ืžืžืึทืคึผ) ืงืึธื ื˜ืจืึธืœ ืฆื•ื‘ื™ื ื“;
  • ืฆื•ื’ืขื’ืขื‘ืŸ ื“ื™ ืคื™ื™ื™ืงื™ื™ื˜ ืฆื• ื‘ื•ื™ืขืŸ ืคึผืึธืงืœ ื™ื ืกื˜ืึทืœื™ื™ืฉืึทื ื– ื•ื•ืึธืก ื–ืขื ืขืŸ ื ื™ืฉื˜ ื˜ื™ื™ื“ ืฆื• ื“ื™ื™ืจืขืงื˜ืขืจื™ื– (ืจื™ืœืึธื•ืงืึทื˜ืึทื‘ืึทืœ).

ืžืงื•ืจ: opennet.ru

ืœื™ื™ื’ืŸ ืึท ื‘ืึทืžืขืจืงื•ื ื’