-
Notifications
You must be signed in to change notification settings - Fork 1.6k
DPOTRF deadlocks on arm cortex A15 #844
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
Comments
Please post completion report from openblas build and /proc/cpuinfo Can you do folowing diagnostics: |
@emilienkofman , I didn't have odroid. I test |
Here is the full report: https://gist.github.com/emilienkofman/5c707c6af1eaddcf5587a0429de27ae2 |
Looks corrupt stack. 2 threads waiting on main thread that is not visible in backtrace. |
Ok, for some reason that won't build with clang (https://gist.github.com/emilienkofman/5c707c6af1eaddcf5587a0429de27ae2#file-build-clang). Am I missing something? |
You found a small bug in cpuid_arm.c - or actually clang is more picky than gcc by default. |
Thank you, so I fixed the bug (and I will commit it if you want), but then the build fails again (see the updated gist https://gist.github.com/emilienkofman/5c707c6af1eaddcf5587a0429de27ae2#file-build-clang) |
It is 2 bugs already, this 2nd is clang wontfix https://llvm.org/bugs/show_bug.cgi?id=20424 |
That second one seems to live in common_arm.h line 108 (where the PROLOGUE is defined), so hopefully needs only changing that one place... |
ġcc -O0 might give usable traces maybe |
Ok so I've tried to understand how this PROLOGUE thing and assembly all fits together, and if I get rid of it clang then fails to compile some of the kernels in |
Guess I should have been more verbose, sorry. You need to delete only the line with the ".func" on it from the PROLOGUE section definition in common_arm.h, not the entire definition. Seems nobody tried to build with clang on arm before, or everybody who ran into these traps kept quiet about it. |
Ah ok that was actually what I was thinking (that nobody tried or nobody reported something about it). I understood that I needed to remove the .func line in case it gets compiled with clang, but then other errors pop up so that's why I told that might be a lot of fixing, and I might not be able to do it! Anyway I'll try to investigate more a bit later and report if I was able to build with clang. Thanks for your help. |
gcc at least builds something TRY it with COMMON_OPT=-O0 |
I do not think any of us wants to trick you into debugging the clang build. :-) |
You have bad CPUID from kernel |
Using the benchmarks I noticed that the potrf kernel would deadlock on my A15 arm board (odroid):
and then it stalls. On contrary running it with
OPENBLAS_NUM_THREADS=1
is fine.I used the latest version of the code forked from here, gcc 5.2.1, the board runs Ubuntu 15.10 and here is some more information:
Please tell me if I can add any other information that would make this reproducible. I don't know which difference in the setup causes the deadlock but on my laptop (Intel, 64bits, Debian), the multithreaded dpotrf runs just fine.
I observed the same with the dcholesky benchmark, but I guess they just use the same routine.
The text was updated successfully, but these errors were encountered: