OpenCL เจธเจŸเฉˆเจ‚เจกเจฐเจก เจฆเฉ‡ เจธเฉเจคเฉฐเจคเจฐ เจฒเจพเจ—เฉ‚ เจ•เจฐเจจ เจฆเฉ‡ เจจเจพเจฒ PoCL 5.0 เจฆเฉ€ เจฐเจฟเจฒเฉ€เจœเจผ

ะžะฟัƒะฑะปะธะบะพะฒะฐะฝ ั€ะตะปะธะท ะฟั€ะพะตะบั‚ะฐ PoCL 5.0 (Portable Computing Language OpenCL), ั€ะฐะทะฒะธะฒะฐัŽั‰ะตะณะพ ั€ะตะฐะปะธะทะฐั†ะธัŽ ัั‚ะฐะฝะดะฐั€ั‚ะฐ OpenCL, ะฝะตะทะฐะฒะธัะธะผัƒัŽ ะพั‚ ะฟั€ะพะธะทะฒะพะดะธั‚ะตะปะตะน ะณั€ะฐั„ะธั‡ะตัะบะธั… ัƒัะบะพั€ะธั‚ะตะปะตะน ะธ ะฟะพะทะฒะพะปััŽั‰ัƒัŽ ะธัะฟะพะปัŒะทะพะฒะฐั‚ัŒ ั€ะฐะทะปะธั‡ะฝั‹ะต ะฑัะบะตะฝะดั‹ ะดะปั ะฒั‹ะฟะพะปะฝะตะฝะธั OpenCL-ัะดะตั€ ะฝะฐ ั€ะฐะทะฝั‹ั… ั‚ะธะฟะฐั… ะณั€ะฐั„ะธั‡ะตัะบะธั… ะธ ั†ะตะฝั‚ั€ะฐะปัŒะฝั‹ั… ะฟั€ะพั†ะตััะพั€ะพะฒ. ะšะพะด ะฟั€ะพะตะบั‚ะฐ ั€ะฐัะฟั€ะพัั‚ั€ะฐะฝัะตั‚ัั ะฟะพะด ะปะธั†ะตะฝะทะธะตะน MIT. ะŸะพะดะดะตั€ะถะธะฒะฐะตั‚ัั ั€ะฐะฑะพั‚ะฐ ะฝะฐ ะฟะปะฐั‚ั„ะพั€ะผะฐั… X86_64, MIPS32, ARM v7, AMD HSA APU, NVIDIA GPU ะธ ั€ะฐะทะปะธั‡ะฝั‹ั… ัะฟะตั†ะธะฐะปะธะทะธั€ะพะฒะฐะฝะฝั‹ั… ASIP (Application-Specific Instruction-set Processor) ะธ TTA-ะฟั€ะพั†ะตััะพั€ะฐั… (Transport Triggered Architecture) c ะฐั€ั…ะธั‚ะตะบั‚ัƒั€ะพะน VLIW.

