Skip to content

feat(rocfft): twiddle table 5-step decomposition - #12054

Merged
eng-flavio-teixeira merged 92 commits into
ROCm:developfrom
eng-flavio-teixeira:twiddle_table_64_bit_length
Oct 8, 2026
Merged

eng-flavio-teixeira merged 92 commits into
ROCm:developfrom
eng-flavio-teixeira:twiddle_table_64_bit_length

Conversation

@eng-flavio-teixeira

@eng-flavio-teixeira eng-flavio-teixeira commented Sep 14, 2026 •

Copy link
Copy Markdown
Contributor

Motivation

Very large FFTs, e.g., lengths greater than 2^32, can still fail on MI455X due to the twiddle table kernel code missing a 5-step decomposition for retrieving the twiddle values.

JIRA ID: AIFFT-532

Technical Details

This PR adds support for the 5-step decomposition, which theoretically enables support for FFTs of lengths up to 2^40, or 16 TiB of VRAM in single-precision.

This PR also expands the capability of the multi-kernel Bluestein plan for very large FFTs. Launching one of the Bluestein kernels could overflow the grid X dim if the length was greater than 2^32. The kernel now uses the grid Y dim if the length is big enough.

Test Plan

New tests have been added to the adhoc test suite to cover the improvements.

Test Result

All tests should pass without issues. Some of the test cases can run on MI300x and MI355x, but the very large length Bluestein plan (token complex_forward_len_2147483659_single_ip_batch_1_istride_1_CI_ostride_1_CI_idist_2147483659_odist_2147483659_ioffset_0_0_ooffset_0_0) can only run on a MI455x due to the VRAM constraints.

Submission Checklist

@eng-flavio-teixeira
eng-flavio-teixeira marked this pull request as ready for review September 22, 2026 20:58
@eng-flavio-teixeira
eng-flavio-teixeira requested review from a team as code owners September 22, 2026 20:58
@eng-flavio-teixeira eng-flavio-teixeira changed the title Twiddle table 64 bit length feat(rocfft): wwiddle table 64-bit length Sep 22, 2026
@eng-flavio-teixeira eng-flavio-teixeira changed the title feat(rocfft): wwiddle table 64-bit length feat(rocfft): twiddle table 64-bit length Sep 22, 2026
@eng-flavio-teixeira eng-flavio-teixeira changed the title feat(rocfft): twiddle table 64-bit length feat(rocfft): twiddle table 5-step decomposition Sep 22, 2026

@malcolmroberts malcolmroberts left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I got some performance deltas, but a priori this looks like the only code change is a minor change in some integer types. The performance deltas are mostly in the right direction though, and it may just be noise in any case, so this looks good.

Comment thread projects/rocfft/CHANGELOG.md Resolved
@eng-flavio-teixeira
eng-flavio-teixeira enabled auto-merge (squash) October 5, 2026 16:03
@eng-flavio-teixeira
eng-flavio-teixeira merged commit c21124a into ROCm:develop Oct 8, 2026
143 of 147 checks passed
@regan-amd regan-amd mentioned this pull request Oct 8, 2026
1 task done
regan-amd added a commit that referenced this pull request Oct 9, 2026
## Motivation

Self-explanatory title, drift introduced in
#12054

JIRA ID: AIFFT-532

## Technical Details

Self-explanatory title

## Test Plan

Usual suite

## Test Result

Tests should pass.

## Submission Checklist

- [x] Look over the contributing guidelines at
https://github.com/ROCm/TheRock/blob/main/GOVERNANCE.md#pull-requests.
@assistant-librarian

Copy link
Copy Markdown
Contributor

TheRock Submodule Bump Activity

Newest first

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants