-
-
Notifications
You must be signed in to change notification settings - Fork 5.5k
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
Bus error in dgemm_oncopy_HASWELL instead of OOM #10487
Comments
Cc: @xianyi |
Is it possible to come up with a standalone minimal example for the failure? |
After some digging: X = rand(100,6000); X'*X # => works
X = rand(100,60000); X'*X # => fails Running it in |
... ok, this is just due to being out of memory apparently... on this system
I get a clean |
I can reproduce this on my Mac. @ViralBShah should we detect the memory issue before calling OpenBLAS or is it OpenBLAS that doesn't handle this correctly? |
@andreasnoack , I think OpenBLAS handle the failed memory allocation. OpenBLAS just exit the program. |
@xianyi Should we be providing our own @andreasnoack If the above is not possible, then we may want to build such safeguards on the Julia side before calling openblas. |
@ViralBShah , how could I use |
xerbla is not really relevant for this: http://www.netlib.org/lapack/explore-3.1.1-html/xerbla.f.html Perhaps have a way to just return an error code when allocation fails, instead of calling abort? Maybe a build parameter? |
fwiw, lapack-netlib alternatively, we could potentially trap calls to |
presumably, this would be as simple as commenting out the calls to jameson@julia:~/julia/deps/openblas$ git diff
diff --git a/interface/imatcopy.c b/interface/imatcopy.c
index 89f0ec8..62e8d0f 100644
--- a/interface/imatcopy.c
+++ b/interface/imatcopy.c
@@ -127,7 +127,7 @@ void CNAME( enum CBLAS_ORDER CORDER, enum CBLAS_TRANSPOSE CTRANS, blasint crows,
if ( b == NULL )
{
printf("Memory alloc failed\n");
- exit(1);
+ return; //exit(1);
}
if ( order == BlasColMajor )
diff --git a/interface/zimatcopy.c b/interface/zimatcopy.c
index 3f273cf..19fce0a 100644
--- a/interface/zimatcopy.c
+++ b/interface/zimatcopy.c
@@ -133,7 +133,7 @@ void CNAME( enum CBLAS_ORDER CORDER, enum CBLAS_TRANSPOSE CTRANS, blasint crows,
if ( b == NULL )
{
printf("Memory alloc failed\n");
- exit(1);
+ return; //exit(1);
}
|
The source file of |
Bump - still present on current master. I would propose to add a check for this on the Julia side until upstream handles this cleanly? Rationale: 0.4 will attract a lot of new users, better not segfault for trivial stuff. |
@ViralBShah , I want to reproduce this bug on my Mac. However, I cannot find out how to build OpenBLAS develop branch under Julia. I edited julia/deps/openblas.version |
@xianyi Have you tried |
What happened? That should work, though I think you'll need to set a specific SHA1, that's what we primarily use, the branch is secondary. |
I think this is fixed (gives an |
Originally reported here: https://groups.google.com/forum/#!topic/julia-users/rfuMGrf-dK4
I can reproduce this with the following code on both 0.3.6 and a 10 days old master with the following code:
my
versioninfo()
:Error message:
The text was updated successfully, but these errors were encountered: