-
Notifications
You must be signed in to change notification settings - Fork 99
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Various complex<double> unit test fails with XL/16.1 OpenMP build #344
Comments
@kyungjoo-kim would you have time to look at the gemm test? |
Due to prohibitive compile time from the XL compiler, it is very difficult (almost impossible) to debug with the compiler. As the other compilers and platforms are okay, the listed failures are probably related to compiler super-scalar ordering. I am not sure if spending our time for this is meaningful. I suggest to disable the entire complex testing with XL. Since we test wtih Kokkos::complex, it would be interesting if this failures are reproduced from std::complex. However, I also think that investigating the difference between kokkos::complex and std::complex is not meaningful. |
@kyungjoo-kim sounds good, compile times are very long with XL, thanks for looking into it. |
@kyungjoo-kim Are there any |
@mhoemmen I do not use reduce but I suspect that kokkos complex is problematic. When I populate random numbers, I use the max range as |
@kyungjoo-kim As discussed previously if you ask for a range of (1.0,0.0) (which you do since you implicitly construct from a real value) your range on the imaginary part is zero as you asked for it ;-). @mhoemmen Reductions and Atomics should just work (and they should do the right thing, i.e. proper atomics). I might look into this and figure out whats going on with XL here. |
@kyungjoo-kim @mhoemmen I was able to replicated the failures on |
@brian-kelley Is that code calling the system BLAS or is it calling a hand-written matrix-matrix multiply? |
@mhoemmen It's the hand-written KokkosBlas::gemm. |
Hmm, today I'm not seeing gemm_complex_double fail except with IBM compilers. I started these spot checks this morning so they don't have the fixes from #550. Not sure what else changed, but I'm not going to worry about it. |
@brian-kelley Are we perhaps assuming things about alignment of |
@mhoemmen I doubt it's an alignment issue, for that reason. Even if IBM handles std::complex in a special way, I think this test only involves Kokkos::complex which is just a plain old struct, with member-wise alignment requirements. |
@crtrott : This is showing up in spot-checks and not allowing us having clean spot-checks to push. We need to resolve this to make progress on other things. |
Output from Jenkins:
Failed Test 1
Failed Test 2
Failed Test 3
The text was updated successfully, but these errors were encountered: