Public bug reported:

[ Impact ]

This updates the ROCm hipFFT library (libhipfft0 / libhipfftw0) from upstream
7.1.1 to 7.2.4 (hipFFT 1.0.21 -> 1.0.22) as part of the coordinated ROCm 7.2.4
stack release. hipFFT is the HIP FFT marshalling layer that dispatches to
rocFFT; consumers link libhipfft.so.0 / libhipfftw.so.0.

The upstream delta across these 21 commits is almost entirely build
infrastructure, tests, samples, documentation and CI, with a single
user-facing library addition:

 * hipFFTW new-array execution functions (upstream #1801). The FFTW3
   compatibility shim (libhipfftw0) gains six additive public entry points,
   declared HIPFFT_EXPORT in library/include/hipfft/hipfftw.h:
     fftw_execute_dft,      fftwf_execute_dft
     fftw_execute_dft_r2c,  fftwf_execute_dft_r2c
     fftw_execute_dft_c2r,  fftwf_execute_dft_c2r
   These let callers execute a transform with different I/O pointers than were
   given at plan creation, matching FFTW3 semantics (execute_dft for c2c plans,
   _r2c for real-to-complex, _c2r for complex-to-real, of matching precision and
   placement). This is a pure API addition; no existing entry point changes
   behaviour.

The remaining upstream changes do not alter installed hipFFT library
behaviour: a dual FFTW lookup that also accepts cmake-config FFTW3 packages
(#1533), OpenMP discovered in CONFIG mode, toolchain cxx-flag init, code
coverage (lcov export) plumbing, sample cleanups (drop the hipRAND dependency
and runtime-sized arrays from the samples), documentation additions, and
hipFFTW test-harness refactors. Two rocFFT-side fixes in the shared tree
(multi-GPU result scaling; single-process multi-GPU callbacks) affect librocfft,
not the hipFFT binaries.

Two packaging items in this upload affect the test/CI signal rather than the
installed library:

 1. d/patches: add use-free-vram-for-device-memory-check.patch. The bundled
    accuracy test harness (shared/accuracy_test.h) called
    hipMemGetInfo(&free, &total) but budgeted each case against TOTAL device
    memory instead of FREE. On a partially-loaded GPU (e.g. when the hipFFT
    accuracy suite runs alongside other ROCm autopkgtests on a shared GPU),
    large transforms passed the skip check, allocated their main I/O buffers,
    then ran the FFT with no room left for the rocFFT work buffer. The
    observable symptom was a test that completed (was NOT OOM-killed) yet
    returned numerically wrong output (normalized Linf ~0.6) instead of being
    SKIPPED. The patch budgets against free VRAM, so transforms that do not fit
    the currently available memory are skipped rather than manufacturing
    spurious accuracy failures. This deterministic failure mode is fixed. The
    change is a one-line backport; the equivalent fix is already upstream as
    part of ROCm/rocm-libraries commit
    184a43daa41ce8962914c3bedc3451c06e3d0656 (a broader test-memory-accounting
    rewrite), so the patch carries Forwarded: not-needed and will be dropped on
    the next hipFFT import that contains it.

 2. d/tests/control: split the accuracy suite into libhipfft0-tests-main and a
    libhipfft0-tests-flaky group (the latter marked flaky). A residual,
    NON-deterministic accuracy failure remains on the shared GPU test host: a
    different large-footprint transform fails each run, always with the same
    ~0.6 normalized Linf signature and a small L2, usually with no OOM. This is
    a transient GPU/driver fault under memory pressure (the FFT math itself is
    rocFFT's), not a hipFFT code defect, and it cannot be fixed from the hipFFT
    package. To keep a stable gating signal while still exercising and reporting
    the unstable cases, the suite is split: libhipfft0-tests-main runs
    everything except the 23 known large-footprint victim families (gtest
    negative filter) and is the must-pass gate; libhipfft0-tests-flaky runs
    only those victims and carries the 'flaky' restriction so intermittent
    failures are recorded but do not fail the autopkgtest or block migration.
    Each of the 23 entries is evidenced as genuinely flaky (observed both
    passing and failing across runs). This mirrors the existing rocSOLVER
    precedent (move flaky tests to a separate test-name).

ABI: the import is additive-only. libhipfft.so.0 is unchanged; libhipfftw.so.0
gains exactly the six symbols above (abidiff: 0 removed, 0 changed, 6 added).
The SONAME remains 0 for both libraries, so reverse dependencies do not need a
rebuild.

[ Test Plan ]

1. Build:
   - sbuild or dpkg-buildpackage the package successfully (built and
     lintian-clean in an Ubuntu 26.04 container; Launchpad resolute amd64 and
     arm64 builders succeeded).
   - dpkg --compare-versions confirms 7.2.4-0ubuntu1 is greater than
     7.1.1-0ubuntu1.
   - Run dpkg-gensymbols (DPKG_GENSYMBOLS_CHECK_LEVEL=4 is enforced in
     debian/rules). libhipfftw0.symbols.amd64 gains exactly the six additive
     symbols (fftw{,f}_execute_dft{,_c2r,_r2c} @ 7.2.4); libhipfft0 symbols are
     unchanged. abidiff confirms libhipfft.so.0 no ABI change and
     libhipfftw.so.0 additive-only (6 added).

2. Installability:
   - apt install libhipfft0 libhipfftw0.
   - Confirm reverse dependencies remain installable without rebuild (SONAME
     unchanged at 0 for both libraries).

3. Autopkgtest (GPU-equipped testbed; tests in debian/tests/control are
   libhipfft0-tests-main and libhipfft0-tests-flaky):
   - The gating group is libhipfft0-tests-main; it must pass.
     libhipfft0-tests-flaky is non-gating (flaky restriction).
   - The free-VRAM patch was validated with a targeted run of the
     memory-pressure families (hipfft_20260602_145442.log, 7m 20s):
       libhipfft0-tests: PASS, 0 FAILED; 24 tests ran, 16 PASSED, 8 SKIPPED;
       complex_forward_len_134217728_single_ip_batch_2 now [ OK ] (9197 ms)
       (previously a reproducible garbage failure, Linf 0.61 @ 17s).
   - The flaky-group split was validated on real runs that recorded
     intermittent failures WITHOUT failing the test, e.g.:
       hipfft_20260603_143909.log: 331 passed / 54 skipped / 3 FAILED
         -> libhipfft0-tests-flaky FLAKY non-zero exit status 1
       hipfft_20260603_153251.log: 329 passed / 55 skipped / 4 FAILED
         -> libhipfft0-tests-flaky FLAKY non-zero exit status 1
   - In a later full split run (hipfft_20260603_211602.log) two NEW
     large-footprint victims (mix_2D len_8000_2160, sbrc_3D len_256_200_200)
     surfaced for the first time and leaked into the gating -main group; both
     were verified genuinely flaky (each had passed in 8-9 prior runs) and have
     been added to the flaky filter, bringing it to 23 entries. Every entry's
     pass+fail evidence is recorded in the accompanying flaky-proof table.
   - Clean full gating libhipfft0-tests-main PASS run with the 23-pattern
     filter:
     <TBD - paste a clean libhipfft0-tests-main PASS summary here>

[ Where problems could occur ]

 * New libhipfftw0 new-array execute symbols: the six added fftw* functions are
   new code paths in the FFTW3 shim. A defect would show up as an application
   calling e.g. fftw_execute_dft / fftw_execute_dft_r2c against libhipfftw0 and
   getting incorrect transform output, or a link-time undefined-symbol error if
   the symbols file and the built library disagree. Covered by the hipFFTW
   interface tests in the suite.
 * Free-VRAM skip is now stricter: because the harness budgets against free
   (not total) VRAM, more large transforms are SKIPPED on a loaded GPU than
   before. Symptom: a rise in "[ SKIPPED ]" counts for the largest pow2/pow3/
   pow5 1D and 2D/3D cases; watch the skip totals in the autopkgtest log. If a
   testbed is heavily loaded this could under-exercise the extreme-scale cases.
 * gtest filter scoping in d/tests/control: the main group uses a single
   negative gtest filter ("*-pat1:pat2:...") and the flaky group the
   complementary positive filter (23 patterns). If a pattern is mis-scoped, a
   genuinely flaky case could leak into the gating main group (spurious red
   gate, as already seen once and fixed by adding the two new victims), or a
   stable case could be wrongly muted in the flaky group (lost coverage).
   Symptom to watch: a ~0.6-Linf failure appearing under libhipfft0-tests-main,
   or a previously-covered family no longer appearing in either group's output.
 * FFTW build-time discovery change (#1533): the new dual lookup could, on an
   unusual host, pick a different FFTW than before. Symptom: rocfft-test/
   hipfft-test failing to configure/link against FFTW, or the build log's
   "FFTW_FOUND/FFTW_LIBRARIES" status lines pointing at an unexpected library.

[ Other Info ]

 * ABI/symbols: libhipfft.so.0 unchanged; libhipfftw.so.0 additive-only
   (6 new symbols), SONAME 0 for both. No reverse-dependency rebuild needed.
   DPKG_GENSYMBOLS_CHECK_LEVEL=4 is enforced.
 * Packaging changes in this upload (from debian/changelog): migrate
   d/{watch,copyright,upstream/metadata} to the ROCm/rocm-libraries monorepo
   release assets; bump Standards-Version to 4.7.4; drop
   catch-exceptions-in-tests-setup-and-skip.patch (applied upstream in 7.2.0);
   refresh add-so-version-for-libhipfftw0.patch; add the free-VRAM patch;
   add the six new libhipfftw0 symbols; ignore generated docs artifacts in
   d/source/local-options; split d/tests/control into main and flaky groups.
 * The free-VRAM patch is Forwarded: not-needed, Applied-Upstream:
   
https://github.com/ROCm/rocm-libraries/commit/184a43daa41ce8962914c3bedc3451c06e3d0656
   (a broader test-memory-accounting rewrite that subsumes the one-line fix).
 * The residual non-deterministic ~0.6-Linf accuracy failure (victim varies run
   to run, no OOM) is being reported upstream separately as a transient
   accuracy-under-memory-pressure issue in rocFFT; the d/tests/control flaky
   split is distro test policy, not an upstream change.
 * A stronger device-synchronize patch variant (extra hipDeviceSynchronize()
   barriers) did NOT mitigate the transient failures and was dropped; the
   shipped patch is the free-VRAM change only.
 * This update is part of the coordinated ROCm 7.2.4 stack release.
 * PPA: ppa:igorluppi/hipfft-7.2.4
   https://launchpad.net/~igorluppi/+archive/ubuntu/hipfft-7.2.4
 * Upstream version comparison:
   https://github.com/ROCm/hipfft/compare/rocm-7.1.1...rocm-7.2.4
 * Target: resolute 26.04 LTS and stonking 26.10.

** Affects: hipfft (Ubuntu)
     Importance: Undecided
         Status: New

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/2155398

Title:
  New upstream version 7.2.4

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/hipfft/+bug/2155398/+subscriptions


-- 
ubuntu-bugs mailing list
[email protected]
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to