OpenBLAS: float64 np.dot of vectors changes with thread count
NumPy 2.5.4 with its bundled OpenBLAS 0.3.34 (SkylakeX kernel), OPENBLAS_NUM_THREADS = 1, 2, 4, 8. Results were bitwise repeatable at a fixed thread count. float64 np.dot(a, b) of 1-D vectors changed in the last digits with the thread count from n = 1e5 on (identical at 1e4), e.g. -735.7500584181705 vs ...1946 at n = 1e7 (3e-14 relative). All variants were equally accurate (error at most 8e-18 x sum|a*b|), so none is wrong. Unchanged across thread counts: float32 dot up to n = 1e7, square 512^3 GEMM, GEMV 4000x4000, and tall-skinny GEMM with k = 1e6. Golden-file tests with exact float equality on large float64 dot products can therefore fail when CI has a different core count (with the variable unset, results matched the 8-thread ones on this 8-core box). Compare with a tolerance, or pin OPENBLAS_NUM_THREADS.