WebGPU의 다음 단계

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

게시일: 2024년 11월 21일

WebGPU 사양은 Google, Mozilla, Apple, Intel, Microsoft와 같은 주요 기업이 매주 회의를 열어 개발을 논의하면서 항상 발전하고 있습니다. 웹 작업 그룹 회의의 최신 GPU에서는 WebGPU의 다음 버전에 계획된 주요 목표와 기능을 살펴볼 수 있었습니다. 이 블로그 게시물에서는 회의에서 얻은 몇 가지 주요 사항을 살펴봅니다.

후보 추천 상태 도달

회의의 주요 목표는 마일스톤 0의 진행 상황을 논의하고 W3C의 후보 권장사항 상태에 도달하기 전에 해결해야 할 문제를 최종적으로 결정하는 것이었습니다. 이는 표준화 프로세스의 다음 단계이며 안정성과 지식 재산권 보호가 더욱 강화됩니다.

회의 참석자들은 차단 요소가 없으며 이러한 문제가 시의적절하게 해결되어 W3C의 WebGPU 후보 권장사항에 대한 길을 열 수 있다는 데 전반적으로 동의했습니다.

새로운 기능 우선순위 지정

회의 참석자들도 새로운 기능을 우선시했습니다. 개발자, 구현자, 이해관계자의 의견을 바탕으로 작성된 기능 요청 목록으로 시작했습니다.

'Bindless', '하위 그룹', 'MDI', 'Push 상수', 'UMA', '하위 그룹 행렬' 등을 포함하여 컴퓨터 그래픽 API와 관련된 용어의 필기 목록이 있는 화이트보드

논의 결과 AI를 위한 다음과 같은 주요 WebGPU 기능이 확인되었습니다.

  • 하위 그룹 및 하위 그룹 행렬: 애플리케이션이 GPU 스레드 간에 빠른 로컬 통신을 사용하고 셰이더 코어 옆에 있는 고정 크기 행렬 곱셈 하드웨어를 활용할 수 있습니다. 하위 그룹 제안서를 참고하세요.

  • 텍셀 버퍼: 휴대용 방식으로 16비트 또는 8비트 값과 같은 소규모 데이터 유형을 저장하고 액세스하는 더 효율적인 방법을 제공합니다. 이는 일부 ML 이미지 처리 알고리즘에 중요합니다. 텍셀 버퍼 슬라이드를 참고하세요.

  • UMA 버퍼 매핑: 사본 및 동기화 오버헤드를 줄이거나 제거하여 데이터 업로드 성능을 개선합니다. 사양 문제 2388을 참고하세요.

새로운 종류의 렌더링 알고리즘을 활용하기 위한 다음과 같은 WebGPU 기능도 고려되고 우선순위가 지정됩니다.

  • 바인드리스: 많은 기대를 모으고 있는 이 기능 제안서는 장면 전체 정보가 필요하므로 대부분의 최신 렌더링 알고리즘의 기본 요건입니다. 바인드리스를 사용하면 현재의 상대적으로 엄격한 제한과 비교하여 셰이더가 텍스처를 포함한 무제한의 리소스를 사용할 수 있습니다.

  • 다중 그리기 간접: 이전에 GPU에서 drawIndirect를 사용하여 하나의 그리기만 생성하는 대신 여러 그리기를 생성할 수 있습니다. 이는 객체의 GPU 컬링과 같은 GPU 기반 렌더링에 중요한 기능입니다. pull 요청 2315를 참고하세요.

  • 64비트 원자 연산: 버퍼 또는 텍스처에서 단일 atomicMax 작업으로 깊이 테스트와 32비트 페이로드 쓰기를 번들로 묶어 GPU에서 '소프트웨어 래스터화'를 실행하는 데 필요합니다. 문제 4329를 참고하세요.

WebGPU의 기능과 더 광범위한 웹 플랫폼과의 통합을 개선하기 위해 다음과 같은 WebGPU 기능이 논의되었습니다.

  • 호환성 모드: 이 모드는 OpenGL ES 3.1만 지원하는 기기를 포함하여 더 다양한 기기에서 WebGPU를 실행할 수 있도록 지원하는 것을 목표로 합니다. 호환성 모드 제안서를 참고하세요.

  • WebXR: 기존 WebXR 레이어 모듈이 각 레이어 유형에 WebGPU 스왑 체이닝을 제공하여 WebGPU와 상호작용할 수 있도록 합니다. WebGPU/WebXR 통합 슬라이드를 참고하세요.

  • Canvas2D: Canvas 2D와 WebGPU 간의 상호 운용성을 개선하여 성능과 인체공학 문제를 모두 해결합니다. 이 WebGPU 전송 제안서를 사용하면 WebGPU에서 텍스트 및 경로 그리기에 액세스하고 WebGPU 렌더링을 Canvas 2D에 적용할 수 있습니다.

또한 WGSL 도구 및 라이브러리 개선을 위한 노력에 관한 프레젠테이션과 토론이 진행되었습니다. 주목할 만한 이니셔티브 중 하나는 WGSL에 커뮤니티 주도형 확장 프로그램을 제공하는 것을 목표로 하는 WESL (WGSL 확장 셰이딩 언어)의 개발입니다.

자세한 내용은 원본 회의 메모에서 확인하세요.

생각

이 회의에서는 WebGPU의 미래를 형성하는 데 있어 WebGPU 작업 그룹, 개발자, 더 광범위한 그래픽 커뮤니티 간의 협업의 중요성이 강조되었습니다. 작업반은 제안된 기능에 관한 의견을 적극적으로 수렴하고 있으며, WebGPU가 개발자의 요구사항을 충족할 수 있도록 개발자와 협력하기 위해 최선을 다하고 있습니다.

WebGPU의 다음 버전은 웹 그래픽의 새로운 가능성을 열어주고 개발자가 AI를 위한 더욱 몰입도 높고 매력적인 웹 환경을 만들 수 있도록 지원하는 중요한 진보가 될 것입니다.