ื•ื•ืขื‘ื’ืคึผื• ืฉื˜ื™ืฆืŸ ื•ื•ืขื˜ ื–ื™ื™ืŸ ืขื ื™ื™ื‘ืึทืœื“ ืื™ืŸ ืงืจืึธื•ื

Google ื”ืึธื˜ ืึทื ืึทื•ื ืกื˜ ื“ื™ ื™ื ืงืœื•ื–ืฉืึทืŸ ืคื•ืŸ ืคืขืœื™ืงื™ื™ึทื˜ ืฉื˜ื™ืฆืŸ ืคึฟืึทืจ ื“ื™ ื•ื•ืขื‘ื’ืคึผื• ื’ืจืึทืคื™ืงืก ืึทืคึผื™ ืื•ืŸ ื•ื•ื’ืกืœ (ื•ื•ืขื‘ื’ืคึผื• ืฉื™ื™ื“ื™ื ื’ ืฉืคึผืจืึทืš) ืื™ืŸ ืงืจืึธื•ื 113, ื•ื•ืึธืก ืื™ื– ืกืงืขื“ื–ืฉื•ืœื“ ืคึฟืึทืจ ืžืขืœื“ื•ื ื’ ืื•ื™ืฃ ืžืื™ 2. WebGPU ื’ื™ื˜ ืึท ืคึผืจืึธื’ืจืึทืžืžื™ื ื’ ืฆื•ื‘ื™ื ื“ ืขื ืœืขืš ืฆื• Vulkan, Metal ืื•ืŸ Direct3D 12 ืคึฟืึทืจ ืคึผืขืจืคืึธืจืžื™ื ื’ ื’ืคึผื•-ื–ื™ื™ึทื˜ ืึทืคึผืขืจื™ื™ืฉืึทื ื– ืึทื–ืึท ื•ื•ื™ ืจืขื ื“ืขืจื™ื ื’ ืื•ืŸ ืงืึทืžืคึผื™ื•ื˜ื™ื ื’, ืื•ืŸ ืื•ื™ืš ืึทืœืึทื•ื– ื“ื™ ื ื•ืฆืŸ ืคื•ืŸ ืึท ืฉืึทื“ืขืจ ืฉืคึผืจืึทืš ืฆื• ืฉืจื™ื™ึทื‘ืŸ ืžื’ื™ืœื” ื•ื•ืึธืก ืœื•ื™ืคืŸ ืื•ื™ืฃ ื“ื™ ื’ืคึผื• ื–ื™ื™ึทื˜. ื“ื™ ื•ื•ืขื‘ื’ืคึผื• ื™ืžืคึผืœืึทืžืขื ื˜ื™ื™ืฉืึทืŸ ื•ื•ืขื˜ ื˜ื›ื™ืœืขืก ื‘ืœื•ื™ื– ื–ื™ื™ืŸ ืขื ื™ื™ื‘ืึทืœื“ ืื•ื™ืฃ ChromeOS, macOS ืื•ืŸ Windows ื‘ื•ื™ืขืŸ. ืคึฟืึทืจ ืœื™ื ื•ืงืก ืื•ืŸ ืึทื ื“ืจื•ื™ื“, ื•ื•ืขื‘ื’ืคึผื• ืฉื˜ื™ืฆืŸ ื•ื•ืขื˜ ื–ื™ื™ืŸ ืึทืงื˜ื™ื•ื•ื™ื™ื˜ื™ื“ ืื™ืŸ ืึท ืฉืคึผืขื˜ืขืจ ื“ืึทื˜ืข.

