ื”ื•ืฆื’ ืžืคืจื˜ OpenCL 3.0

ืงื•ื ืฆืจืŸ Khronos, ื”ืื—ืจืื™ ืœืคื™ืชื•ื— ืžืคืจื˜ื™ ืžืฉืคื—ืช OpenGL, Vulkan ื•-OpenCL, ะพะฑัŠัะฒะธะป ืขืœ ื”ืฉืœืžืช ื”ืคื™ืชื•ื— ืฉืœ ืžืคืจื˜ื™ OpenCL 3.0 ื”ืžื’ื“ื™ืจื™ื ืžืžืฉืงื™ API ื•ื”ืจื—ื‘ื•ืช ืฉืœ ืฉืคืช C ืœืืจื’ื•ืŸ ืžื—ืฉื•ื‘ ืžืงื‘ื™ืœ ื‘ื™ืŸ ืคืœื˜ืคื•ืจืžื•ืช ื‘ืืžืฆืขื•ืช ืžืขื‘ื“ื™ื ืžืจื•ื‘ื™ ืœื™ื‘ื•ืช, GPUs, FPGAs, DSPs ื•ืฉื‘ื‘ื™ื ืžื™ื•ื—ื“ื™ื ืื—ืจื™ื, ืžืืœื” ื”ืžืฉืžืฉื™ื ื‘ืžื—ืฉื‘ื™ ืขืœ ื•ืฉืจืชื™ ืขื ืŸ ืœืฉื‘ื‘ื™ื ืฉื ื™ืชืŸ ืœืžืฆื•ื ื‘ืžื›ืฉื™ืจื™ื ื ื™ื™ื“ื™ื ื•ื‘ื˜ื›ื ื•ืœื•ื’ื™ื” ืžืฉื•ื‘ืฆืช. ืชืงืŸ OpenCL ืคืชื•ื— ืœื—ืœื•ื˜ื™ืŸ ื•ืื™ื ื• ืžืฆืจื™ืš ื“ืžื™ ืจื™ืฉื•ื™. ื‘ืขื‘ื•ื“ืช ื”ืชืงืŸ ื”ืฉืชืชืคื• ื—ื‘ืจื•ืช ื›ืžื• IBM, NVIDIA, Intel, AMD, Apple, ARM, Electronic Arts, Qualcomm, Texas Instruments ื•-Toshiba.

ื‘ืฉืœื‘ ื”ื ื•ื›ื—ื™, ื”ืžืคืจื˜ ืงื™ื‘ืœ ืžืขืžื“ ื–ืžื ื™, ืžื” ืฉืžืจืžื– ืขืœ ืืคืฉืจื•ืช ื—ื™ื“ื•ื“ ื‘ื”ืชื‘ืกืก ืขืœ ืžืฉื•ื‘ ืฉื ืฉืœื— ื‘ืืžืฆืขื•ืช GitHub. ืœืื—ืจ ืฉื ืœืงื—ื• ื‘ื—ืฉื‘ื•ืŸ ื”ื”ืขืจื•ืช, ื”ืžืคืจื˜ ื™ืกืชื™ื™ื ื•ืชืคื•ืจืกื ื—ื‘ื™ืœืช ื‘ื“ื™ืงื•ืช ืกื•ืคื™ืช ืœื‘ื“ื™ืงืช ื”ืชืื™ืžื•ืช ืฉืœ ื™ื™ืฉื•ืžื™ื ืงื™ื™ืžื™ื.

ื”ื•ืฆื’ ืžืคืจื˜ OpenCL 3.0

