OpenCL 3.0 ื‘ืึทืฉืจื™ื™ึทื‘ื•ื ื’ ื‘ืึทืงืขื ืขื 

ื“ื™ ื›ืจืึธื ืึธืก ื“ื™ื™ึทื’ืข, ืคืึทืจืึทื ื˜ื•ื•ืึธืจื˜ืœืขืš ืคึฟืึทืจ ื“ืขื•ื•ืขืœืึธืคึผื™ื ื’ ื“ื™ ืกืคึผืขืกืึทืคืึทืงื™ื™ืฉืึทื ื– ืคื•ืŸ ื“ื™ OpenGL, Vulkan ืื•ืŸ OpenCL ืžืฉืคึผื—ื”, ืžื•ื“ื™ืข ืื•ื™ืฃ ื“ื™ ืงืึทืžืคึผืœื™ืฉืึทืŸ ืคื•ืŸ ื“ื™ ืึทื ื˜ื•ื•ื™ืงืœื•ื ื’ ืคื•ืŸ OpenCL 3.0 ืกืคึผืขืกืึทืคืึทืงื™ื™ืฉืึทื ื– ื•ื•ืึธืก ื“ืขืคื™ื ื™ืจืŸ ืึทืคึผื™ืก ืื•ืŸ ื™ืงืกื˜ืขื ืฉืึทื ื– ืคื•ืŸ ื“ื™ C ืฉืคึผืจืึทืš ืคึฟืึทืจ ืึธืจื’ืึทื ื™ื™ื–ื™ื ื’ ืงืจื™ื™ึทื–-ืคึผืœืึทื˜ืคืึธืจืžืข ืคึผืึทืจืึทืœืขืœ ืงืึทืžืคึผื™ื•ื˜ื™ื ื’ ื ื™ืฆืŸ ืžื•ืœื˜ื™-ื”ืึทืจืฅ ืงืคึผื•ืก, ื’ืคึผื•ืก, FPGAs, DSPs ืื•ืŸ ืื ื“ืขืจืข ืกืคึผืขืฉืึทืœื™ื™ื–ื“ ื˜ืฉื™ืคึผืก, ืคึฟื•ืŸ ื™ืขื ืข ื’ืขื ื™ืฆื˜ ืื™ืŸ ืกื•ืคึผืขืจืงืึทืžืคึผื™ื•ื˜ืขืจื– ืื•ืŸ ื•ื•ืึธืœืงืŸ ืกืขืจื•ื•ืขืจืก ืฆื• ื˜ืฉื™ืคึผืก ื•ื•ืึธืก ืงืขื ืขืŸ ื–ื™ื™ืŸ ื’ืขืคึฟื•ื ืขืŸ ืื™ืŸ ืจื™ืจืขื•ื•ื“ื™ืง ื“ืขื•ื•ื™ืกืขืก ืื•ืŸ ืขืžื‘ืขื“ื™ื“ ื˜ืขื›ื ืึธืœืึธื’ื™ืข. ื“ื™ OpenCL ืกื˜ืึทื ื“ืึทืจื˜ ืื™ื– ื’ืึธืจ ืึธืคึฟืŸ ืื•ืŸ ื˜ื•ื˜ ื ื™ืฉื˜ ื“ืึทืจืคืŸ ื“ืขืจืœื•ื™ื‘ืขื ื™ืฉ ืคื™ื–. ืงืึธืžืคึผืึทื ื™ืขืก ืึทื–ืึท ื•ื•ื™ ื™ื‘ื, ื ื•ื•ื™ื“ื™ืึท, ื™ื ื˜ืขืœ, ืึทืžื“, ืขืคึผืœ, ARM, ืขืœืขืงื˜ืจืึธื ื™ืง Arts, ืงื•ื•ืึทืœืงืึทื, ื˜ืขืงืกืึทืก ื™ื ืกื˜ืจื•ืžืขื ืฅ ืื•ืŸ ื˜ืึธืฉื™ื‘ืึท ื”ืึธื‘ืŸ ืึธื ื˜ื™ื™ืœ ื’ืขื ื•ืžืขืŸ ืื™ืŸ ื“ื™ ืึทืจื‘ืขื˜ ืื•ื™ืฃ ื“ืขื ื ืึธืจืžืึทืœ.

