เบเบฒเบ™เบ›เปˆเบญเบ PoCL 3.1 เบ”เป‰เบงเบเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เป€เบญเบเบฐเบฅเบฒเบ”เบ‚เบญเบ‡เบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™ OpenCL

ะŸั€ะตะดัั‚ะฐะฒะปะตะฝ ั€ะตะปะธะท ะฟั€ะพะตะบั‚ะฐ PoCL 3.1 (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.

เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบ‚เบญเบ‡ OpenCL kernel compiler เบ–เบทเบเบชเป‰เบฒเบ‡เบ‚เบถเป‰เบ™เบšเบปเบ™เบžเบทเป‰เบ™เบ–เบฒเบ™เบ‚เบญเบ‡ LLVM, เปเบฅเบฐ Clang เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เป€เบ›เบฑเบ™เบชเปˆเบงเบ™เบซเบ™เป‰เบฒเบชเปเบฒเบฅเบฑเบš OpenCL C. เป€เบžเบทเปˆเบญเบฎเบฑเบšเบ›เบฐเบเบฑเบ™เบเบฒเบ™เป€เบ„เบทเปˆเบญเบ™เบ—เบตเปˆเปเบฅเบฐเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบ—เบตเปˆเป€เบซเบกเบฒเบฐเบชเบปเบก, OpenCL kernel compiler เบชเบฒเบกเบฒเบ”เบชเป‰เบฒเบ‡เบซเบ™เป‰เบฒเบ—เบตเปˆเบ›เบฐเบชเบปเบกเบ›เบฐเบชเบฒเบ™เบ—เบตเปˆเบชเบฒเบกเบฒเบ”เบ™เปเบฒเปƒเบŠเป‰เบŠเบฑเบšเบžเบฐเบเบฒเบเบญเบ™เบฎเบฒเบ”เปเบงเบ•เปˆเบฒเบ‡เป†เป€เบžเบทเปˆเบญเบ‚เบฐเบซเบ™เบฒเบ™เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบฅเบฐเบซเบฑเบ”เป€เบŠเบฑเปˆเบ™ VLIW, superscalar, SIMD, SIMT, multi-core เปเบฅเบฐ multi-threading. เบกเบตเบเบฒเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™ ICD drivers (Installable Client Driver). เบกเบต backends เป€เบžเบทเปˆเบญเบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบเบฒเบ™เบ”เปเบฒเป€เบ™เบตเบ™เบ‡เบฒเบ™เบœเปˆเบฒเบ™ CPU, ASIP (TCE/TTA), GPU เบญเบตเบ‡เปƒเบชเปˆเบชเบฐเบ–เบฒเบ›เบฑเบ”เบ•เบฐ HSA เปเบฅเบฐ NVIDIA GPU (เบœเปˆเบฒเบ™ libcuda).

เปƒเบ™โ€‹เบชเบฐโ€‹เบšเบฑเบšโ€‹เปƒเบซเบกเปˆโ€‹:

  • ะ”ะพะฑะฐะฒะปะตะฝะฐ ะฟะพะดะดะตั€ะถะบะฐ Clang/LLVM 15.0.
  • ะ—ะฝะฐั‡ะธั‚ะตะปัŒะฝะพ ัƒะปัƒั‡ัˆะตะฝะฐ ะฟะพะดะดะตั€ะถะบะฐ ะฟั€ะพะผะตะถัƒั‚ะพั‡ะฝะพะณะพ ะฟั€ะตะดัั‚ะฐะฒะปะตะฝะธั ัˆะตะนะดะตั€ะพะฒ SPIR-V ะดะปั ะดั€ะฐะนะฒะตั€ะพะฒ, ะธัะฟะพะปัŒะทัƒัŽั‰ะธั… CPU ะธ CUDA.
  • ะ—ะฝะฐั‡ะธั‚ะตะปัŒะฝะพ ะฟะตั€ะตั€ะฐะฑะพั‚ะฐะฝ ะดั€ะฐะนะฒะตั€ ะดะปั ัะฟะตั†ะธะฐะปะธะทะธั€ะพะฒะฐะฝะฝะพะณะพ ะฐะฟะฟะฐั€ะฐั‚ะฝะพะณะพ ะพะฑะตัะฟะตั‡ะตะฝะธั (CL_DEVICE_TYPE_ACCELERATOR) ะธ ัะพะฑัั‚ะฒะตะฝะฝั‹ั… ัƒัั‚ั€ะพะนัั‚ะฒ (CL_DEVICE_TYPE_CUSTOM), ะฝะต ะฟะพะดะดะตั€ะถะธะฒะฐัŽั‰ะธั… online-ะบะพะผะฟะธะปัั†ะธัŽ. ะ”ั€ะฐะนะฒะตั€ั‹ accel ะธ ttasim ะพะฑัŠะตะดะธะฝะตะฝั‹ ะฒ ะฝะพะฒั‹ะน ะดั€ะฐะนะฒะตั€ AlmaIF.
  • ะŸั€ะพะดะพะปะถะตะฝะฐ ั€ะฐะฑะพั‚ะฐ ะฝะฐะด ะดั€ะฐะนะฒะตั€ะพะผ ะดะปั ะณั€ะฐั„ะธั‡ะตัะบะพะณะพ API Vulkan.
  • ะŸั€ะตะดะปะพะถะตะฝะฐ ะฑะฐะทะพะฒะฐั ั€ะตะฐะปะธะทะฐั†ะธั ั€ะฐััˆะธั€ะตะฝะธั cl_khr_command_buffer, ะฟะพะทะฒะพะปััŽั‰ะตะณะพ ะทะฐะฟะธัะฐั‚ัŒ ะฟะพัะปะตะดะพะฒะฐั‚ะตะปัŒะฝะพัั‚ัŒ ะบะพะผะฐะฝะด OpenCL ะดะปั ะธั… ะฒั‹ะฟะพะปะฝะตะฝะธั ะพะดะฝะธะผ ะฒั‹ะทะพะฒะพะผ.

เปเบซเบผเปˆเบ‡เบ‚เปเป‰เบกเบนเบ™: opennet.ru

เป€เบžเบตเปˆเบกเบ„เบงเบฒเบกเบ„เบดเบ”เป€เบซเบฑเบ™