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

เบกเบตเปƒเบซเป‰ เบเบฒเบ™เบ›เปˆเบญเบเป‚เบ„เบ‡เบเบฒเบ™ PoCL 1.4 (Portable Computing Language OpenCL), เป€เบŠเบดเปˆเบ‡เบžเบฑเบ”เบ—เบฐเบ™เบฒเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™ OpenCL เบ—เบตเปˆเป€เบ›เบฑเบ™เป€เบญเบเบฐเบฅเบฒเบ”เบ‚เบญเบ‡เบœเบนเป‰เบœเบฐเบฅเบดเบ”เป€เบ„เบทเปˆเบญเบ‡เป€เบฅเบฑเปˆเบ‡เบเบฒเบŸเบดเบเปเบฅเบฐเบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เปƒเบŠเป‰ backends เบ•เปˆเบฒเบ‡เป†เป€เบžเบทเปˆเบญเบ›เบฐเบ•เบดเบšเบฑเบ” OpenCL kernels เบเปˆเบฝเบงเบเบฑเบšเบ›เบฐเป€เบžเบ”เบ•เปˆเบฒเบ‡เป†เบ‚เบญเบ‡เบเบฒเบŸเบดเบเปเบฅเบฐเป‚เบ›เป€เบŠเบ”เป€เบŠเบตเบเบฒเบ‡. เบฅเบฐเบซเบฑเบ”เป‚เบ„เบ‡เบเบฒเบ™ เปเบˆเบเบขเบฒเบเป‚เบ”เบ เบžเบฒเบเปƒเบ•เป‰เปƒเบšเบญเบฐเบ™เบธเบเบฒเบ” MIT. เบฎเบญเบ‡เบฎเบฑเบšเบเบฒเบ™เป€เบฎเบฑเบ”เบงเบฝเบเปƒเบ™ X86_64, MIPS32, ARM v7, AMD HSA APU platforms เปเบฅเบฐเป‚เบ›เป€เบŠเบ”เป€เบŠเบต TTA เบžเบดเป€เบชเบ”เบ•เปˆเบฒเบ‡เป† (เบชเบฐเบ–เบฒเบ›เบฑเบ”เบ•เบฐเบเบฐเบเบณเบ—เบตเปˆเบเบฐเบ•เบธเป‰เบ™เบเบฒเบ™เบ‚เบปเบ™เบชเบปเปˆเบ‡) เบเบฑเบšโ€‹เบชเบฐโ€‹เบ–เบฒโ€‹เบ›เบฑเบ”โ€‹เบ•เบฐโ€‹ VLIW.

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

ะ’ เบชเบฐเบšเบฑเบšเปƒเบซเบกเปˆ:

  • เป€เบžเบตเปˆเบกเบเบฒเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™ LLVM/Clang 9.0. เบเบฒเบ™โ€‹เบชเบฐโ€‹เบซเบ™เบฑเบšโ€‹เบชเบฐโ€‹เบซเบ™เบนเบ™โ€‹เบชเปเบฒโ€‹เบฅเบฑเบš LLVM เบชเบฐโ€‹เบšเบฑเบšโ€‹เป€เบเบปเปˆเบฒโ€‹เบโ€‹เปˆโ€‹เบงเบฒ 6.0 เป„เบ”เป‰โ€‹เบ–เบทเบโ€‹เบขเบธเบ”โ€‹เป€เบŠเบปเบฒโ€‹เบเบฒเบ™โ€‹.
  • เบ›เบฑเบšเบ›เบธเบ‡เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบ—เบตเปˆเบญเบตเบ‡เปƒเบชเปˆ CPU เบ‚เบญเบ‡เบเบฒเบ™เป€เบ›เบฑเบ™เบ•เบปเบงเปเบ—เบ™เบฅเบฐเบซเบฑเบ”เบฅเบฐเบ”เบฑเบšเบ›เบฒเบ™เบเบฒเบ‡ SPIR ะธ SPIR-V (เปƒเบŠเป‰เปƒเบ™ Vulkan API), เป€เบŠเบดเปˆเบ‡เบชเบฒเบกเบฒเบ”เบ™เปเบฒเปƒเบŠเป‰เบ—เบฑเบ‡เบชเบญเบ‡เป€เบžเบทเปˆเบญเป€เบ›เบฑเบ™เบ•เบปเบงเปเบ—เบ™เบ‚เบญเบ‡ shaders เบชเปเบฒเบฅเบฑเบšเบเบฒเบŸเบดเบเปเบฅเบฐเบชเปเบฒเบฅเบฑเบšเบ„เบญเบกเบžเบดเบงเป€เบ•เบตเป‰เบ‚เบฐเบซเบ™เบฒเบ™;
  • เป€เบžเบตเปˆเบกเป„เบ”เป€เบงเบต pocl-accel เบ—เบตเปˆเบกเบตเป‚เบ„เบ‡เบชเป‰เบฒเบ‡เบžเบทเป‰เบ™เบ–เบฒเบ™เบ•เบปเบงเบขเปˆเบฒเบ‡เป€เบžเบทเปˆเบญเบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™ OpenCL 1.2 เบฎเบฒเบ”เปเบง accelerators เบ—เบตเปˆเบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เป‚เบ•เป‰เบ•เบญเบšเบเบฒเบ™เบ„เบงเบšเบ„เบธเบกเบ—เบตเปˆเบกเบตเปเบœเบ™เบ—เบตเปˆ (mmap);
  • เป€เบžเบตเปˆเบกเบ„เบงเบฒเบกเบชเบฒเบกเบฒเบ”เปƒเบ™เบเบฒเบ™เบชเป‰เบฒเบ‡เบเบฒเบ™เบ•เบดเบ”เบ•เบฑเป‰เบ‡ pocl เบ—เบตเปˆเบšเปเปˆเบ•เบดเบ”เบเบฑเบšเป„เบ”เป€เบฅเบเบฐเบ—เปเบฅเบต (เบชเบฒเบกเบฒเบ”เบเป‰เบฒเบเป„เบ”เป‰).

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

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