Skip to content

LAPACK ArmPL backend doesn't compile with ArmPL 25.04 #666

@rafbiels

Description

@rafbiels

Summary

ArmPL 25.04 has the following change in the release notes:

By default Arm Performance Libraries now uses C++ std::complex types when compiled with C++ programs.

https://developer.arm.com/documentation/109681/2504/Release-overview/Differences-from-previous-release/Additions-and-changes-?lang=en

Presumably this is the cause of a compilation failure of oneMath LAPACK ArmPL backend:

In file included from /work/oneMath/src/lapack/backends/armpl/armpl_wrappers.cpp:23:
/work/oneMath/src/lapack/backends/armpl/armpl_common.hpp:145:16: error: cannot convert 'std::complex<float>' to 'std::int64_t' (aka 'long') without a conversion operator
  145 |         return static_cast<std::int64_t>((*((T*)&alpha)));
      |                ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Version

3f8f4f3

Environment

  • Arm Neoverse-V1 CPU
  • arm-performance-libraries_25.04.1_deb_gcc
  • Ubuntu 24.04
  • Open-source DPC++ tag nightly-2025-04-01

Steps to reproduce

cmake \
  -DTARGET_DOMAINS=lapack \
  -DENABLE_MKLCPU_BACKEND=off -DENABLE_MKLGPU_BACKEND=off \
  -DENABLE_ARMPL_BACKEND=on -DARMPL_ROOT=/path/to/armpl \
  -B build-lapack -G Ninja -DREF_LAPACK_ROOT=/path/to/netlib/
cmake --build build-lapack

Observed behavior

Compilation failure

Expected behavior

Compilation succeeds

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions