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

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

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

ืื™ืŸ ื“ื™ ื ื™ื™ึทืข ื•ื•ืขืจืกื™ืข:

  • ื ื ื™ื™ึทืข "ื•ื•ื™ื™ึทื˜" ื‘ืึทืงืขื ื“ ืื™ื– ื™ืžืคึผืœืึทืžืขื ืึทื“, ื“ื™ื–ื™ื™ื ื“ ืฆื• ืึธืจื’ืึทื ื™ื–ื™ืจืŸ ืคื•ื ืื ื“ืขืจื’ืขื˜ื™ื™ืœื˜ ืงืึทืžืคึผื™ื•ื˜ื™ื ื’ ื“ื•ืจืš ื˜ืจืึทื ืกืคืขืจื™ื ื’ ื“ื™ ืคึผืจืึทืกืขืกื™ื ื’ ืคื•ืŸ OpenCL ืงืึทืžืึทื ื“ื– ืฆื• ืื ื“ืขืจืข ืžื—ื ื•ืช ืื•ื™ืฃ ื“ื™ ื ืขืฅ ืžื™ื˜ ื“ื™ ื”ื™ื ื˜ืขืจื’ืจื•ื ื˜ ืคึผืึธืงืœื“ ืคึผืจืึธืฆืขืก.
  • ื“ื™ CUDA ืฉืึธืคืขืจ ื™ืžืคึผืœืึทืžืึทื ืฅ ื ืึธืš ืึธืคึผืขื ืงืœ 3.0 ืคึฟืขื™ึดืงื™ื™ื˜ืŸ ืื•ืŸ ื™ืงืกื˜ืขื ืฉืึทื ื– ืึทื–ืึท ื•ื•ื™ ืึทื˜ืึธืžื™ืฉืข ืึทืคึผืขืจื™ื™ืฉืึทื ื–, ืกืงืึธืคึผื˜ ื•ื•ืขืจื™ืึทื‘ืึทืœื–, intel_sub_group_shuffle, intel_sub_group_shuffle_xor, get_sub_group_local_id, sub_group_barrier ืื•ืŸ sub_group_ballot.
  • ื™ืžืคึผืจื•ื•ื•ื“ ืฉื˜ื™ืฆืŸ ืคึฟืึทืจ ืงืคึผื•ืก ื‘ืื–ื™ืจื˜ ืื•ื™ืฃ ื“ื™ RISC-V ืึทืจืงืึทื˜ืขืงื˜ืฉืขืจ. ืคึผืึธืงืœ ืึธืคึผืขืจืึทืฆื™ืข ืื™ื– ื˜ืขืกื˜ืขื“ ืื•ื™ืฃ ื“ื™ 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 ื‘ืึทืงืขื ื“ ืคึฟืึทืจ FPGAs ืื™ื– ืคืืจื’ืขืœื™ื™ื’ื˜.
  • ืจื™ืžื•ื•ื•ื“ ื“ืขืจืขื ื“ื™ืงื˜ ืฉื˜ื™ืฆืŸ ืคึฟืึทืจ ื™ื ื˜ืขืจืžื™ื“ื™ื™ื˜ ืคืึทืจื˜ืจืขื˜ื•ื ื’ ืคื•ืŸ SPIR 1.x/2.0 ืฉืึทื“ืขืจื–. SPIR-V ืื™ื– ื“ืขืจืงืœืขืจื˜ ื•ื•ื™ ื“ื™ ืจืขืงืึทืžืขื ื“ื™ื“ ื™ื ื˜ืขืจืžื™ื“ื™ื™ื˜ ืฉื™ื™ื“ืขืจ ืฉืคึผืจืึทืš.
  • ืฆื•ื’ืขืœื™ื™ื’ื˜ ืฉื˜ื™ืฆืŸ ืคึฟืึทืจ Clang / LLVM 17.0. ืฉื˜ื™ืฆืŸ ืคึฟืึทืจ Clang / LLVM 10-13 ืื™ื– ื“ื™ืคึผืจื™ืฉื™ื™ื™ื˜ื™ื“.

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

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