Public bug reported:

[ Impact ]

    rocALUTION 7.2.3 (librocalution1) fixes a correctness regression in how
    preconditioners are moved between host and accelerator memory when used
    inside iterative Krylov solvers:

    1. Preconditioner MoveToHost/MoveToAccelerator missing in Krylov solvers
       (regression introduced in 7.2.x, reverted in commit "Revert 279") —
       The MoveToHost() and MoveToAccelerator() calls for the preconditioner
       object were removed from the CG, CR, FCG, FGMRES, GMRES, and
       base_multigrid solvers. As a result, when a solver was moved between
       host and accelerator (e.g. via MoveToAccelerator()), the preconditioner
       was left stranded on the original device, leading to incorrect solver
       behaviour or crashes for any preconditioned iterative solve that used
       MoveToAccelerator(). Fix: restore the missing preconditioner
       Move{ToHost,ToAccelerator}() calls in all affected solver classes, and
       restore the missing EXPECT_EQ assertions in the
       local_vector_test.extract_coarse_mapping_int test.

    The 7.2.3 release also carries two build-quality improvements with no
    runtime impact:

    2. Missing ROCALUTION_EXPORT annotations on public API methods — Multiple
       public methods in GlobalMatrix, GlobalVector, IterationControl,
       BaseAMG, BaseMultiGrid, MultiColored, and related classes were missing
       the ROCALUTION_EXPORT macro required for symbol visibility on Windows.
       This caused linking errors when building downstream consumers on
       Windows. On Linux the macro is a no-op, so this change has no ABI
       impact here.

    3. Nodiscard warning fixes — HIP API calls (hipMalloc, hipFree, hipMemcpy,
       hipDeviceSynchronize, rocprim::reduce/exclusive_scan, etc.) are now
       wrapped in DISCARD_HIP_ERROR() where the return value was intentionally
       discarded (errors are caught by the subsequent CHECK_HIP_ERROR macro).
       Additionally, the backend initialisation sequence now captures the
       hipGetLastError() return value correctly. No behaviour change at
       runtime.

    Packaging fixes in this upload:

    a. d/watch: updated to v5 RFC 822 stanza format and corrected upstream
       repository name capitalisation (rocALUTION).
    b. d/copyright: upstream AMD copyright year updated to 2025.
    c. d/control: Standards-Version bumped to 4.7.4 (no changes required).
    d. d/rules: DPKG_GENSYMBOLS_CHECK_LEVEL migrated from
       override_dh_makeshlibs to the exported-variable form.

    Reverse dependencies: librocalution-dev, librocalution1-tests.

[ Test Plan ]

    1. Build:
       - dpkg-buildpackage or sbuild succeeds.
       - dpkg --compare-versions 7.2.3-0ubuntu1 gt 7.1.1-0ubuntu1 confirms
         the new version is greater.
       - No debian/*.symbols file exists for this package; dpkg-gensymbols
         check is not applicable.
    2. Installability:
       - apt install librocalution1 librocalution-dev succeeds.
       - Confirm reverse dependencies remain installable without rebuild.
    3. Autopkgtest (command1 / upstream-binaries librocalution1-tests) on a
       GPU-equipped testbed (resolute amd64, lxd --profile=rocm-gpu):

[----------] Global test environment tear-down
[==========] 9633 tests from 43 test suites ran. (366848 ms total)
[  PASSED  ] 9151 tests.
[  SKIPPED ] 482 tests, listed below:
[  SKIPPED ] 
mixed_precision/parameterized_mixed_precision.mixed_precision_double_float/0
...
autopkgtest [01:08:47]: test command1:  - - - - - - - - - - results - - - - - - 
- - - -
command1             PASS
autopkgtest [01:08:47]: @@@@@@@@@@@@@@@@@@@@ summary
command1             PASS
2026-05-27 01:08:47 - Autopkg tests ended for rocalution in 
ppa:igorluppi/rocalution-7.2.3.
Tests took: 0h 19m 39s. Logs saved in ./rocalution_20260527_004910.log

[ Where problems could occur ]

    1. Preconditioned solvers that use MoveToAccelerator() (moderate risk if
       regression was present): Any application that calls
       solver.MoveToAccelerator() with a preconditioner attached now correctly
       moves the preconditioner too. Code that worked around the missing move
       by manually calling precond->MoveToAccelerator() is unaffected (the
       call is idempotent). Code that relied on the preconditioner staying on
       the host while the solver moved to the accelerator would break, but
       such a split is not a supported configuration.
    2. Infrastructure issues during build (low risk): No GPU is required on
       Launchpad builders; override_dh_auto_test-arch is skipped there and
       the build is expected to pass without a GPU.

[ Other Info ]

 * No ABI breakage: no debian/*.symbols file is maintained for this package.
   The SONAME remains librocalution.so.1. The ROCALUTION_EXPORT additions
   only affect Windows symbol export; they have no effect on ELF visibility.
 * This update is part of the coordinated ROCm 7.2.3 stack release.
 * PPA: https://launchpad.net/~igorluppi/+archive/ubuntu/rocalution-7.2.3
 * Upstream version comparison:
   https://github.com/ROCm/rocALUTION/compare/rocm-7.1.1...rocm-7.2.3
 * Target: resolute 26.04 LTS
 * Known pre-existing build failures (not addressed in this SRU):
   armhf FAILEDTOBUILD and s390x MANUALDEPWAIT. These failures exist across
   all previous rocalution uploads and are known to the maintainers. A fix
   is possible but out of scope for this update.

** Affects: rocalution (Ubuntu)
     Importance: Undecided
     Assignee: Igor Luppi (igorluppi)
         Status: New

** Changed in: rocalution (Ubuntu)
     Assignee: (unassigned) => Igor Luppi (igorluppi)

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

Title:
  SRU: New upstream version 7.2.3

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


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

Reply via email to