All Topics
All Topics
Technology
Technology
Design
Design
Programming
Programming
Science
Science
News
News
Gaming
Gaming
Entertainment
Entertainment
Business
Business
Finance
Finance
Sports
Sports
Health
Health
Food
Food
Travel
Travel
Art
Art
Music
Music
Books
Books
Education
Education
Politics
Politics
Personal
Personal
No algorithm. No AI slop. No ads. Just RSS. Pro-human. Indie writers. Real journalism. Open web. Chronological. Hand toasted.

GPUPrefixSums: A portable collection of GPU prefix sum algorithms for CUDA, D3D12, Unity, and WGPU

By

coffeeaddict1

9mo ago· 7 min readenCode

Summary

GPUPrefixSums is an open-source GitHub project that implements a comprehensive collection of prefix sum algorithms for GPUs, supporting CUDA, D3D12, Unity, and WGPU. It aims to make state-of-the-art GPU prefix sum techniques portable across different compute shader environments. The project introduces a novel technique called "Decoupled Fallback" for Chained Scan with Decoupled Lookback, designed to enable devices without forward thread progress guarantees to perform scans without crashing. The D3D12 implementation includes an extensive survey of GPU prefix sums from warp to device level, all utilizing wave/warp/subgroup level parallelism.

Key quotes

· 5 pulled
GPUPrefixSums aims to bring state-of-the-art GPU prefix sum techniques from CUDA and make them available in portable compute shaders.
It contributes 'Decoupled Fallback,' a novel fallback technique for Chained Scan with Decoupled Lookback that should allow devices without forward thread progress guarantees to perform the scan without crashing.
The D3D12 implementation includes an extensive survey of GPU prefix sums, ranging from the warp to the device level.
All included algorithms utilize wave/warp/subgroup (referred to as 'wave' hereon) level parallelism.
Theoretically portable to all wave/warp/subgroup sizes.
Snippet from the RSS feed
A nearly complete collection of prefix sum algorithms implemented in CUDA, D3D12, Unity and WGPU. Theoretically portable to all wave/warp/subgroup sizes. - b0nes164/GPUPrefixSums

You might also wanna read