āĻ“āĻĒā§‡āĻ¨āĻ¸āĻŋāĻāĻ˛ āĻ¸ā§āĻŸā§āĻ¯āĻžāĻ¨ā§āĻĄāĻžāĻ°ā§āĻĄā§‡āĻ° āĻ¸ā§āĻŦāĻžāĻ§ā§€āĻ¨ āĻŦāĻžāĻ¸ā§āĻ¤āĻŦāĻžāĻ¯āĻŧāĻ¨ā§‡āĻ° āĻ¸āĻžāĻĨā§‡ PoCL 5.0 āĻāĻ° āĻĒā§āĻ°āĻ•āĻžāĻļ

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

āĻāĻ•āĻŸāĻŋ āĻŽāĻ¨ā§āĻ¤āĻŦā§āĻ¯ āĻœā§āĻĄāĻŧā§āĻ¨