Skip to content

[webgpu] allows atomic type for output#24610

Merged
fs-eire merged 3 commits intomicrosoft:mainfrom
fs-eire:program-allow-atomic-output
May 1, 2025
Merged

[webgpu] allows atomic type for output#24610
fs-eire merged 3 commits intomicrosoft:mainfrom
fs-eire:program-allow-atomic-output

Conversation

@fs-eire
Copy link
Contributor

@fs-eire fs-eire commented May 1, 2025

Description

This PR adds support for atomic types for program output. Applying atomic type on program output can be done in the following way:

program.AddOutput({output_tensor, ProgramTensorMetadataDependency::TypeAndRank, ProgramOutput::Atomic});

The last


The support for atomic type is minimal. According to [spec](https://www.w3.org/TR/WGSL/#atomic-types), the only valid operations on atomic objects are the [atomic builtin functions](https://www.w3.org/TR/WGSL/#atomic-builtin-functions). This means atomic types cannot be accessed (get/set) using the normal way. Get* and Set* functions will not be working on atomic types for indices helper. Use the WGSL builtin functions directly. OffsetToIndices and IndicesToOffset functions still work.

@satyajandhyala satyajandhyala added the ep:WebGPU ort-web webgpu provider label May 1, 2025
@fs-eire fs-eire merged commit e5a353a into microsoft:main May 1, 2025
83 of 93 checks passed
ankitm3k pushed a commit to intel/onnxruntime that referenced this pull request May 12, 2025
### Description

This PR adds support for atomic types for program output. Applying
atomic type on program output can be done in the following way:
```c++
program.AddOutput({output_tensor, ProgramTensorMetadataDependency::TypeAndRank, ProgramOutput::Atomic});
```
The last
```

The support for atomic type is minimal. According to [spec](https://www.w3.org/TR/WGSL/#atomic-types), the only valid operations on atomic objects are the [atomic builtin functions](https://www.w3.org/TR/WGSL/#atomic-builtin-functions). This means atomic types cannot be accessed (get/set) using the normal way. Get* and Set* functions will not be working on atomic types for indices helper. Use the WGSL builtin functions directly. OffsetToIndices and IndicesToOffset functions still work.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ep:WebGPU ort-web webgpu provider

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants