Repository navigation
feat(rocfft): add support for complex-to-real 3D FFTs with partial-pass - #8687
Merged
eng-flavio-teixeira merged 251 commits intoOct 9, 2026
Merged
Conversation
- Add support for direct from reg loads in partial pass SBRR kernels.
- Remove not needed lds_linear branch in partial-pass SBRR generator.
- Fixes for the r2c case:
+ Fix issue with calculate_offsets .
+ Fix issue with local_transpose_pp_length.
+ Fix issue in treenode assignment.
+ Fix issue with apply twiddle partial pass generator.
evetsso
approved these changes
Oct 6, 2026
regan-amd
self-requested a review
October 7, 2026 16:26
regan-amd
reviewed
Oct 7, 2026
regan-amd
left a comment
Contributor
There was a problem hiding this comment.
+ FYI: some copyright years need updating.
regan-amd
reviewed
Oct 8, 2026
regan-amd
approved these changes
Oct 8, 2026
regan-amd
left a comment
Contributor
There was a problem hiding this comment.
Just a very minor comment-accuracy suggestion; lgtm otherwise.
Contributor
TheRock Submodule Bump ActivityNewest first
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Motivation
Adds support for c2r partial-pass 3D transforms.
JIRA ID : AIFFT-512
Technical Details
The major change here deals with the ordering of the partial-pass kernels. c2c and r2c do (SBRR + partial-pass steps 1+2) as the first kernel and (partial pass steps 3+4 + SBCC) as the second kernel in a 3D-transform. In c2r this order is reversed because the even-length real to complex pre-process step must happen as the last step before the full transform in the Hermitian dimension. The ordering in c2r becomes (SBCC + partial-pass steps 1+2) as the first kernel and (partial-pass steps 3+4 + SBRR) as the second kernel. This order reversal also does exist in the even-length non-partial pass kernels (SBRR as the first kernel in c2c and r2c and SBCC as the first kernel in c2r).
Because of this new ordering, the fused partial-pass steps 1+2 and steps 3-4 need to work interchangeably. However, the partial-pass SBCC interleaves the off-dimension in the LDS column for improved HBM data access patterns. So the main change here is to make sure that steps 1+2 and steps 3+4 work for both the non-interleaved and interleaved cases.
Aside from the re-ordering work, the off-dimension pass in the SBCC (for the c2c and r2c cases) now also supports multiple factors. I'm adding this change here since there was already a significant re-write of stockham_pp_gen.h.
For now the length 216x104x100 has been enabled in config_pp_3d.py for c2r. Once this PR lands, I will also add more lengths from the molecular dynamic suite to config_pp_3d.py.
Test Plan
The current partial-pass suite tests already cover forward and inverse directions for both real and complex transforms.
Test Result
All tests should pass without issues.
Submission Checklist