WebGPU의 새로운 기능 (Chrome 134)

François Beaufort
François Beaufort

게시일: 2025년 2월 26일

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

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

참고로 Google Meet에서는 오리진 트라이얼 중에 일부 기기에서 행렬-벡터 곱셈 셰이더의 패킹된 정수 점곱에 대해 하위 그룹을 벤치마킹할 때 속도가 2.3~2.9배 증가했습니다.

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

컴퓨팅 및 프래그먼트 셰이더 단계에서 다음 내장 값에 액세스하려면 enable subgroups;를 사용하여 WGSL 코드에서 이 확장 프로그램을 명시적으로 사용 설정해야 합니다.

  • subgroup_invocation_id: 하위 그룹 내 스레드의 색인에 대한 내장 값입니다.

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

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

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

다음 샘플은 하위 그룹을 탐색하기에 좋은 시작점입니다. 중간 결과를 전달하기 위해 메모리를 읽거나 쓰지 않고 subgroupExclusiveMul() 내장 함수를 사용하여 계승을 계산하는 셰이더를 보여줍니다.

혼합 가능한 부동 필터링 가능 텍스처 유형 지원 삭제

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

새벽 업데이트

이제 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::Undefined가 이제 WriteOnly로 바뀌었습니다

여기에서는 몇 가지 주요 사항만 다룹니다. 전체 커밋 목록을 확인하세요.

WebGPU의 새로운 기능

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

Chrome 140

Chrome 139

Chrome 138

Chrome 137

Chrome 136

Chrome 135

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