ืื ืืขืืืื ื ืคืื ืื 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