Skip to content

Flaky: NativeLinAlg.dot matrix-vector ComplexFloat returns wrong result on Linux #285

@devcrocod

Description

@devcrocod

Multik version

0.3.0

Module

multik-openblas

Platform

JVM

Operating System

Linux

Description

NativeLinAlg.dot for matrix-vector multiplication with ComplexFloat produces incorrect results intermittently on Linux (Ubuntu 22.04.5 LTS, gcc-12 12.3.0, JDK 21 Temurin). The test uses a 2x2 ComplexFloat matrix and a 2-element vector, asserting with epsilon 1e-4f. Failed in 2 out of 4 CI runs.

Reproducer

val matrix = mk.ndarray(
    mk[mk[ComplexFloat(1, 2), ComplexFloat(3, 4)],
        mk[ComplexFloat(5, 6), ComplexFloat(7, 8)]]
)
val vector = mk.ndarray(mk[ComplexFloat(1, 0), ComplexFloat(0, 1)])

val expected = mk.ndarray(mk[ComplexFloat(-3, 5), ComplexFloat(-3, 13)])

val actual = NativeLinAlg.dot(matrix, vector)
assertComplexFloatingNDArray(expected, actual, 1e-4f) // Fails intermittently

Additional information

Flaky — failed in 2/4 CI runs.
AssertionFailedError at NativeLinAlgTest.kt:270.
CI runs: 22511673326, 22511861936.
Environment: Ubuntu 22.04.5 LTS, gcc-12 (12.3.0), g++-12, JDK 21 Temurin, x86_64.

Metadata

Metadata

Assignees

No one assigned

    Labels

    ai-generatedIssues or pull requests created fully or partially with the help of AI toolsbugSomething isn't working

    Type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions