αž€αžΆαžšαž”αž‰αŸ’αž‡αžΆαž€αŸ‹αž…αž»αž„αž€αŸ’αžšαŸ„αž™αžšαž”αžŸαŸ‹ OpenCL 3.0 αžαŸ’αžšαžΌαžœαž”αžΆαž“αž…αŸαž‰αž•αŸ’αžŸαžΆαž™

αž€αž„αŸ’αžœαž›αŸ‹ Khronos αžŠαŸ‚αž›αž‘αž‘αž½αž›αžαž»αžŸαžαŸ’αžšαžΌαžœαž€αŸ’αž“αž»αž„αž€αžΆαžšαž’αž—αž·αžœαžŒαŸ’αžαž“αŸαž›αž€αŸ’αžαžŽαŸˆαž‚αŸ’αžšαž½αžŸαžΆαžš OpenGL, Vulkan αž“αž·αž„ OpenCL αŸ” αž”αžΆαž“αž”αŸ’αžšαž€αžΆαžŸ αž“αŸ…αž›αžΎαž€αžΆαžšαž”αŸ„αŸ‡αž–αž»αž˜αŸ’αž–αž•αŸ’αžŸαžΆαž™αž“αŸƒαž›αž€αŸ’αžαžŽαŸˆαž”αž…αŸ’αž…αŸαž€αž‘αŸαžŸαž…αž»αž„αž€αŸ’αžšαŸ„αž™ OpenCL 3.0αž€αŸ†αžŽαžαŸ‹ APIs αž“αž·αž„αž•αŸ’αž“αŸ‚αž€αž”αž“αŸ’αžαŸ‚αž˜αž“αŸƒαž—αžΆαžŸαžΆ C αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αžšαŸ€αž”αž…αŸ†αž€αž»αŸ†αž–αŸ’αž™αžΌαž‘αŸαžšαž”αŸ‰αžΆαžšαŸ‰αžΆαž‘αŸ‚αž›αž†αŸ’αž›αž„αžœαŸαž‘αž·αž€αžΆαžŠαŸ„αž™αž”αŸ’αžšαžΎαžŸαŸŠαžΈαž—αžΈαž™αžΌαž–αž αž»αžŸαŸ’αž“αžΌαž› GPUs FPGAs DSPs αž“αž·αž„αž”αž“αŸ’αž‘αŸ‡αžˆαžΈαž”αž―αž€αž‘αŸαžŸαž•αŸ’αžŸαŸαž„αž‘αŸ€αž αž–αžΈαž€αž»αŸ†αž–αŸ’αž™αžΌαž‘αŸαžšαžŠαŸ‚αž›αž”αŸ’αžšαžΎαž€αŸ’αž“αž»αž„ supercomputers αž“αž·αž„ cloud servers αž‘αŸ… chip αžŠαŸ‚αž›αž’αžΆαž…αžαŸ’αžšαžΌαžœαž”αžΆαž“αžšαž€αžƒαžΎαž‰αž“αŸ…αž€αŸ’αž“αž»αž„αž§αž”αž€αžšαžŽαŸαž…αž›αŸαž αž“αž·αž„ αž”αž…αŸ’αž…αŸαž€αžœαž·αž‘αŸ’αž™αžΆαžŠαŸ‚αž›αž—αŸ’αž‡αžΆαž”αŸ‹αž˜αž€αž‡αžΆαž˜αž½αž™αŸ” αžŸαŸ’αžαž„αŸ‹αžŠαžΆαžš OpenCL αž‚αžΊαž”αžΎαž€αž…αŸ†αž αž‘αžΆαŸ†αž„αžŸαŸ’αžšαž»αž„ αž αžΎαž™αž˜αž·αž“αž‘αžΆαž˜αž‘αžΆαžšαžαŸ’αž›αŸƒαž’αžΆαž‡αŸ’αž‰αžΆαž”αŸαžŽαŸ’αžŽαž‘αŸαŸ”

