WebGPU의 새로운 기능 (Chrome 134)

François Beaufort
François Beaufort

게시: 2025년 2월 26일

하위 그룹으로 머신러닝 워크로드 개선

1년간의 개발 및 시험을 거쳐 이제 SIMD 수준의 병렬화를 지원하는 하위 그룹 WebGPU 기능을 사용할 수 있습니다. 이를 통해 작업 그룹의 스레드가 숫자 합계 계산과 같은 집계 수학 연산을 통신하고 실행할 수 있으며 교차 스레드 데이터 공유를 위한 효율적인 메서드를 제공합니다. 원래 제안서chromestatus 항목을 참고하세요.

참고로 시작 버전 체험판 기간 동안 일부 기기에서 행렬-벡터 곱셈 셰이더의 패킹된 정수 내적을 기준으로 하위 그룹을 벤치마킹할 때 Google Meet의 속도가 2.3~2.9배 빨라졌습니다.

GPUAdapter에서 "subgroups" 기능을 사용할 수 있는 경우 이 기능이 있는 GPUDevice를 요청하여 WGSL에서 하위 그룹 지원을 받습니다. subgroupMinSizesubgroupMaxSize 어댑터 정보 값을 확인하는 것이 좋습니다. 예를 들어 특정 크기의 하위 그룹이 필요한 하드코딩된 알고리즘이 있는 경우입니다.

또한 enable subgroups;를 사용하여 WGSL 코드에서 이 확장 프로그램을 명시적으로 사용 설정해야 계산 및 프래그먼트 셰이더 단계에서 다음과 같은 기본값에 액세스할 수 있습니다.

  • subgroup_invocation_id: 하위 그룹 내 대화목록의 색인에 관한 내장 값입니다.

  • subgroup_size: 하위 그룹 크기 액세스를 위한 내장 값입니다.

수많은 하위 그룹 기본 제공 함수 (예: subgroupAdd(), subgroupBallot(), subgroupBroadcast(), subgroupShuffle())를 사용하면 하위 그룹 내 호출 간에 효율적인 통신과 계산을 할 수 있습니다. 이러한 하위 그룹 작업은 단일 명령어 다중 스레드 (SIMT) 작업으로 분류됩니다. 또한 호출의 사분면에서 작동하는 사분면 내장 함수는 사분면 내에서 데이터 통신을 용이하게 합니다.

"shader-f16""subgroups" 기능이 모두 포함된 GPUDevice를 요청할 때 하위 그룹과 함께 f16 값을 사용할 수 있습니다.

다음 샘플은 하위 그룹을 살펴볼 때 좋은 출발점입니다. 이 샘플은 메모리를 읽거나 쓰지 않고 중간 결과를 전달하여 팩토리얼을 계산하는 subgroupExclusiveMul() 내장 함수를 사용하는 셰이더를 보여줍니다.

혼합 가능한 것으로 부동 소수점 필터링 가능한 텍스처 유형 지원 삭제

이제 "float32-blendable" 기능으로 32비트 부동 소수점 텍스처 혼합을 사용할 수 있으므로 혼합 가능한 부동 소수점 필터링 가능한 텍스처 유형에 대한 잘못된 지원이 삭제되었습니다. 문제 364987733을 참고하세요.

Dawn 업데이트

이제 Dawn에는 macOS 11 및 iOS 14가 필요하며 Metal 2.3 이상만 지원합니다. 문제 381117827을 참고하세요.

이제 wgpu::Instance의 새 GetWGSLLanguageFeatures() 메서드가 EnumerateWGSLLanguageFeatures()를 대체합니다. 문제 368672124를 참고하세요.

다음 바인딩 유형에는 Undefined 값이 있으며 바인딩 레이아웃의 기본값이 변경되었습니다. 문제 377820810을 참고하세요.

  • wgpu::BufferBindingType::Undefined는 이제 Uniform입니다.
  • wgpu::SamplerBindingType::Undefined는 이제 Filtering입니다.
  • wgpu::TextureSampleType::Undefined는 이제 Float입니다.
  • wgpu::StorageTextureAccess::UndefinedWriteOnly로 변경되었습니다.

여기에는 주요 내용 중 일부만 다룹니다. 전체 커밋 목록을 확인하세요.

WebGPU의 새로운 기능

WebGPU의 새로운 기능 시리즈에서 다룬 모든 항목의 목록입니다.

Chrome 134

Chrome 133

Chrome 132

Chrome 131

Chrome 130

Chrome 129

Chrome 128

Chrome 127

Chrome 126

Chrome 125

Chrome 124

Chrome 123

Chrome 122

Chrome 121

Chrome 120

Chrome 119

Chrome 118

Chrome 117

Chrome 116

Chrome 115

Chrome 114

Chrome 113