Skip to content

ORT 1.28.0 release cherry-pick round 2 - #29821

Merged
tianleiwu merged 5 commits into
rel-1.28.0from
tlwu/rel-1.28.0-cherry-pick-round-2
Jul 22, 2026
Merged

ORT 1.28.0 release cherry-pick round 2#29821
tianleiwu merged 5 commits into
rel-1.28.0from
tlwu/rel-1.28.0-cherry-pick-round-2

Conversation

@tianleiwu

@tianleiwu tianleiwu commented Jul 22, 2026

Copy link
Copy Markdown
Contributor

tianleiwu and others added 4 commits July 22, 2026 06:55
### Description

Make cuFFT an optional runtime dependency for the CUDA Execution
Provider and CUDA Plugin EP.

- Add a lazy cuFFT loader and forwarding stubs for the five entry points
used by the `Rfft`/`Irfft` contrib operators.
- Select the versioned cuFFT library from the build-time CUDA major
version: cuFFT 11 for CUDA 12.x and cuFFT 12 for CUDA 13.x.
- Remove `CUDA::cufft` from the CUDA provider, CUDA plugin, and CUDA
unit-test link lists.
- Return `NOT_IMPLEMENTED` with an actionable error when an FFT operator
is used without cuFFT installed.
- Extend the Linux and Windows no-cuDNN workflows to verify there is no
direct cuFFT dependency. Linux additionally removes cuFFT and verifies
non-FFT CUDA ops still run while `Rfft` fails cleanly.
- Document the optional cuFFT runtime model for the in-tree and plugin
CUDA EPs.

### Motivation and Context

The CUDA provider currently has a hard load-time dependency on cuFFT
even though only the `Rfft` and `Irfft` contrib operators use it. This
prevents otherwise compatible CUDA models from loading when cuFFT is not
installed.

This applies the same lazy-loading model introduced for optional cuDNN
in #29252: non-FFT models can run without cuFFT, while FFT operators
continue to work when the matching cuFFT runtime is available.

### Testing

- Built and linked `onnxruntime_providers_cuda` with CUDA 13.
- Verified `libonnxruntime_providers_cuda.so` has no cuFFT `NEEDED`
entry.
- Ran `ContribOpTest.Rfft` and `ContribOpTest.Irfft`; both passed.
- Compiled the CUDA 12.8 library-name selection against CUDA 12.8
headers.
- Validated both workflow YAML files and the embedded Linux smoke-test
Python.
- Ran targeted `lintrunner` checks and `git diff --check`.
#29812)

… packaging.

### Description
<!-- Describe your changes. -->



### Motivation and Context
<!-- - Why is this change required? What problem does it solve?
- If it fixes an open issue, please link to the issue here. -->
…9803)

### Description
<!-- Describe your changes. -->



### Motivation and Context
<!-- - Why is this change required? What problem does it solve?
- If it fixes an open issue, please link to the issue here. -->
Build error in Windows MSVC for sm90 for later:
```
tmpxft_000038ec_00000000-7_fpA_intB_gemm_launcher_2.generated.cudafe1.stub.c(595): error C2719: 'unnamed-parameter': formal parameter with requested alignment of 128 won't be aligned
```

The fix is to exclude TMA from Windows build.
eserscor
eserscor previously approved these changes Jul 22, 2026
### Description
<!-- Describe your changes. -->



### Motivation and Context
<!-- - Why is this change required? What problem does it solve?
- If it fixes an open issue, please link to the issue here. -->
@eserscor
eserscor dismissed stale reviews from sanaa-hamel-microsoft and themself via 524201c July 22, 2026 15:20
@eserscor

Copy link
Copy Markdown
Contributor

Added additional cherry pick:

Commit ID PR Number Commit Title
9f63d4d #29823 Fix Incorrect PIP_INDEX_URL piping

@tianleiwu
tianleiwu merged commit 0368187 into rel-1.28.0 Jul 22, 2026
134 of 144 checks passed
@tianleiwu
tianleiwu deleted the tlwu/rel-1.28.0-cherry-pick-round-2 branch July 22, 2026 17:56
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants