WebGPU 개요

François Beaufort
François Beaufort

WebGPU는 동일한 그래픽의 JavaScript 워크로드를 크게 줄이고 머신러닝 모델 추론을 3배 이상 개선하는 등 상당한 이점을 제공하는 웹 그래픽 API입니다. 이는 유연한 GPU 프로그래밍과 WebGL에서 제공하지 않는 고급 기능에 대한 액세스 덕분에 가능합니다.

이 API는 웹 플랫폼을 염두에 두고 설계되었으며 관용적인 JavaScript API, 프로미스와의 통합, 동영상 가져오기 지원, 명확한 오류 메시지와 함께 개선된 개발자 환경을 제공합니다.

WebGPU는 Mozilla, Apple, Intel, Microsoft와 같은 주요 기업의 기여를 포함한 W3C의 '웹용 GPU' 커뮤니티 그룹의 공동 노력의 결과물입니다.

브라우저 지원

WebGPU의 최초 출시는 Chrome 113, Vulkan을 지원하는 ChromeOS 기기, Direct3D 12를 지원하는 Windows 기기, macOS에서 사용할 수 있습니다. Linux, Android 및 기존 플랫폼을 위한 확장된 지원이 곧 제공될 예정입니다.

WebGPU는 Chrome에서 초기 구현되는 것 외에도 FirefoxSafari에서 계속 작업 중입니다.

라이브러리 지원

널리 사용되는 많은 WebGL 라이브러리가 이미 WebGPU 지원을 구현 중이거나 이미 구현되어 있습니다. 즉, WebGPU를 사용하려면 한 줄을 변경하기만 하면 됩니다.

  • Babylon.js는 WebGPU를 완전히 지원합니다.
  • PlayCanvas는 초기 WebGPU 지원을 발표했습니다.
  • TensorFlow.js는 대부분의 연산자의 WebGPU 최적화 버전을 지원합니다.
  • Three.js WebGPU 지원이 진행 중입니다. 예시를 참고하세요.

Chromium용 Dawn 라이브러리 및 Firefox용 wgpu 라이브러리 모두 독립형 패키지로 사용할 수 있습니다. 운영체제 GPU API를 추상화하는 뛰어난 이동성과 인체 공학적 레이어를 제공합니다. 네이티브 애플리케이션에서 이러한 라이브러리를 사용하면 EmscriptenRust web-sys를 통해 WASM으로 더 쉽게 포팅할 수 있습니다.

자료

WebGPU는 중요한 기술이며 다음 리소스를 통해 자세히 알아보는 것이 좋습니다.