ืื™ืŸ ืึทื“ื™ืฉืึทืŸ ืฆื• ืงืจืึธื•ื, ื™ืงืกืคึผืขืจืžืขื ืึทืœ ืฉื˜ื™ืฆืŸ ืคึฟืึทืจ ื•ื•ืขื‘ื’ืคึผื• ืื™ื– ื˜ืขืกื˜ืขื“ ื–ื™ื ื˜ ืืคืจื™ืœ 2020 ืื™ืŸ ืคื™ืจืขืคืึธืงืก ืื•ืŸ ื–ื™ื ื˜ ื ืื•ื•ืขืžื‘ืขืจ 2021 ืื™ืŸ Safari. ืฆื• ื’ืขื‘ืŸ ื•ื•ืขื‘ื’ืคึผื• ืื™ืŸ ืคื™ืจืขืคืึธืงืก, ืื™ืจ ื–ืึธืœ ืฉื˜ืขืœืŸ ื“ื™ dom.webgpu.enabled ืื•ืŸ gfx.webgpu.force-ืขื ื™ื™ื‘ืึทืœื“ ืคืœืึทื’ืก ืื™ืŸ about:config. ืขืก ื–ืขื ืขืŸ ื ืึธืš ืงื™ื™ืŸ ืคึผืœืึทื ื– ืฆื• ื’ืขื‘ืŸ WebGPU ื“ื•ืจืš ืคืขืœื™ืงื™ื™ึทื˜ ืื™ืŸ Firefox ืื•ืŸ Safari. ื•ื•ืขื‘ื’ืคึผื• ื™ืžืคึผืœืึทืžืึทื ืฅ ื“ืขื•ื•ืขืœืึธืคึผืขื“ ืคึฟืึทืจ ืคื™ืจืขืคืึธืงืก ืื•ืŸ ืงืจืึธื•ื ื–ืขื ืขืŸ ื‘ืืจืขื›ื˜ื™ื’ื˜ ืื™ืŸ ื“ื™ ืคืึธืจืขื ืคื•ืŸ ื‘ืึทื–ื•ื ื“ืขืจ ืœื™ื™ื‘ืจืขืจื™ื– - ื“ืึธืŸ (C ++) ืื•ืŸ ื•ื•ื’ืคึผื• (ืจืึทืกื˜), ื•ื•ืึธืก ืื™ืจ ืงืขื ืขืŸ ื ื•ืฆืŸ ืฆื• ื•ื™ืกืฉื˜ื™ืžืขืŸ ื•ื•ืขื‘ื’ืคึผื• ืฉื˜ื™ืฆืŸ ืื™ืŸ ื“ื™ื™ืŸ ืึทืคึผืœืึทืงื™ื™ืฉืึทื ื–. ืึทืจื‘ืขื˜ ืื™ื– ืื•ื™ืš ืึทื ื“ืขืจื•ื•ื™ื™ ืฆื• ืœื™ื™ื’ืŸ ื•ื•ืขื‘ื’ืคึผื• ืฉื˜ื™ืฆืŸ ืฆื• ืคืึธืœืงืก ื“ื–ืฉืึทื•ื•ืึทืกืงืจื™ืคึผื˜ ืœื™ื™ื‘ืจืขืจื™ื– ื•ื•ืึธืก ื’ืขื•ื•ื™ื™ื ื˜ืœืขืš ื ื•ืฆืŸ ื•ื•ืขื‘ื’ืœ. ืคึฟืึทืจ ื‘ื™ื™ึทืฉืคึผื™ืœ, ืคื•ืœ ืฉื˜ื™ืฆืŸ ืคึฟืึทืจ ื•ื•ืขื‘ื’ืคึผื• ืื™ื– ืฉื•ื™ืŸ ืžื•ื“ื™ืข ืื™ืŸ Babylon.js, ืื•ืŸ ืคึผืึทืจื˜ื™ื™ื™ืฉ ืฉื˜ื™ืฆืŸ ืื™ืŸ Three.js, PlayCanvas ืื•ืŸ TensorFlow.js.

