PoCL 5.0 āĻĒā§āĻ°āĻā§āĻā§āĻ (āĻĒā§āĻ°ā§āĻā§āĻŦāĻ˛ āĻāĻŽā§āĻĒāĻŋāĻāĻāĻŋāĻ āĻ˛ā§āĻ¯āĻžāĻā§āĻā§āĻ¯āĻŧā§āĻ OpenCL) āĻĒā§āĻ°āĻāĻžāĻļ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§, OpenCL āĻ¸ā§āĻā§āĻ¯āĻžāĻ¨ā§āĻĄāĻžāĻ°ā§āĻĄā§āĻ° āĻāĻāĻāĻŋ āĻŦāĻžāĻ¸ā§āĻ¤āĻŦāĻžāĻ¯āĻŧāĻ¨ā§āĻ° āĻāĻ¨ā§āĻ¨āĻ¯āĻŧāĻ¨ āĻāĻāĻžāĻā§āĻā§ āĻ¯āĻž āĻā§āĻ°āĻžāĻĢāĻŋāĻā§āĻ¸ āĻāĻā§āĻ¸āĻŋāĻ˛āĻžāĻ°ā§āĻāĻ° āĻ¨āĻŋāĻ°ā§āĻŽāĻžāĻ¤āĻžāĻĻā§āĻ° āĻĨā§āĻā§ āĻ¸ā§āĻŦāĻžāĻ§ā§āĻ¨ āĻāĻŦāĻ āĻŦāĻŋāĻāĻŋāĻ¨ā§āĻ¨ āĻ§āĻ°āĻ¨ā§āĻ° āĻā§āĻ°āĻžāĻĢāĻŋāĻā§āĻ¸ āĻāĻŦāĻ āĻ¸ā§āĻ¨ā§āĻā§āĻ°āĻžāĻ˛ āĻĒā§āĻ°āĻ¸ā§āĻ¸āĻ°ā§ OpenCL āĻāĻžāĻ°ā§āĻ¨ā§āĻ˛ āĻāĻžāĻ˛āĻžāĻ¨ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻŦāĻŋāĻāĻŋāĻ¨ā§āĻ¨ āĻŦā§āĻ¯āĻžāĻāĻāĻ¨ā§āĻĄ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°ā§āĻ° āĻ āĻ¨ā§āĻŽāĻ¤āĻŋ āĻĻā§āĻ¯āĻŧāĨ¤ . āĻĒā§āĻ°āĻāĻ˛ā§āĻĒ āĻā§āĻĄ MIT āĻ˛āĻžāĻāĻ¸ā§āĻ¨ā§āĻ¸ā§āĻ° āĻ āĻ§ā§āĻ¨ā§ āĻŦāĻŋāĻ¤āĻ°āĻŖ āĻāĻ°āĻž āĻšāĻ¯āĻŧāĨ¤ VLIW āĻāĻ°ā§āĻāĻŋāĻā§āĻāĻāĻžāĻ° āĻ¸āĻš X86_64, MIPS32, ARM v7, AMD HSA APU, NVIDIA GPU āĻāĻŦāĻ āĻŦāĻŋāĻāĻŋāĻ¨ā§āĻ¨ āĻŦāĻŋāĻļā§āĻˇāĻžāĻ¯āĻŧāĻŋāĻ¤ ASIP (āĻ ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻā§āĻļāĻ¨-āĻ¸ā§āĻĒā§āĻ¸āĻŋāĻĢāĻŋāĻ āĻāĻ¨āĻ¸ā§āĻā§āĻ°āĻžāĻāĻļāĻ¨-āĻ¸ā§āĻ āĻĒā§āĻ°āĻ¸ā§āĻ¸āĻ°) āĻāĻŦāĻ TTA (āĻā§āĻ°āĻžāĻ¨ā§āĻ¸āĻĒā§āĻ°ā§āĻ āĻā§āĻ°āĻŋāĻāĻžāĻ°āĻĄ āĻāĻ°ā§āĻāĻŋāĻā§āĻāĻāĻžāĻ°) āĻĒā§āĻ°āĻ¸ā§āĻ¸āĻ°āĻā§āĻ˛āĻŋāĻ¤ā§ āĻāĻžāĻ āĻāĻ°āĻ¤ā§ āĻ¸āĻšāĻžāĻ¯āĻŧāĻ¤āĻž āĻāĻ°ā§āĨ¤
āĻāĻĒā§āĻ¨āĻ¸āĻŋāĻāĻ˛ āĻāĻžāĻ°ā§āĻ¨ā§āĻ˛ āĻāĻŽā§āĻĒāĻžāĻāĻ˛āĻžāĻ°ā§āĻ° āĻŦāĻžāĻ¸ā§āĻ¤āĻŦāĻžāĻ¯āĻŧāĻ¨ LLVM-āĻāĻ° āĻāĻŋāĻ¤ā§āĻ¤āĻŋāĻ¤ā§ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§ āĻāĻŦāĻ āĻā§āĻ˛ā§āĻ¯āĻžāĻ āĻāĻĒā§āĻ¨āĻ¸āĻŋāĻāĻ˛ āĻ¸āĻŋ-āĻāĻ° āĻ¸āĻžāĻŽāĻ¨ā§āĻ° āĻĒā§āĻ°āĻžāĻ¨ā§āĻ¤ āĻšāĻŋāĻ¸āĻžāĻŦā§ āĻŦā§āĻ¯āĻŦāĻšā§āĻ¤ āĻšāĻ¯āĻŧāĨ¤ āĻ¸āĻ āĻŋāĻ āĻŦāĻšāĻ¨āĻ¯ā§āĻā§āĻ¯āĻ¤āĻž āĻāĻŦāĻ āĻāĻ°ā§āĻŽāĻā§āĻˇāĻŽāĻ¤āĻž āĻ¨āĻŋāĻļā§āĻāĻŋāĻ¤ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯, OpenCL āĻāĻžāĻ°ā§āĻ¨ā§āĻ˛ āĻāĻŽā§āĻĒāĻžāĻāĻ˛āĻžāĻ° āĻāĻŽā§āĻŦāĻŋāĻ¨ā§āĻļāĻ¨ āĻĢāĻžāĻāĻļāĻ¨ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§ āĻ¯āĻž āĻā§āĻĄ āĻāĻā§āĻ¸āĻŋāĻāĻŋāĻāĻļāĻ¨āĻā§ āĻ¸āĻŽāĻžāĻ¨ā§āĻ¤āĻ°āĻžāĻ˛ āĻāĻ°āĻ¤ā§ āĻŦāĻŋāĻāĻŋāĻ¨ā§āĻ¨ āĻšāĻžāĻ°ā§āĻĄāĻāĻ¯āĻŧā§āĻ¯āĻžāĻ° āĻ°āĻŋāĻ¸ā§āĻ°ā§āĻ¸ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§, āĻ¯ā§āĻŽāĻ¨ VLIW, superscalar, SIMD, SIMT, āĻŽāĻžāĻ˛ā§āĻāĻŋ-āĻā§āĻ° āĻāĻŦāĻ āĻŽāĻžāĻ˛ā§āĻāĻŋ-āĻĨā§āĻ°ā§āĻĄāĻŋāĻāĨ¤ āĻāĻāĻ¸āĻŋāĻĄāĻŋ āĻĄā§āĻ°āĻžāĻāĻāĻžāĻ° (āĻāĻ¨āĻ¸ā§āĻāĻ˛āĻ¯ā§āĻā§āĻ¯ āĻā§āĻ˛āĻžāĻ¯āĻŧā§āĻ¨ā§āĻ āĻĄā§āĻ°āĻžāĻāĻāĻžāĻ°) āĻāĻ¨ā§āĻ¯ āĻ¸āĻŽāĻ°ā§āĻĨāĻ¨ āĻ°āĻ¯āĻŧā§āĻā§āĨ¤ CPU, ASIP (TCE/TTA), HSA āĻāĻ°ā§āĻāĻŋāĻā§āĻāĻāĻžāĻ°ā§āĻ° āĻāĻĒāĻ° āĻāĻŋāĻ¤ā§āĻ¤āĻŋ āĻāĻ°ā§ GPU āĻāĻŦāĻ NVIDIA GPU (libcuda āĻāĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§) āĻāĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§ āĻ āĻĒāĻžāĻ°ā§āĻļāĻ¨ āĻ¸āĻŽāĻ°ā§āĻĨāĻ¨ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻŦā§āĻ¯āĻžāĻāĻāĻ¨ā§āĻĄ āĻ°āĻ¯āĻŧā§āĻā§āĨ¤
āĻ¨āĻ¤ā§āĻ¨ āĻŦāĻŋāĻļā§āĻŦā§:
- āĻāĻāĻāĻŋ āĻ¨āĻ¤ā§āĻ¨ "āĻ°āĻŋāĻŽā§āĻ" āĻŦā§āĻ¯āĻžāĻāĻāĻ¨ā§āĻĄ āĻĒā§āĻ°āĻ¯āĻŧā§āĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§, āĻ¯āĻž āĻŦā§āĻ¯āĻžāĻāĻā§āĻ°āĻžāĻāĻ¨ā§āĻĄ pocld āĻĒā§āĻ°āĻā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻāĻžāĻ˛āĻžāĻ¨ā§ āĻ¨ā§āĻāĻāĻ¯āĻŧāĻžāĻ°ā§āĻā§āĻ° āĻ āĻ¨ā§āĻ¯āĻžāĻ¨ā§āĻ¯ āĻšā§āĻ¸ā§āĻā§ OpenCL āĻāĻŽāĻžāĻ¨ā§āĻĄā§āĻ° āĻĒā§āĻ°āĻā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻāĻ°āĻŖ āĻ¸ā§āĻĨāĻžāĻ¨āĻžāĻ¨ā§āĻ¤āĻ° āĻāĻ°ā§ āĻŦāĻŋāĻ¤āĻ°āĻŖāĻā§āĻ¤ āĻāĻŽā§āĻĒāĻŋāĻāĻāĻŋāĻ āĻ¸āĻāĻāĻ āĻŋāĻ¤ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻĄāĻŋāĻāĻžāĻāĻ¨ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§āĨ¤
- CUDA āĻĄā§āĻ°āĻžāĻāĻāĻžāĻ° OpenCL 3.0 āĻāĻ° āĻ āĻ¤āĻŋāĻ°āĻŋāĻā§āĻ¤ āĻŦā§āĻļāĻŋāĻˇā§āĻā§āĻ¯ āĻāĻŦāĻ āĻāĻā§āĻ¸āĻā§āĻ¨āĻļāĻ¨ āĻĒā§āĻ°āĻ¯āĻŧā§āĻ āĻāĻ°ā§, āĻ¯ā§āĻŽāĻ¨ āĻĒāĻžāĻ°āĻŽāĻžāĻŖāĻŦāĻŋāĻ āĻ āĻĒāĻžāĻ°ā§āĻļāĻ¨, āĻ¸ā§āĻā§āĻĒāĻĄ āĻā§āĻ°āĻŋāĻ¯āĻŧā§āĻŦāĻ˛, intel_sub_group_shuffle, intel_sub_group_shuffle_xor, get_sub_group_local_id, sub_group_barrier, āĻāĻŦāĻ sub_group_ballotāĨ¤
- RISC-V āĻāĻ°ā§āĻāĻŋāĻā§āĻāĻāĻžāĻ°ā§āĻ° āĻāĻĒāĻ° āĻāĻŋāĻ¤ā§āĻ¤āĻŋ āĻāĻ°ā§ CPU-āĻ° āĻāĻ¨ā§āĻ¯ āĻāĻ¨ā§āĻ¨āĻ¤ āĻ¸āĻŽāĻ°ā§āĻĨāĻ¨āĨ¤ LLVM 2 āĻāĻŦāĻ GCC 23.10 āĻ¸āĻš āĻāĻŦā§āĻ¨ā§āĻā§ 17 āĻĒāĻ°āĻŋāĻŦā§āĻļā§ āĻ˛ā§āĻĄ āĻāĻ°āĻž Starfive VisionFive 13.2 āĻŦā§āĻ°ā§āĻĄā§ PoCL āĻ āĻĒāĻžāĻ°ā§āĻļāĻ¨ āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻāĻŋāĻ˛āĨ¤
- cl_ext_float_atomics āĻāĻā§āĻ¸āĻā§āĻ¨āĻļāĻ¨ FP32 āĻāĻŦāĻ FP64 āĻāĻ° āĻ¸āĻŽāĻ°ā§āĻĨāĻ¨ā§ āĻĒā§āĻ°āĻ¯āĻŧā§āĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§āĨ¤
- cl_khr_command_buffer āĻāĻā§āĻ¸āĻā§āĻ¨āĻļāĻ¨ā§āĻ° āĻŦāĻžāĻ¸ā§āĻ¤āĻŦāĻžāĻ¯āĻŧāĻ¨ 0.9.4 āĻ¸āĻāĻ¸ā§āĻāĻ°āĻŖā§ āĻāĻĒāĻĄā§āĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§āĨ¤
- FPGA-āĻāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻāĻāĻŋ āĻĒāĻ°ā§āĻā§āĻˇāĻžāĻŽā§āĻ˛āĻ AlmaIF āĻŦā§āĻ¯āĻžāĻāĻāĻ¨ā§āĻĄ āĻĒā§āĻ°āĻ¸ā§āĻ¤āĻžāĻŦ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§āĨ¤
- SPIR 1.x/2.0 shaders āĻāĻ° āĻŽāĻ§ā§āĻ¯āĻŦāĻ°ā§āĻ¤ā§ āĻāĻĒāĻ¸ā§āĻĨāĻžāĻĒāĻ¨āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻ āĻ¸āĻŽā§āĻĒā§āĻ°ā§āĻŖ āĻ¸āĻŽāĻ°ā§āĻĨāĻ¨ āĻ¸āĻ°āĻžāĻ¨ā§ āĻšāĻ¯āĻŧā§āĻā§āĨ¤ SPIR-V āĻĒā§āĻ°āĻ¸ā§āĻ¤āĻžāĻŦāĻŋāĻ¤ āĻŽāĻ§ā§āĻ¯āĻŦāĻ°ā§āĻ¤ā§ āĻļā§āĻĄāĻžāĻ° āĻāĻžāĻˇāĻž āĻšāĻŋāĻ¸āĻžāĻŦā§ āĻā§āĻˇāĻŖāĻž āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§āĨ¤
- Clang/LLVM 17.0-āĻāĻ° āĻāĻ¨ā§āĻ¯ āĻ¸āĻŽāĻ°ā§āĻĨāĻ¨ āĻ¯ā§āĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§āĨ¤ Clang/LLVM 10-13-āĻāĻ° āĻāĻ¨ā§āĻ¯ āĻ¸āĻŽāĻ°ā§āĻĨāĻ¨ āĻ āĻŦāĻŽā§āĻ˛ā§āĻ¯āĻžāĻ¯āĻŧāĻŋāĻ¤ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§āĨ¤
āĻāĻ¤ā§āĻ¸: opennet.ru