ืื™ืŸ ื“ืขื ืงืจืึทื ื˜ ื‘ื™ื ืข, ื“ื™ ืกืคึผืขืกื™ืคื™ืงืึทื˜ื™ืึธืŸ ืื™ื– ืึทืกื™ื™ื ื“ ืึท ื“ืขืจื•ื•ื™ื™ึทืœื™ืง ืกื˜ืึทื˜ื•ืก, ื•ื•ืึธืก ื™ืžืคึผืœื™ื™ื– ื“ื™ ืžืขื’ืœืขื›ืงื™ื™ื˜ ืคื•ืŸ ืจืึทืคื™ื ื™ืจื˜ืงื™ื™ึทื˜ ื‘ืื–ื™ืจื˜ ืื•ื™ืฃ ื‘ืึทืžืขืจืงื•ื ื’ืขืŸ ื’ืขืฉื™ืงื˜ ื“ื•ืจืš ื’ื™ื˜ื”ื•ื‘. ืึทืžืึธืœ ื“ื™ ื‘ืึทืžืขืจืงื•ื ื’ืขืŸ ื–ืขื ืขืŸ ื’ืขื ื•ืžืขืŸ ืื™ืŸ ื—ืฉื‘ื•ืŸ, ื“ื™ ื‘ืึทืฉืจื™ื™ึทื‘ื•ื ื’ ื•ื•ืขื˜ ื–ื™ื™ืŸ ืคื™ื™ื ืึทืœื™ื™ื–ื“ ืื•ืŸ ืึท ืœืขืฆื˜ ืคึผืจื•ื‘ื™ืจืŸ ืกื•ื•ื™ื˜ ื•ื•ืขื˜ ื–ื™ื™ืŸ ืืจื•ื™ืก ืฆื• ืคึผืจื•ื‘ื™ืจืŸ ื“ื™ ืงืึทืžืคึผืึทื˜ืึทื‘ื™ืœืึทื˜ื™ ืคื•ืŸ ื™ื’ื–ื™ืกื˜ื™ื ื’ ื™ืžืคึผืœืึทืžืึทื ืฅ.

OpenCL 3.0 ื‘ืึทืฉืจื™ื™ึทื‘ื•ื ื’ ื‘ืึทืงืขื ืขื 