เจ“เจชเจจเจธเฉ€เจเจฒ เจ•เจฐเจจเจฒ เจ•เฉฐเจชเจพเจˆเจฒเจฐ เจจเฉ‚เฉฐ เจฒเจพเจ—เฉ‚ เจ•เจฐเจจเจพ LLVM เจฆเฉ‡ เจ†เจงเจพเจฐ 'เจคเฉ‡ เจฌเจฃเจพเจ‡เจ† เจ—เจฟเจ† เจนเฉˆ, เจ…เจคเฉ‡ เจ•เจฒเฉˆเจ‚เจ— เจจเฉ‚เฉฐ OpenCL C เจฒเจˆ เจซเจฐเฉฐเจŸ เจเจ‚เจก เจฆเฉ‡ เจคเฉŒเจฐ 'เจคเฉ‡ เจตเจฐเจคเจฟเจ† เจœเจพเจ‚เจฆเจพ เจนเฉˆเฅค เจ‰เจšเจฟเจค เจชเฉ‹เจฐเจŸเฉ‡เจฌเจฟเจฒเจŸเฉ€ เจ…เจคเฉ‡ เจชเฉเจฐเจฆเจฐเจธเจผเจจ เจจเฉ‚เฉฐ เจฏเจ•เฉ€เจจเฉ€ เจฌเจฃเจพเจ‰เจฃ เจฒเจˆ, เจ“เจชเจจเจธเฉ€เจเจฒ เจ•เจฐเจจเจฒ เจ•เฉฐเจชเจพเจˆเจฒเจฐ เจฎเจฟเจธเจผเจฐเจจ เจซเฉฐเจ•เจธเจผเจจ เจคเจฟเจ†เจฐ เจ•เจฐ เจธเจ•เจฆเจพ เจนเฉˆ เจœเฉ‹ เจ•เฉ‹เจก เจเจ—เจœเจผเฉ€เจ•เจฟเจŠเจธเจผเจจ เจจเฉ‚เฉฐ เจธเจฎเจพเจจเจพเจ‚เจคเจฐ เจฌเจฃเจพเจ‰เจฃ เจฒเจˆ เจตเฉฑเจ–-เจตเฉฑเจ– เจนเจพเจฐเจกเจตเฉ‡เจ…เจฐ เจธเจฐเฉ‹เจคเจพเจ‚ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐ เจธเจ•เจฆเจพ เจนเฉˆ, เจœเจฟเจตเฉ‡เจ‚ เจ•เจฟ VLIW, superscalar, SIMD, SIMT, เจฎเจฒเจŸเฉ€-เจ•เฉ‹เจฐ เจ…เจคเฉ‡ เจฎเจฒเจŸเฉ€-เจฅเฉเจฐเฉˆเจกเจฟเฉฐเจ—เฅค ICD เจกเจฐเจพเจˆเจตเจฐเจพเจ‚ (เจ‡เฉฐเจธเจŸเจพเจฒ เจนเฉ‹เจฃ เจฏเฉ‹เจ— เจ•เจฒเจพเจ‡เฉฐเจŸ เจกเจฐเจพเจˆเจตเจฐ) เจฒเจˆ เจธเจฎเจฐเจฅเจจ เจนเฉˆเฅค CPU, ASIP (TCE/TTA), HSA เจ†เจฐเจ•เฉ€เจŸเฉˆเจ•เจšเจฐ 'เจคเฉ‡ เจ†เจงเจพเจฐเจฟเจค GPU เจ…เจคเฉ‡ NVIDIA GPU (เจฒเจฟเจฌเจ•เฉเจกเจพ เจฐเจพเจนเฉ€เจ‚) เจฐเจพเจนเฉ€เจ‚ เจ“เจชเจฐเฉ‡เจธเจผเจจ เจฆเจพ เจธเจฎเจฐเจฅเจจ เจ•เจฐเจจ เจฒเจˆ เจฌเฉˆเจ•เจเจ‚เจก เจนเจจเฅค

