WebGPU 생태계 캡처

François Beaufort
François Beaufort
Corentin Wallez
Corentin Wallez

게시일: 2023년 11월 9일, 최종 업데이트: 2025년 9월 16일

WebGPU는 최첨단 하드웨어 기능을 노출하고 GPU에서 렌더링 및 컴퓨팅 작업을 지원하여 Direct3D 12, Metal, Vulkan과 유사하게 GPU에 통합되고 빠른 액세스를 부여하는 웹 그래픽 API로 인식되는 경우가 많습니다.

하지만 WebGPU는 단순한 JavaScript API의 경계를 초월합니다. WebGPU는 WebAssembly와 유사한 기본 빌딩 블록이며, 급성장하는 생태계로 인해 웹을 훨씬 넘어선 영향을 미칩니다. Chrome팀은 WebGPU가 단순한 웹 기술 그 이상이라고 생각합니다. 핵심 기술을 중심으로 한 번성하는 생태계입니다.

현재 생태계 살펴보기

이 여정은 Apple, Google, Intel, Mozilla, Microsoft와 같은 여러 조직이 참여하는 공동 작업JavaScript 사양으로 시작됩니다. 모든 주요 웹브라우저가 WebGPU를 구현했거나 구현하는 중입니다.

동시에 Mozilla와 Google은 플랫폼별 애플리케이션에서 WebGPU의 잠재력을 인식하고 브라우저에서 WebGPU 구현을 분리하여 독립형 사용을 지원했습니다.

Chrome의 경우 이는 WebGPU 호출을 GPU 드라이버 명령어로 변환하는 C/C++ 라이브러리인 Dawn으로 구체화되었습니다. Dawn을 사용하면 C 및 C++ 애플리케이션이 WebGPU를 네이티브로 사용할 수 있어 브라우저 공급업체 전문 지식을 사용하여 휴대 가능하고 인체공학적인 GPU 추상화를 제공합니다.

블로그 게시물 WebGPU: 미래의 크로스 플랫폼 그래픽 API에서 설명한 것처럼 플랫폼별 WebGPU 애플리케이션을 웹으로 포팅하는 것은 간단합니다. C++ WebAssembly 도구 모음인 Emscripten은 이미 WebGPU를 지원하므로 웹으로 포팅하려면 최소한의 수정만 필요합니다.

Dawn을 기반으로 하는 WebGPU 모듈이 포함되어 있으므로 Node.js JavaScript 런타임을 사용하여 브라우저 외부에서 JavaScript WebGPU 코드를 실행할 수도 있습니다. 이를 통해 서버 측 또는 기타 플랫폼별 컨텍스트에서 수정 없이 코드를 실행할 수 있습니다.

Rust의 경우 WebGPU의 Firefox 구현인 wgpu를 통해 유사한 생태계가 존재합니다. Wgpu는 Rust 애플리케이션에 직접 통합할 수 있으며, 이 애플리케이션은 web-sys를 사용하여 웹으로 포팅할 수 있습니다. 또한 Deno JavaScript 런타임은 wgpu를 통해 WebGPU를 지원합니다. wgpu와 Deno의 제휴 블로그 게시물을 참고하세요.

이렇게 하면 다음 다이어그램과 같이 Rust와 C++ 간에 병렬 생태계가 구축됩니다.

2023년 WebGPU 생태계 다이어그램
2023년 WebGPU 생태계

새로운 지평

WebGPU 생태계는 JavaScript, C++, Rust 영역을 넘어 확장됩니다.

WebGPU 구현을 작업하는 엔지니어가 WebGPU용 공통 C 헤더도 개발하고 있으므로 선호하는 프로그래밍 언어에 WebGPU 바인딩이 이미 있을 수도 있습니다. 이를 통해 Dawn, wgpu 등을 타겟팅하여 C FFI를 사용하는 언어의 바인딩 생성을 간소화할 수 있습니다.

Chrome팀은 메뉴, 툴바, 개발자 도구, 웹 콘텐츠를 비롯한 모든 브라우저 UI 요소의 기본 렌더링 백엔드로 Dawn을 사용하는 것도 고려하고 있습니다. 이렇게 하면 각 네이티브 API에 별도의 렌더링 구현이 필요하지 않아 개발 프로세스가 간소화됩니다. 이 기능은 macOS 및 Windows에서 chrome://flags/#skia-graphite 플래그 뒤에 있는 실험 단계에 있습니다.