αž€αŸ’αž“αž»αž„αž–αŸαž›αžŠαŸ†αžŽαžΆαž›αž‚αŸ’αž“αžΆ αž”αžΆαž“αž•αŸ’αžŸαž–αŸ’αžœαž•αŸ’αžŸαžΆαž™αŸ” αž”αžΎαž€ OpenCL SDK αž‡αžΆαž˜αž½αž™αž§αž”αž€αžšαžŽαŸ αž§αž‘αžΆαž αžšαžŽαŸ αž―αž€αžŸαžΆαžš αž―αž€αžŸαžΆαžšαž”αž‹αž˜αž€αžαžΆ αž€αžΆαžšαž…αž„ C++ αž“αž·αž„αž”αžŽαŸ’αžŽαžΆαž›αŸαž™ C αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž”αž„αŸ’αž€αžΎαžαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαžŠαŸ‚αž›αžαŸ’αžšαžΌαžœαž‚αŸ’αž“αžΆαž‡αžΆαž˜αž½αž™ OpenCL 3.0 αŸ” αž•αž„αžŠαŸ‚αžšαŸ” αž”αž„αŸ’αž αžΆαž‰ αž€αžΆαžšαž’αž“αž»αžœαžαŸ’αžαžŠαŸ†αž”αžΌαž„αž“αŸƒ OpenCL 3.0 αžŠαŸ„αž™αž•αŸ’αž’αŸ‚αž€αž›αžΎ Clang compiler αžŠαŸ‚αž›αžŸαŸ’αžαž·αžαž€αŸ’αž“αž»αž„αžŠαŸ†αžŽαžΆαž€αŸ‹αž€αžΆαž›αž“αŸƒαž€αžΆαžšαž–αž·αž“αž·αžαŸ’αž™αž‘αžΎαž„αžœαž·αž‰αž“αžΌαžœαž”αŸ†αžŽαŸ‡αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αžŠαžΆαž€αŸ‹αž”αž‰αŸ’αž…αžΌαž›αž€αŸ’αž“αž»αž„αžšαž…αž“αžΆαžŸαž˜αŸ’αž–αŸαž“αŸ’αž’αžŸαŸ†αžαžΆαž“αŸ‹αž“αŸƒ LLVM αŸ” αž€αŸ’αžšαž»αž˜αž αŸŠαž»αž“αžŠαžΌαž…αž‡αžΆ IBM, NVIDIA, Intel, AMD, Apple, ARM, Electronic Arts, Qualcomm, Texas Instruments αž“αž·αž„ Toshiba αž”αžΆαž“αž…αžΌαž›αžšαž½αž˜αž€αŸ’αž“αž»αž„αž€αžΆαžšαž„αžΆαžšαž›αžΎαžŸαŸ’αžαž„αŸ‹αžŠαžΆαžšαž“αŸαŸ‡αŸ”

αž€αžΆαžšαž”αž‰αŸ’αž‡αžΆαž€αŸ‹αž…αž»αž„αž€αŸ’αžšαŸ„αž™αžšαž”αžŸαŸ‹ OpenCL 3.0 αžαŸ’αžšαžΌαžœαž”αžΆαž“αž…αŸαž‰αž•αŸ’αžŸαžΆαž™