ืงืึทื ืกืขืคึผื˜ืฉื•ืึทืœื™, WebGPU ื“ื™ืคืขืจื– ืคื•ืŸ WebGL ืื™ืŸ ื“ืขืจ ื–ืขืœื‘ื™ืงืขืจ ื•ื•ืขื’ ื•ื•ื™ ื“ื™ Vulkan graphics API ืื™ื– ืึทื ื“ืขืจืฉ ืคื•ืŸ OpenGL, ืึธื‘ืขืจ WebGPU ืื™ื– ื ื™ืฉื˜ ื‘ืื–ื™ืจื˜ ืื•ื™ืฃ ืึท ืกืคึผืขืฆื™ืคื™ืฉ ื’ืจืึทืคื™ืงืก ืึทืคึผื™, ืึธื‘ืขืจ ืื™ื– ืึท ื•ื ื™ื•ื•ืขืจืกืึทืœ ืฉื™ื›ื˜ืข ื•ื•ืึธืก ื ื™ืฆื˜ ื“ื™ ื–ืขืœื‘ืข ื ื™ื“ืขืจื™ืง-ืžื“ืจื’ื” ืคึผืจื™ืžื™ื˜ื™ื•ื•ื– ื’ืขืคึฟื•ื ืขืŸ ืื™ืŸ ื•ื•ื•ืœืงืึทืŸ, ืžืขื˜ืึทืœ ืื•ืŸ ื“ื™ืจืขืงื˜3ื“. ื•ื•ืขื‘ื’ืคึผื• ืคึผืจืึธื•ื•ื™ื“ืขืก ื“ื–ืฉืึทื•ื•ืึทืกืงืจื™ืคึผื˜ ืึทืคึผืœืึทืงื™ื™ืฉืึทื ื– ืžื™ื˜ ื ื™ื“ืขืจื™ืง-ืžื“ืจื’ื” ืงืึธื ื˜ืจืึธืœ ืื™ื‘ืขืจ ื“ืขืจ ืึธืจื’ืึทื ื™ื–ืึทืฆื™ืข, ืคึผืจืึทืกืขืกื™ื ื’ ืื•ืŸ ื˜ืจืึทื ืกืžื™ืกื™ืข ืคื•ืŸ โ€‹โ€‹ืงืึทืžืึทื ื“ื– ืฆื• ื“ื™ ื’ืคึผื•, ืึธื ืคื™ืจื•ื ื’ ืคึฟืึทืจื‘ื•ื ื“ืŸ ืจืขืกื•ืจืกืŸ, ื–ื›ึผืจื•ืŸ, ื‘ืึทืคืขืจื–, ื’ืขื•ื•ืขื‘ ืึทื‘ื“ื–ืฉืขืงืฅ ืื•ืŸ ืฆื•ื ื•ื™ืคื’ืขืฉื˜ืขืœื˜ ื’ืจืึทืคื™ืงืก ืฉืึทื“ืขืจื–. ื“ืขืจ ืฆื•ื’ืึทื ื’ ืึทืœืึทื•ื– ืื™ืจ ืฆื• ื“ืขืจื’ืจื™ื™ื›ืŸ ื”ืขื›ืขืจ ืคืึธืจืฉื˜ืขืœื•ื ื’ ืคึฟืึทืจ ื’ืจืึทืคื™ืงืก ืึทืคึผืœืึทืงื™ื™ืฉืึทื ื– ื“ื•ืจืš ืจื™ื“ื•ืกื™ื ื’ ืึธื•ื•ื•ืขืจื›ืขื“ ืงืึธืก ืื•ืŸ ื™ื ืงืจื™ืกื™ื ื’ ื“ื™ ืขืคืขืงื˜ื™ื•ื•ืงื™ื™ึทื˜ ืคื•ืŸ ืืจื‘ืขื˜ืŸ ืžื™ื˜ ื“ื™ ื’ืคึผื•.

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

