Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Uniform branches for NVIDIA GPUs #765

Merged
merged 5 commits into from
Apr 2, 2022
Merged

Uniform branches for NVIDIA GPUs #765

merged 5 commits into from
Apr 2, 2022

Conversation

m4rs-mt
Copy link
Owner

@m4rs-mt m4rs-mt commented Mar 3, 2022

This PR adds a performance-oriented optimization to differentiate between uniform and divergent branches. Uniform branches are jumps that will be taken by all active lanes in a warp in all cases. This PR adds this new performance-driven pass to the O2 pipeline and is designed to reduce register consumption and improve control-flow performance of kernels for NVIDIA GPUs.

@m4rs-mt m4rs-mt added enhancement feature A new feature (or feature request) labels Mar 3, 2022
@m4rs-mt m4rs-mt added this to the v1.2 milestone Mar 3, 2022
@m4rs-mt m4rs-mt changed the title Uniform branches Uniform branches for NVIDIA GPUs Mar 3, 2022
Src/ILGPU/IR/Analyses/Uniforms.cs Outdated Show resolved Hide resolved
Src/ILGPU/Backends/PTX/PTXBackend.cs Outdated Show resolved Hide resolved
@m4rs-mt m4rs-mt merged commit 2afcbd0 into master Apr 2, 2022
@m4rs-mt m4rs-mt deleted the uniforms branch April 2, 2022 13:25
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement feature A new feature (or feature request)
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants