testing_*blas core

Open discussion for MAGMA library (Matrix Algebra on GPU and Multicore Architectures)
Post Reply
marksieklucki
Posts: 2
Joined: Wed Feb 13, 2013 9:10 am

testing_*blas core

Post by marksieklucki » Thu Feb 14, 2013 12:03 am

Hi,

I've managed to successfully compile and run many of the provided MAGMA tests.

However, I'm having an issue with the testing_*blas tests. Specifically, the test appears to run okay but them ends up core dumping.

From a quick glance at the source, it looks to me like the actual tests are completing okay, but that we fail somewhere around the cleanup section where we are making all the calls to magma_free.

An excerpt of the output around the point of interest:

Code: Select all

testing ztrsm
ztrsm( L, N ) diff 0
ztrsm( L, N ) diff 0
ztrsm( L, C ) diff 0
ztrsm( L, C ) diff 0
ztrsm( L, T ) diff 0
ztrsm( L, T ) diff 0
ztrsm( U, N ) diff 0
ztrsm( U, N ) diff 0
ztrsm( U, C ) diff 0
ztrsm( U, C ) diff 0
ztrsm( U, T ) diff 0
ztrsm( U, T ) diff 0
ztrsm( L, N ) diff 0
ztrsm( L, N ) diff 0
ztrsm( L, C ) diff 0
ztrsm( L, C ) diff 0
ztrsm( L, T ) diff 0
ztrsm( L, T ) diff 0
ztrsm( U, N ) diff 0
ztrsm( U, N ) diff 0
ztrsm( U, C ) diff 0
ztrsm( U, C ) diff 0
ztrsm( U, T ) diff 0
ztrsm( U, T ) diff 0
*** glibc detected *** ./testing_zblas: free(): invalid next size (fast): 0x0000000005892680 ***
======= Backtrace: =========
/lib64/libc.so.6[0x3236075916]
/lib64/libc.so.6[0x3236078443]
./testing_zblas[0x408e79]
./testing_zblas[0x40800d]
/lib64/libc.so.6(__libc_start_main+0xfd)[0x323601ecdd]
./testing_zblas[0x401549]
For this test, I am running MAGMA 1.3.0, statically linked, with no source changes.

Can anyone confirm this is an issue? Or is it just me doing something wrong?

Stan Tomov
Posts: 279
Joined: Fri Aug 21, 2009 10:39 pm

Re: testing_*blas core

Post by Stan Tomov » Tue Feb 26, 2013 8:01 pm

Hello, I can confirm there is an issue. There is a bug related to the error checking, and in particular, the size of a pivot array piv in

Code: Select all

err = magma_malloc_cpu( (void**) &piv, N*sizeof(magma_int_t) );  assert( err == 0 );
should have been Ak, as in

Code: Select all

err = magma_malloc_cpu( (void**) &piv, Ak*sizeof(magma_int_t) );  assert( err == 0 );
We will check if there are other problems, but at least this change fixed the problem that I managed to reproduce.

Post Reply