수년간의 개발 끝에 Chrome팀은 웹에서 고성능 3D 그래픽과 데이터 병렬 계산을 지원하는 WebGPU를 출시했습니다.
Chrome팀은 현재 베타 채널에 있는 Chrome 113에서 WebGPU를 기본적으로 사용할 수 있게 되었다고 알려드리게 되어 기쁩니다. WebGPU는 동일한 그래픽의 JavaScript 워크로드를 크게 줄이고 머신러닝 모델 추론을 3배 이상 개선하는 등 상당한 이점을 제공하는 새로운 웹 그래픽 API입니다. 이는 더 유연한 GPU 프로그래밍과 WebGL에서 제공하지 않는 고급 기능에 액세스할 수 있기 때문에 가능합니다.
이 WebGPU의 최초 출시는 ChromeOS, macOS, Windows에서 사용할 수 있습니다. 다른 플랫폼 지원은 올해 안에 제공될 예정입니다.
웹 그래픽의 새로운 시대
WebGPU는 웹을 위한 새로운 API로, 최신 하드웨어 기능을 노출하고 Direct3D 12, Metal, Vulkan과 마찬가지로 GPU에서 렌더링 및 계산 작업을 허용합니다. WebGL API 계열과 달리 WebGPU는 더 고급 GPU 기능에 액세스할 수 있도록 지원하고 GPU에서 일반 계산을 위한 최고의 지원을 제공합니다. 이 API는 웹 플랫폼을 염두에 두고 설계되었으며, 관용적인 JavaScript API, 약속과의 통합, 동영상 가져오기 지원, 우수한 오류 메시지가 포함된 세련된 개발자 환경을 제공합니다.
WebGPU의 이 초기 버전은 향후 업데이트 및 개선을 위한 구성요소 역할을 합니다. 이 API는 더 많은 고급 그래픽 기능을 제공할 예정이며 개발자는 추가 기능 요청을 보내는 것이 좋습니다. 또한 Chrome팀은 셰이더 코어에 대한 더 심층적인 액세스를 제공하여 WebGPU 셰이딩 언어인 WGSL에서 머신러닝 최적화 및 인체공학을 더욱 개선할 계획입니다.
WebGPU는 Mozilla, Apple, Intel, Microsoft와 같은 대기업의 참여를 포함하여 W3C의 '웹용 GPU' 커뮤니티 그룹의 공동작업의 결과입니다. 2017년 초기 설계부터 6년간의 개발 (참여자 90명, 커밋 2,000개, 문제 3,000개) 끝에 이제 Chrome에서 첫 번째 구현을 사용할 수 있으며 Firefox 및 Safari 지원도 진행 중입니다.
Chromium용 Dawn 라이브러리와 Firefox용 wgpu 라이브러리는 모두 독립형 패키지로 제공되며 OS GPU API를 추상화하는 뛰어난 휴대성과 인체공학적 레이어를 제공합니다. 또한 네이티브 애플리케이션에서 이러한 라이브러리를 사용하면 Emscripten 및 Rust web-sys를 통해 WASM으로 더 쉽게 포팅할 수 있습니다.
브라우저 지원
이 WebGPU의 첫 번째 출시는 Vulkan을 지원하는 ChromeOS 기기, Direct3D 12를 지원하는 Windows 기기, macOS의 Chrome 113에서 사용할 수 있습니다. Linux, Android, 기존 플랫폼에 대한 확장된 지원이 곧 제공될 예정입니다.
WebGPU는 Chrome의 초기 구현 외에도 Firefox 및 Safari에서 진행 중인 작업입니다.
라이브러리 지원
널리 사용되는 많은 WebGL 라이브러리는 이미 WebGPU 지원을 구현하고 있거나 이미 구현했습니다. 즉, WebGPU를 사용하려면 한 줄만 변경하면 됩니다.
- Babylon.js는 이미 완전한 WebGPU를 지원합니다.
- PlayCanvas에서 초기 WebGPU 지원을 발표했습니다.
- TensorFlow.js는 대부분의 연산자의 WebGPU 최적화 버전을 지원합니다.
- Three.js WebGPU 지원이 진행 중입니다. 예를 참고하세요.
리소스
WebGPU는 중요한 기술이며 자세한 내용은 다음 리소스를 참고하세요.
- WebGPU 및 WGSL의 W3C 사양을 확인하세요.
- 샘플을 실험하고 둘러보기를 통해 WGSL을 살펴보세요.
- MDN 문서를 참고하세요.
- 공식 설명 및 권장사항을 읽어보세요.
- GPU 컴퓨팅 및 기타에 대해 자세히 알아보세요.
감사의 말
이 작업을 가능하게 해 주신 모든 Chromium 참여자와 특히 Intel 직원 여러분의 소중한 지원에 감사드립니다.