ืฉืœื™ืกืœ ืคึฟืขื™ึดืงื™ื™ื˜ืŸ ืคื•ืŸ WebGPU:

  • ื‘ืึทื–ื•ื ื“ืขืจ ืคืึทืจื•ื•ืึทืœื˜ื•ื ื’ ืคื•ืŸ ืจืขืกื•ืจืกืŸ, ืคึผืจื™ืคึผืขืจืึทื˜ืึธืจื™ ืึทืจื‘ืขื˜ ืื•ืŸ ื˜ืจืึทื ืกืžื™ืกื™ืข ืคื•ืŸ โ€‹โ€‹ืงืึทืžืึทื ื“ื– ืฆื• ื“ื™ ื’ืคึผื• (ืื™ืŸ ื•ื•ืขื‘ื’ืœ ืื™ื™ืŸ ื›ื™ื™ืคืขืฅ ืื™ื– ื’ืขื•ื•ืขืŸ ืคืึทืจืึทื ื˜ื•ื•ืึธืจื˜ืœืขืš ืคึฟืึทืจ ืึทืœืฅ ืื™ืŸ ืึทืžืึธืœ). ื“ืจื™ื™ ื‘ืึทื–ื•ื ื“ืขืจ ืงืึทื ื˜ืขืงืกืฅ ื–ืขื ืขืŸ ืฆื•ื’ืขืฉื˜ืขืœื˜: GPUDevice ืคึฟืึทืจ ืงืจื™ื™ื™ื˜ื™ื ื’ ืจืขืกื•ืจืกืŸ ืึทื–ืึท ื•ื•ื™ ื˜ืขืงืกื˜ืฉืขืจื– ืื•ืŸ ื‘ืึทืคืขืจื–; GPUCommandEncoder ืคึฟืึทืจ ืงืึธื“ื™ืจื•ื ื’ ืคื•ืŸ ื™ื—ื™ื“ ืงืึทืžืึทื ื“ื–, ืึทืจื™ื™ึทื ื’ืขืจืขื›ื ื˜ ืจืขื ื“ืขืจื™ื ื’ ืื•ืŸ ืงืึทืžืคึผื™ืึทื˜ื™ื™ืฉืึทืŸ ืกื˜ืึทื’ืขืก; GPUCommandBuffer ืฆื• ื–ื™ื™ืŸ ืจื™ื•ื•ื™ื™ื“ ืคึฟืึทืจ ื“ื•ืจื›ืคื™ืจื•ื ื’ ืื•ื™ืฃ ื“ื™ ื’ืคึผื•. ื“ืขืจ ืจืขื–ื•ืœื˜ืึทื˜ ืงืขื ืขืŸ ื–ื™ื™ืŸ ืจืขื ื“ืขืจื“ ืื™ืŸ ืึท ื’ืขื’ื ื˜ ืคึฟืึทืจื‘ื•ื ื“ืŸ ืžื™ื˜ ืื™ื™ืŸ ืึธื“ืขืจ ืžืขืจ ืœื™ื™ึทื•ื•ื ื˜ ืขืœืขืžืขื ื˜ืŸ, ืึธื“ืขืจ ืคึผืจืึทืกืขืกื˜ ืึธืŸ ืจืขื–ื•ืœื˜ืึทื˜ (ืคึฟืึทืจ ื‘ื™ื™ึทืฉืคึผื™ืœ, ื•ื•ืขืŸ ืคืœื™ืกื ื“ื™ืง ืงืึทืžืคึผื™ื•ื˜ื™ื ื’ ื˜ืึทืกืงืก). ืกืขืคึผืึทืจื™ื™ื˜ื™ื ื’ ื“ื™ ืกื˜ืึทื’ืขืก ืžืื›ื˜ ืขืก ื’ืจื™ื ื’ืขืจ ืฆื• ืฆืขื˜ื™ื™ืœืŸ ืžื™ื˜ืœ ืฉืึทืคื•ื ื’ ืื•ืŸ ืฆื•ื’ืจื™ื™ื˜ื•ื ื’ ืึทืคึผืขืจื™ื™ืฉืึทื ื– ืื™ืŸ ืคืึทืจืฉื™ื“ืขื ืข ื”ืึทื ื“ืœืขืจืก ื•ื•ืึธืก ืงืขื ืขืŸ ืœื•ื™ืคืŸ ืื•ื™ืฃ ืคืึทืจืฉื™ื“ืขื ืข ืคึฟืขื“ืขื.
  • ื ืึทื ื“ืขืจืฉ ืฆื•ื’ืึทื ื’ ืฆื• ืคึผืจืึทืกืขืกื™ื ื’ ืฉื˜ืึทื˜ืŸ. ื•ื•ืขื‘ื’ืคึผื• ืึธืคืคืขืจืก ืฆื•ื•ื™ื™ ืึทื‘ื“ื–ืฉืขืงืฅ - GPURenderPipeline ืื•ืŸ GPUComputePipeline, ื•ื•ืึธืก ืœืึธื–ืŸ ืื™ืจ ืฆื• ืคืึทืจื‘ื™ื ื“ืŸ ืคืึทืจืฉื™ื“ืŸ ืฉื˜ืึทื˜ืŸ ืคืึทืจ-ื“ื™ืคื™ื™ื ื“ ื“ื•ืจืš ื“ื™ ื“ืขื•ื•ืขืœืึธืคึผืขืจ, ื•ื•ืึธืก ืึทืœืึทื•ื– ื“ืขื ื‘ืœืขื˜ืขืจืขืจ ืฆื• ื ื™ืฉื˜ ื•ื•ื™ืกื˜ ืจืขืกื•ืจืกืŸ ืื•ื™ืฃ ื ืึธืš ืึทืจื‘ืขื˜, ืึทื–ืึท ื•ื•ื™ ืจื™ืงืึธืžืคึผื™ื™ืœื™ื ื’ ืฉืึทื“ืขืจื–. ืกื•ืคึผืคึผืึธืจื˜ืขื“ ืฉื˜ืึทื˜ืŸ ืึทืจื™ื™ึทื ื ืขืžืขืŸ: ืฉืึทื“ืขืจื–, ื•ื•ืขืจื˜ืขืงืก ื‘ืึทืคืขืจ ืื•ืŸ ืึทื˜ืจื™ื‘ื™ื•ื˜ ืœื™ื™ืึทื•ืฅ, ืงืœืขืคึผื™ืง ื’ืจื•ืคึผืข ืœื™ื™ืึทื•ืฅ, ื‘ืœืขื ื“ื™ื ื’, ื˜ื™ืคืงื™ื™ึทื˜ ืื•ืŸ ืคึผืึทื˜ืขืจื ื–, ืื•ืŸ ืคึผืึธืกื˜-ืคื™ืจืŸ ืจืขื–ื•ืœื˜ืึทื˜ ืคึฟืึธืจืžืึทื˜ื™ืจื•ื ื’ืขืŸ.
  • ื ื‘ื™ื™ื ื“ื™ื ื’ ืžืึธื“ืขืœ ืคื™ืœ ื•ื•ื™ Vulkan ืก ืžื™ื˜ืœ ื’ืจื•ืคึผื™ื ื’ ืคึฟืขื™ึดืงื™ื™ื˜ืŸ. ืฆื• ื’ืจื•ืคึผืข ืจืขืกื•ืจืกืŸ ืฆื•ื–ืึทืžืขืŸ, WebGPU ื’ื™ื˜ ืึท GPUBindGroup ื›ื™ื™ืคืขืฅ, ื•ื•ืึธืก ืงืขื ืขืŸ ื–ื™ื™ืŸ ืคืืจื‘ื•ื ื“ืŸ ืžื™ื˜ ืื ื“ืขืจืข ืขื ืœืขืš ืึทื‘ื“ื–ืฉืขืงืฅ ืคึฟืึทืจ ื ื•ืฆืŸ ืื™ืŸ ืฉืึทื“ืขืจื– ื‘ืฉืขืช ืฉืจื™ื™ื‘ืŸ ืงืึทืžืึทื ื“ื–. ืฉืืคืŸ ืึทื–ืึท ื’ืจื•ืคึผืขืก ืึทืœืึทื•ื– ื“ื™ ืฉืึธืคืขืจ ืฆื• ื“ื•ืจื›ืคื™ืจืŸ ื“ื™ ื ื™ื™ื˜ื™ืง ืคึผืจื™ืคึผืขืจืึทื˜ืึธืจื™ ืึทืงืฉืึทื ื– ืื™ืŸ ืฉื˜ื™ื™ึทื’ืŸ, ืื•ืŸ ืึทืœืึทื•ื– ื“ืขื ื‘ืœืขื˜ืขืจืขืจ ืฆื• ื˜ื•ื™ืฉืŸ ืžื™ื˜ืœ ื‘ื™ื™ื ื“ื™ื ื’ื– ืฆื•ื•ื™ืฉืŸ ืฆื™ืขืŸ ืจื•ืคื˜ ืคื™ืœ ืคืึทืกื˜ืขืจ. ื“ืขืจ ืื•ื™ืกืœื™ื™ื’ ืคื•ืŸ ืžื™ื˜ืœ ื‘ื™ื™ื ื“ื™ื ื’ื– ืงืขื ืขืŸ ื–ื™ื™ืŸ ืคึผืจืขื“ืขืคื™ื ืขื“ ืžื™ื˜ ื“ื™ GPUBindGroupLayout ื›ื™ื™ืคืขืฅ.

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

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