ืžืขืจืกื˜ ื ืึธื•ื˜ืึทื‘ืึทืœ ืคึฟืขื™ึดืงื™ื™ื˜ืŸ OpenCL 3.0:

  • ื“ื™ OpenCL 3.0 API ืงืึธื•ื•ืขืจืก ืื™ืฆื˜ ืึทืœืข ื•ื•ืขืจืกื™ืขืก ืคื•ืŸ 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 ื”ืื˜ ืฆื•ื’ืขืœื™ื™ื’ื˜ ืึท ืกื™ืกื˜ืขื ืคื•ืŸ ืคึผืจื•ื‘ื™ืจืŸ ืคึฟืจืื’ืŸ ื•ื•ืึธืก ืึทืœืึทื•ื– ืื™ืจ ืฆื• ืึธืคึผืฉืึทืฆืŸ ื“ื™ ืฉื˜ื™ืฆืŸ ืคื•ืŸ ื™ื—ื™ื“ ืึทืคึผื™ ืขืœืขืžืขื ื˜ืŸ, ื•ื•ื™ ืื•ื™ืš ืกืคึผืขืฆื™ืขืœ ืžืึทืงืจืึธืก.
  • ื™ื•ื ืึทืคืึทืงื™ื™ืฉืึทืŸ ืžื™ื˜ ืคืจื™ืขืจ ืจืขืœืขืึทืกืขื“ ืกืคึผืขืกืึทืคืึทืงื™ื™ืฉืึทื ื– ืžืื›ื˜ ืขืก ื’ืจื™ื ื’ืขืจ ืฆื• ืžื™ื™ื’ืจื™ื™ื˜ ืึทืคึผืœืึทืงื™ื™ืฉืึทื ื– ืฆื• 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, ืึทื“ื™ื ื’ ื‘ืœื•ื™ื– ืึธื ืคึฟืจืขื’ ืคึผืจืึทืกืขืกื™ื ื’ ืคึฟืึทืจ ื–ื™ื›ืขืจ ืึทืคึผื™ ืงืึทืœืœืก, ืื•ืŸ ื‘ื™ืกืœืขื›ื•ื•ื™ื™ึทื– ืคืึทืจื’ืจืขืกืขืจืŸ ืคืึทื ื’ืงืฉืึทื ืึทืœื™ื˜ื™ ืื™ื‘ืขืจ ืฆื™ื™ึทื˜.
  • ื“ื™ OpenCL 3.0 ื‘ืึทืฉืจื™ื™ึทื‘ื•ื ื’ ืื™ื– ืึทืœื™ื™ื ื“ ืžื™ื˜ ื“ื™ ืกื•ื•ื™ื•ื•ืข, ื™ืงืกื˜ืขื ืฉืึทื ื– ืื•ืŸ ืกืคึผืขืกืึทืคืึทืงื™ื™ืฉืึทื ื– ืคื•ืŸ ื“ื™ SPIR-V ื“ื–ืฉืึทื ืขืจื™ืง ื™ื ื˜ืขืจืžื™ื“ื™ื™ื˜ ืคืึทืจื˜ืจืขื˜ื•ื ื’, ื•ื•ืึธืก ืื™ื– ืื•ื™ืš ื’ืขื ื™ืฆื˜ ื“ื•ืจืš ื“ื™ Vulkan API. ืฉื˜ื™ืฆืŸ ืคึฟืึทืจ ื“ื™ SPIR-V 1.3 ื‘ืึทืฉืจื™ื™ึทื‘ื•ื ื’ ืื™ื– ืึทืจื™ื™ึทื ื’ืขืจืขื›ื ื˜ ืื™ืŸ ื“ื™ ื”ืึทืจืฅ OpenCL 3.0 ื•ื•ื™ ืึท ืึทืคึผืฉืึทื ืึทืœ ืฉื˜ืจื™ืš. ื“ื•ืจืš ื“ื™ ื ื•ืฆืŸ ืคื•ืŸ ืึท ื™ื ื˜ืขืจืžื™ื“ื™ื™ื˜ ืคืึทืจื˜ืจืขื˜ื•ื ื’ SPIR-V ืฉื˜ื™ืฆืŸ ืคึฟืึทืจ ืึทืคึผืขืจื™ื™ืฉืึทื ื– ืžื™ื˜ ืกืึทื‘ื’ืจื•ืคึผืก ืื™ื– ืฆื•ื’ืขื’ืขื‘ืŸ ืคึฟืึทืจ ืงืึทืžืคึผื™ื•ื˜ื™ื ื’ ืงืึธืจืขืก.
    OpenCL 3.0 ื‘ืึทืฉืจื™ื™ึทื‘ื•ื ื’ ื‘ืึทืงืขื ืขื 

  • ืฆื•ื’ืขื’ืขื‘ืŸ ืฉื˜ื™ืฆืŸ ืคึฟืึทืจ ืึท ืคืึทืจืœืขื ื’ืขืจื•ื ื’ ืคึฟืึทืจ ืคึผืขืจืคืึธืจืžื™ื ื’ ื™ื™ืกื™ื ื’ืงืจืึทื ืึทืก ื“ืžืึท ืึทืคึผืขืจื™ื™ืฉืึทื ื– (ืึทืกื™ื ื˜ืฉืจืึธื ืึธื•ืก ื“ืžืึท), ื’ืขืฉื˜ื™ืฆื˜ ืื™ืŸ ื“ืกืคึผ-ื•ื•ื™ ื˜ืฉื™ืคึผืก ืžื™ื˜ ื“ื™ืจืขืงื˜ ื–ื›ึผืจื•ืŸ ืึทืงืกืขืก. ืึทืกื™ื ื˜ืฉืจืึธื ืึธื•ืก ื“ืžืึท ืžืื›ื˜ ืขืก ืžืขื’ืœืขืš ืฆื• ื ื•ืฆืŸ ื“ืžืึท ื˜ืจืึทื ื–ืึทืงืฉืึทื ื– ืฆื• ืึทืจื™ื‘ืขืจืคื™ืจืŸ ื“ืึทื˜ืŸ ืฆื•ื•ื™ืฉืŸ ื’ืœืื‘ืืœืข ืื•ืŸ ื”ื™ื’ืข ื–ื›ึผืจื•ืŸ ื™ื™ืกื™ื ื’ืงืจืึทื ืึทืกืœื™, ืื™ืŸ ืคึผืึทืจืึทืœืขืœ ืžื™ื˜ ื—ืฉื‘ื•ื ื•ืช ืึธื“ืขืจ ืื ื“ืขืจืข ื“ืึทื˜ืŸ ืึทืจื™ื‘ืขืจืคื™ืจืŸ ืึทืคึผืขืจื™ื™ืฉืึทื ื–.
  • ื“ื™ C ืคึผืึทืจืึทืœืขืœ ืคึผืจืึธื’ืจืึทืžืžื™ื ื’ ืขืงืกื˜ืขื ืกื™ืึธื ืก ื‘ืึทืฉืจื™ื™ึทื‘ื•ื ื’ ืื™ื– ื“ืขืจื”ื™ื™ึทื ื˜ื™ืงื˜ ืฆื• ื•ื•ืขืจืกื™ืข 3.0, ืื•ืŸ ื“ื™ ืึทื ื˜ื•ื•ื™ืงืœื•ื ื’ ืคื•ืŸ OpenCL ืฉืคึผืจืึทืš ื™ืงืกื˜ืขื ืฉืึทื ื– ืคึฟืึทืจ C ++ ืื™ื– ื’ืขื•ื•ืขืŸ ืกื˜ืึทืคึผื˜ ืื™ืŸ ื˜ื•ื™ื•ื•ืข ืคื•ืŸ โ€‹โ€‹ื“ื™ "C ++ ืคึฟืึทืจ 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

ืœื™ื™ื’ืŸ ืึท ื‘ืึทืžืขืจืงื•ื ื’