Skip to content

LAPACK test failures with OpenBLAS 0.30.0 (numerical errors) #5392

@Thyre

Description

@Thyre

I've been trying to build OpenBLAS 0.30.0 for an EasyBuild toolchain based on GCC 14.3.0, but have been running into issues when running the LAPACK test suite. On two totally separate systems, I see ~140-170 test failures due to numerical errors for REAL, DOUBLE PRECISION, COMPLEX and COMPLEX16.

The test failures mainly seem to occur from:

  • Nonsymmetric-Eigenvalue-EIG/xeigtsts
  • Nonsymmetric-Eigenvalue-EIG/xeigtstd
  • Nonsymmetric-Eigenvalue-EIG/xeigtstc
  • Nonsymmetric-Eigenvalue-EIG/xeigtstz

To cross-check, I've also tried GCC 14.2.0, with the same failures occurring.

The two systems I've tried so far were using:

  • Intel Core i7-1260P (Alder Lake)
  • NVIDIA GH200 (Neoverse V2)

The full build log from EasyBuild for the latter build can be found here: easybuild-OpenBLAS-0.3.30-20250723.095411.FMJRl.log

Just for completeness (e.g. sources and so on), this is the EasyConfig I'm using:

Click to open
name = 'OpenBLAS'
version = '0.3.30'

homepage = 'https://www.openblas.net/'
description = "OpenBLAS is an optimized BLAS library based on GotoBLAS2 1.13 BSD version."

toolchain = {'name': 'GCC', 'version': '14.3.0'}

source_urls = [
    # order matters, trying to download the large.tgz/timing.tgz LAPACK tarballs from GitHub causes trouble
    'https://www.netlib.org/lapack/timing/',
    'https://github.com/xianyi/OpenBLAS/archive/',
]
sources = ['v%(version)s.tar.gz']
patches = [
    ('large.tgz', '.'),
    ('timing.tgz', '.'),
    'OpenBLAS-0.3.15_workaround-gcc-miscompilation.patch',
    'OpenBLAS-0.3.21_fix-order-vectorization.patch',
]
checksums = [
    {'v0.3.30.tar.gz': '27342cff518646afb4c2b976d809102e368957974c250a25ccc965e53063c95d'},
    {'large.tgz': 'f328d88b7fa97722f271d7d0cfea1c220e0f8e5ed5ff01d8ef1eb51d6f4243a1'},
    {'timing.tgz': '999c65f8ea8bd4eac7f1c7f3463d4946917afd20a997807300fe35d70122f3af'},
    {'OpenBLAS-0.3.15_workaround-gcc-miscompilation.patch':
     'e6b326fb8c4a8a6fd07741d9983c37a72c55c9ff9a4f74a80e1352ce5f975971'},
    {'OpenBLAS-0.3.21_fix-order-vectorization.patch':
     '08af834e5d60441fd35c128758ed9c092ba6887c829e0471ecd489079539047d'},
]

builddependencies = [
    ('make', '4.4.1'),
    # required by LAPACK test suite
    ('Python', '3.13.5'),
]

run_lapack_tests = True
max_failing_lapack_tests_num_errors = 150

# extensive testing can be enabled by uncommenting the line below
# runtest = 'PATH=.:$PATH lapack-timing'

moduleclass = 'numlib'

I haven't tested the latest commit so far, but have checked OpenBLAS 0.29.0, where the build succeeded (i.e. less than 150 total failures).
So I'd guess that some regression was introduced in 0.30.0.

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