αž‚αž½αžšαž±αŸ’αž™αž€αžαŸ‹αžŸαž˜αŸ’αž‚αžΆαž›αŸ‹αž”αŸ†αž•αž»αžαŸ” αž›αž€αŸ’αžαžŽαŸˆαž–αž·αžŸαŸαžŸ OpenCL 3.0:

  • OpenCL 3.0 API αž₯αž‘αžΌαžœαž“αŸαŸ‡αž‚αŸ’αžšαž”αžŠαžŽαŸ’αžαž”αŸ‹αž‚αŸ’αžšαž”αŸ‹αž€αŸ†αžŽαŸ‚αž‘αžΆαŸ†αž„αž’αžŸαŸ‹αžšαž”αžŸαŸ‹ OpenCL (1.2, 2.x) αžŠαŸ„αž™αž˜αž·αž“αž•αŸ’αžαž›αŸ‹αž“αžΌαžœαž›αž€αŸ’αžαžŽαŸˆαž‡αžΆαž€αŸ‹αž›αžΆαž€αŸ‹αžŠαžΆαž…αŸ‹αžŠαŸ„αž™αž‘αŸ‚αž€αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αŸ†αžŽαŸ‚αž“αžΈαž˜αž½αž™αŸ—αŸ” OpenCL 3.0 αž•αŸ’αžαž›αŸ‹αž“αžΌαžœαžŸαž˜αžαŸ’αžαž—αžΆαž–αž€αŸ’αž“αž»αž„αž€αžΆαžšαž–αž„αŸ’αžšαžΈαž€αž˜αž»αžαž„αžΆαžšαžŸαŸ’αž“αžΌαž›αžαžΆαž˜αžšαž™αŸˆαž€αžΆαžšαžšαž½αž˜αž”αž‰αŸ’αž…αžΌαž›αž“αŸƒαž€αžΆαžšαž”αž‰αŸ’αž‡αžΆαž€αŸ‹αž”αž“αŸ’αžαŸ‚αž˜αžŠαŸ‚αž›αž“αžΉαž„αžαŸ’αžšαžΌαžœαž”αžΆαž“αžŸαŸ’αžšαž‘αžΆαž”αŸ‹αž€αŸ’αž“αž»αž„αž‘αž˜αŸ’αžšαž„αŸ‹αž“αŸƒαž‡αž˜αŸ’αžšαžΎαžŸαžŠαŸ„αž™αž˜αž·αž“αž‘αž”αŸ‹αžŸαŸ’αž€αžΆαžαŸ‹αž›αž€αŸ’αžαžŽαŸˆ monolithic αž“αŸƒ 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 αžŠαŸ‚αž›αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αŸ’αžšαžΎαžŠαŸ„αž™ Vulkan API αž•αž„αžŠαŸ‚αžšαŸ” αž€αžΆαžšαž‚αžΆαŸ†αž‘αŸ’αžšαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαž”αž‰αŸ’αž‡αžΆαž€αŸ‹ SPIR-V 1.3 αžαŸ’αžšαžΌαžœαž”αžΆαž“αžšαž½αž˜αž”αž‰αŸ’αž…αžΌαž›αž“αŸ…αž€αŸ’αž“αž»αž„αžŸαŸ’αž“αžΌαž› OpenCL 3.0 αž‡αžΆαž›αž€αŸ’αžαžŽαŸˆαž–αž·αžŸαŸαžŸαžŸαŸ’αžšαŸαž…αž…αž·αžαŸ’αžαŸ” αžαžΆαž˜αžšαž™αŸˆαž€αžΆαžšαž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αžαŸ†αžŽαžΆαž„αž€αž˜αŸ’αžšαž·αžαž˜αž’αŸ’αž™αž˜ SPIR-V αž€αžΆαžšαž‚αžΆαŸ†αž‘αŸ’αžšαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžΆαžšαž‡αžΆαž˜αž½αž™αž€αŸ’αžšαž»αž˜αžšαž„αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αž“αŸ’αžαŸ‚αž˜αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αžŸαŸ’αž“αžΌαž›αž€αž»αŸ†αž–αŸ’αž™αžΌαž‘αŸαžšαŸ”
    αž€αžΆαžšαž”αž‰αŸ’αž‡αžΆαž€αŸ‹αž…αž»αž„αž€αŸ’αžšαŸ„αž™αžšαž”αžŸαŸ‹ OpenCL 3.0 αžαŸ’αžšαžΌαžœαž”αžΆαž“αž…αŸαž‰αž•αŸ’αžŸαžΆαž™

  • αž”αžΆαž“αž”αž“αŸ’αžαŸ‚αž˜αž€αžΆαžšαž‚αžΆαŸ†αž‘αŸ’αžšαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž•αŸ’αž“αŸ‚αž€αž”αž“αŸ’αžαŸ‚αž˜αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžΆαžš DMA αž’αžŸαž˜αž€αžΆαž› (Asynchronous DMA) αžŠαŸ‚αž›αž‚αžΆαŸ†αž‘αŸ’αžšαž“αŸ…αž€αŸ’αž“αž»αž„αž”αž“αŸ’αž‘αŸ‡αžˆαžΈαž”αžŠαžΌαž… DSP αž‡αžΆαž˜αž½αž™αž“αžΉαž„αž€αžΆαžšαž…αžΌαž›αž”αŸ’αžšαžΎαž’αž„αŸ’αž‚αž…αž„αž…αžΆαŸ†αžŠαŸ„αž™αž•αŸ’αž‘αžΆαž›αŸ‹αŸ” Asynchronous 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 αžαžΆαž˜αžšαž™αŸˆ Vulkan API clspvαžŠαŸ‚αž›αž”αŸ†αž”αŸ’αž›αŸ‚αž„αžαžΊαžŽαŸ‚αž› OpenCL αž‘αŸ…αž‡αžΆαžαŸ†αžŽαžΆαž„ Vulkan SPIR-V αž“αž·αž„αžŸαŸ’αžšαž‘αžΆαž”αŸ‹αž˜αž½αž™αŸ” clvk αžŠαžΎαž˜αŸ’αž”αžΈαž”αžΎαž€αžŠαŸ†αžŽαžΎαžšαž€αžΆαžš OpenCL API αžŠαžΎαž˜αŸ’αž”αžΈαžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž›αžΎ Vulkan αŸ”

    αž€αžΆαžšαž”αž‰αŸ’αž‡αžΆαž€αŸ‹αž…αž»αž„αž€αŸ’αžšαŸ„αž™αžšαž”αžŸαŸ‹ OpenCL 3.0 αžαŸ’αžšαžΌαžœαž”αžΆαž“αž…αŸαž‰αž•αŸ’αžŸαžΆαž™

αž”αŸ’αžšαž—αž–: opennet.ru

αž”αž“αŸ’αžαŸ‚αž˜αž˜αžαž·αž™αŸ„αž”αž›αŸ‹