Incorrect memory accesses in MAGMA implementation of dtrsm

Open discussion for MAGMA

Incorrect memory accesses in MAGMA implementation of dtrsm

Postby ReL » Wed Jun 06, 2012 7:59 am

Hello,

It seems that magma_dtrtri_gpu fails for some specific matrix size because MAGMA implementation of dtrsm can lead to incorrect memory accesses.

The condition on the matrix size seems to be directly related to the bloc sizes used by MAGMA internally.

For example it seems that this code from diag_dtrtri_kernel_upper produces an error if the last bloc is bigger than the remainder of the matrix:
Code: Select all
// load A
#pragma unroll
for (i=0; i<BLOCK_SIZE; i++)
    Bs[i*BLOCK_SIZE+tx] = ((double)(tx<=i))*(*(Aoff+i*lda+tx)); // read in the whole square block of my A and zero out the non data triangular

You can use N = 129 to reproduce the error using magma_dtrtri_gpu.

Rémi
ReL
 
Posts: 13
Joined: Tue Jun 05, 2012 7:20 am
Location: France

Re: Incorrect memory accesses in MAGMA implementation of dtr

Postby ReL » Tue Jun 12, 2012 5:32 am

Hello,

I have attached a short code sample that enables to reproduce the problem directly using magmablas_dtrsm.
testDtrsm.cpp
Code sample
(1.68 KiB) Downloaded 81 times

I hope it will help debugging that issue.

Rémi
ReL
 
Posts: 13
Joined: Tue Jun 05, 2012 7:20 am
Location: France

Re: Incorrect memory accesses in MAGMA implementation of dtr

Postby ReL » Mon Jul 09, 2012 10:22 am

Hello,

Just to let you know that I tested that code against MAGMA 1.2.1 and magmablas_dtrsm still seems to be failing.

Regards,
Rémi
ReL
 
Posts: 13
Joined: Tue Jun 05, 2012 7:20 am
Location: France


Return to User discussion

Who is online

Users browsing this forum: No registered users and 1 guest

cron