ื”ื›ื™ ื‘ื•ืœื˜ ืชื›ื•ื ื•ืช OpenCL 3.0:

  • ื”-API ืฉืœ OpenCL 3.0 ืžื›ืกื” ื›ืขืช ืืช ื›ืœ ื”ื’ืจืกืื•ืช ืฉืœ OpenCL (1.2, 2.x), ืžื‘ืœื™ ืœืกืคืง ืžืคืจื˜ ื ืคืจื“ ืœื›ืœ ื’ืจืกื”. OpenCL 3.0 ืžืกืคืง ืืช ื”ื™ื›ื•ืœืช ืœื”ืจื—ื™ื‘ ืืช ืคื•ื ืงืฆื™ื•ื ืœื™ื•ืช ื”ืœื™ื‘ื” ื‘ืืžืฆืขื•ืช ืฉื™ืœื•ื‘ ืฉืœ ืžืคืจื˜ื™ื ื ื•ืกืคื™ื ืฉื™ื”ื™ื• ืžืจื•ื‘ื“ื™ื ื‘ืฆื•ืจื” ืฉืœ ืืคืฉืจื•ื™ื•ืช ืžื‘ืœื™ ืœื—ืกื•ื ืืช ื”ืื•ืคื™ ื”ืžื•ื ื•ืœื™ื˜ื™ ืฉืœ OpenCL 1.2/2.X.
  • ืจืง ืคื•ื ืงืฆื™ื•ื ืœื™ื•ืช ื”ืชื•ืืžืช ืœ-OpenCL 1.2 ืžื•ื›ืจื–ืช ื›ื—ื•ื‘ื”, ื•ื›ืœ ื”ืชื›ื•ื ื•ืช ื”ืžื•ืฆืขื•ืช ื‘ืžืคืจื˜ื™ OpenCL 2.x ืžืกื•ื•ื’ื™ื ื›ืื•ืคืฆื™ื•ื ืœื™ื™ื. ื’ื™ืฉื” ื–ื• ืชืงืœ ืขืœ ื™ืฆื™ืจืช ื™ื™ืฉื•ืžื™ื ืžื•ืชืืžื™ื ืื™ืฉื™ืช ื”ืชื•ืืžื™ื ืœ-OpenCL 3.0, ื•ืชืจื—ื™ื‘ ืืช ืžื’ื•ื•ืŸ ื”ืžื›ืฉื™ืจื™ื ื‘ื”ื ื ื™ืชืŸ ืœื”ืฉืชืžืฉ ื‘-OpenCL 3.0. ืœื“ื•ื’ืžื”, ื™ืฆืจื ื™ื ื™ื›ื•ืœื™ื ืœื™ื™ืฉื ืชืžื™ื›ื” ื‘-OpenCL 3.0 ืžื‘ืœื™ ืœื™ื™ืฉื ืชื›ื•ื ื•ืช ืกืคืฆื™ืคื™ื•ืช ืฉืœ OpenCL 2.x. ื›ื“ื™ ืœื’ืฉืช ืœืชื›ื•ื ื•ืช ืฉืคื” ืื•ืคืฆื™ื•ื ืœื™ื•ืช, OpenCL 3.0 ื”ื•ืกื™ืคื” ืžืขืจื›ืช ืฉืœ ืฉืื™ืœืชื•ืช ื‘ื“ื™ืงื” ื”ืžืืคืฉืจืช ืœืš ืœื”ืขืจื™ืš ืืช ื”ืชืžื™ื›ื” ืฉืœ ืจื›ื™ื‘ื™ API ื‘ื•ื“ื“ื™ื, ื›ืžื• ื’ื ืคืงื•ื“ื•ืช ืžืืงืจื• ืžื™ื•ื—ื“ื•ืช.
  • ืื™ื—ื•ื“ ืขื ืžืคืจื˜ื™ื ืฉืคื•ืจืกืžื• ื‘ืขื‘ืจ ืžืงืœ ืขืœ ื”ืขื‘ืจืช ื™ื™ืฉื•ืžื™ื ืœ-OpenCL 3.0. ื™ื™ืฉื•ืžื™ OpenCL 1.2 ื™ื•ื›ืœื• ืœืคืขื•ืœ ื‘ืžื›ืฉื™ืจื™ื ื”ืชื•ืžื›ื™ื ื‘-OpenCL 3.0 ืœืœื ืฉื™ื ื•ื™. ื™ื™ืฉื•ืžื™ OpenCL 2.x ื’ื ืœื ื™ื“ืจืฉื• ืฉื™ื ื•ื™ื™ ืงื•ื“, ื›ืœ ืขื•ื“ ืกื‘ื™ื‘ืช OpenCL 3.0 ืžืกืคืงืช ืืช ื”ืคื•ื ืงืฆื™ื•ื ืœื™ื•ืช ื”ื ื“ืจืฉืช (ื›ื“ื™ ืœื”ื‘ื˜ื™ื— ื ื™ื™ื“ื•ืช ืขืชื™ื“ื™ืช, ืžื•ืžืœืฅ ืœื™ื™ืฉื•ืžื™ OpenCL 2.x ืœื”ื•ืกื™ืฃ ืฉืื™ืœืชื•ืช ื‘ื“ื™ืงื” ื›ื“ื™ ืœื”ืขืจื™ืš ืชืžื™ื›ื” ื‘ืชื›ื•ื ื•ืช OpenCL 2.x ืžืฉื•ืžืฉ). ืžืคืชื—ื™ ืžื ื”ืœื™ ื”ืชืงื ื™ื ืขื ื™ื™ืฉื•ืžื™ OpenCL ื™ื›ื•ืœื™ื ืœืฉื“ืจื’ ื‘ืงืœื•ืช ืืช ื”ืžื•ืฆืจื™ื ืฉืœื”ื ืœ-OpenCL 3.0, ืœื”ื•ืกื™ืฃ ืจืง ืขื™ื‘ื•ื“ ืฉืื™ืœืชื•ืช ืขื‘ื•ืจ ืงืจื™ืื•ืช API ืžืกื•ื™ืžื•ืช, ื•ืœื”ื’ื“ื™ืœ ื‘ื”ื“ืจื’ื” ืืช ื”ืคื•ื ืงืฆื™ื•ื ืœื™ื•ืช ืœืื•ืจืš ื–ืžืŸ.
  • ืžืคืจื˜ OpenCL 3.0 ืžื•ืชืื ืœืกื‘ื™ื‘ื”, ืœื”ืจื—ื‘ื•ืช ื•ืœืžืคืจื˜ื™ื ืฉืœ ื™ื™ืฆื•ื’ ื”ื‘ื™ื ื™ื™ื ื”ื’ื ืจื™ SPIR-V, ื”ืžืฉืžืฉ ื’ื ืืช ื”-API ืฉืœ Vulkan. ืชืžื™ื›ื” ื‘ืžืคืจื˜ SPIR-V 1.3 ื›ืœื•ืœื” ื‘-OpenCL 3.0 ื”ืœื™ื‘ื” ื›ืชื›ื•ื ื” ืื•ืคืฆื™ื•ื ืœื™ืช. ื‘ืืžืฆืขื•ืช ืฉื™ืžื•ืฉ ื‘ื™ื™ืฆื•ื’ ื‘ื™ื ื™ื™ื SPIR-V ื ื•ืกืคื” ืชืžื™ื›ื” ื‘ืคืขื•ืœื•ืช ืขื ืชืช-ืงื‘ื•ืฆื•ืช ืขื‘ื•ืจ ืœื™ื‘ื•ืช ืžื—ืฉื•ื‘.
    ื”ื•ืฆื’ ืžืคืจื˜ OpenCL 3.0

  • ื ื•ืกืคื” ืชืžื™ื›ื” ื‘ื”ืจื—ื‘ื” ืœื‘ื™ืฆื•ืข ืคืขื•ืœื•ืช DMA ืืกื™ื ื›ืจื•ื ื™ื•ืช (Asynchronous DMA), ื ืชืžื›ืช ื‘ืฉื‘ื‘ื™ื ื“ืžื•ื™ื™ DSP ืขื ื’ื™ืฉื” ื™ืฉื™ืจื” ืœื–ื™ื›ืจื•ืŸ. DMA ืืกื™ื ื›ืจื•ื ื™ ืžืืคืฉืจ ืœื”ืฉืชืžืฉ ื‘ื˜ืจื ื–ืงืฆื™ื•ืช DMA ืœื”ืขื‘ืจืช ื ืชื•ื ื™ื ื‘ื™ืŸ ื–ื™ื›ืจื•ืŸ ื’ืœื•ื‘ืœื™ ืœืžืงื•ืžื™ ื‘ืื•ืคืŸ ืืกื™ื ื›ืจื•ื ื™, ื‘ืžืงื‘ื™ืœ ืœื—ื™ืฉื•ื‘ื™ื ืื• ืคืขื•ืœื•ืช ื”ืขื‘ืจืช ื ืชื•ื ื™ื ืื—ืจื•ืช.
  • ืžืคืจื˜ C Parallel Programming Extensions ืขื•ื“ื›ืŸ ืœ- ื’ืจืกื” 3.0, ื•ื”ืคื™ืชื•ื— ืฉืœ ื”ืจื—ื‘ื•ืช ืฉืคื•ืช OpenCL ืขื‘ื•ืจ C++ ื”ื•ืคืกืง ืœื˜ื•ื‘ืช ืคืจื•ื™ืงื˜ "C++ for OpenCL". C++ ืขื‘ื•ืจ OpenCL ื”ื•ื ืžื”ื“ืจ ื”ืžื‘ื•ืกืก ืขืœ Clang/LLVM ื• ืฉื™ื“ื•ืจ ืœื™ื‘ื•ืช C++ ื•-OpenCL C ืœื™ื™ืฆื•ื’ ื‘ื™ื ื™ื™ื SPIR-V ืื• ืงื•ื“ ืžื›ื•ื ื” ื‘ืจืžื” ื ืžื•ื›ื”. ื‘ืืžืฆืขื•ืช ืฉื™ื“ื•ืจ, SPIR-V ืžืืจื’ืŸ ื’ื ืืช ื”ื”ืจื›ื‘ื” ืฉืœ ื™ื™ืฉื•ืžื™ C++ ื‘ืืžืฆืขื•ืช ืกืคืจื™ื™ืช ื”ืชื‘ื ื™ื•ืช SYCL, ืžื” ืฉืžืคืฉื˜ ืืช ื”ื™ืฆื™ืจื” ืฉืœ ื™ื™ืฉื•ืžื™ื ืžืงื‘ื™ืœื™ื.

    ื”ื•ืฆื’ ืžืคืจื˜ OpenCL 3.0

  • ืžื”ื“ืจ ื”ื•ืฆืข ืœืฉื™ื“ื•ืจ OpenCL ื“ืจืš ื”-API ืฉืœ Vulkan clspv, ื”ืžืžื™ืจ ืœื™ื‘ื•ืช OpenCL ืœื™ื™ืฆื•ื’ Vulkan SPIR-V, ื•ืฉื›ื‘ื” clvk ื›ื“ื™ ืœืืคืฉืจ ืœ- OpenCL API ืœืขื‘ื•ื“ ืขืœ ื’ื‘ื™ Vulkan.

    ื”ื•ืฆื’ ืžืคืจื˜ OpenCL 3.0

ืžืงื•ืจ: OpenNet.ru

ื”ื•ืกืคืช ืชื’ื•ื‘ื”