เจจเจตเฉ‡เจ‚ เจธเฉฐเจธเจ•เจฐเจฃ เจตเจฟเฉฑเจš:

  • ะ ะตะฐะปะธะทะพะฒะฐะฝ ะฝะพะฒั‹ะน ะฑัะบะตะฝะด ยซRemoteยป, ะฟั€ะตะดะฝะฐะทะฝะฐั‡ะตะฝะฝั‹ะน ะดะปั ะพั€ะณะฐะฝะธะทะฐั†ะธะธ ั€ะฐัะฟั€ะตะดะตะปั‘ะฝะฝั‹ั… ะฒั‹ั‡ะธัะปะตะฝะธะน ั‡ะตั€ะตะท ะฒั‹ะฝะพั ะพะฑั€ะฐะฑะพั‚ะบะธ ะบะพะผะฐะฝะด OpenCL ะฝะฐ ะดั€ัƒะณะธะต ั…ะพัั‚ั‹ ะฒ ัะตั‚ะธ, ะฝะฐ ะบะพั‚ะพั€ั‹ั… ะทะฐะฟัƒั‰ะตะฝ ั„ะพะฝะพะฒั‹ะน ะฟั€ะพั†ะตัั pocld.
  • ะ’ ะดั€ะฐะนะฒะตั€ะต CUDA ั€ะตะฐะปะธะทะพะฒะฐะฝั‹ ะดะพะฟะพะปะฝะธั‚ะตะปัŒะฝั‹ะต ะฒะพะทะผะพะถะฝะพัั‚ะธ ะธ ั€ะฐััˆะธั€ะตะฝะธั OpenCL 3.0, ั‚ะฐะบะธะต ะบะฐะบ ะฐั‚ะพะผะฐั€ะฝั‹ะต ะพะฟะตั€ะฐั†ะธะธ, ะฟะตั€ะตะผะตะฝะฝั‹ะต ั ะพะณั€ะฐะฝะธั‡ะตะฝะฝะพะน ะพะฑะปะฐัั‚ัŒัŽ ะฒะธะดะธะผะพัั‚ะธ, ะฟะพะดะณั€ัƒะฟะฟั‹ intel_sub_group_shuffle, intel_sub_group_shuffle_xor, get_sub_group_local_id, sub_group_barrier ะธ sub_group_ballot.
  • ะฃะปัƒั‡ัˆะตะฝะฐ ะฟะพะดะดะตั€ะถะบะฐ CPU ะฝะฐ ะฑะฐะทะต ะฐั€ั…ะธั‚ะตะบั‚ัƒั€ั‹ RISC-V. ะ ะฐะฑะพั‚ะฐ PoCL ะฟั€ะพั‚ะตัั‚ะธั€ะพะฒะฐะฝะฐ ะฝะฐ ะฟะปะฐั‚ะต Starfive VisionFive 2 ั ะทะฐะณั€ัƒะถะตะฝะฝั‹ะผ ะพะบั€ัƒะถะตะฝะธะตะผ Ubuntu 23.10 ั LLVM 17 ะธ GCC 13.2.
  • ะ ะตะฐะปะธะทะพะฒะฐะฝะพ ั€ะฐััˆะธั€ะตะฝะธะต cl_ext_float_atomics ั ะฟะพะดะดะตั€ะถะบะพะน FP32 ะธ FP64.
  • ะ ะตะฐะปะธะทะฐั†ะธั ั€ะฐััˆะธั€ะตะฝะธั cl_khr_command_buffer ะพะฑะฝะพะฒะปะตะฝะฐ ะดะพ ะฒะตั€ัะธะธ 0.9.4.
  • ะŸั€ะตะดะปะพะถะตะฝ ัะบัะฟะตั€ะธะผะตะฝั‚ะฐะปัŒะฝั‹ะน ะฑัะบะตะฝะด AlmaIF ะดะปั FPGA.
  • ะฃะดะฐะปะตะฝะฐ ะฝะตะทะฐะฒะตั€ัˆั‘ะฝะฝะฐั ะฟะพะดะดะตั€ะถะบะฐ ะฟั€ะพะผะตะถัƒั‚ะพั‡ะฝะพะณะพ ะฟั€ะตะดัั‚ะฐะฒะปะตะฝะธั ัˆะตะนะดะตั€ะพะฒ SPIR 1.x/2.0. ะ’ ะบะฐั‡ะตัั‚ะฒะต ั€ะตะบะพะผะตะฝะดะพะฒะฐะฝะฝะพะณะพ ะฟั€ะพะผะตะถัƒั‚ะพั‡ะฝะพะณะพ ัะทั‹ะบะฐ ัˆะตะนะดะตั€ะพะฒ ะทะฐัะฒะปะตะฝ SPIR-V.
  • ะ”ะพะฑะฐะฒะปะตะฝะฐ ะฟะพะดะดะตั€ะถะบะฐ Clang/LLVM 17.0. ะžะฑัŠัะฒะปะตะฝะฐ ัƒัั‚ะฐั€ะตะฒัˆะตะน ะฟะพะดะดะตั€ะถะบะฐ Clang/LLVM 10-13.

เจธเจฐเฉ‹เจค: opennet.ru

เจ‡เฉฑเจ• เจŸเจฟเฉฑเจชเจฃเฉ€ เจœเฉ‹เฉœเฉ‹