I'm trying to use a serial code of mine with magma functions replacing the corresponding lapack ones. I have been running into a lot of problems. The most detailed is when calling the function:
Code: Select all
call magma_zgemm(MagmaNoTrans,MagmaNoTrans,M,N,N,alpha,L,M,U,M,beta,X,M)I also get similar assertion fails for other instances of similar function calls (ztrsm included). If someone knows a fix for this it would be awesome.constants.cpp:349: const char* lapack_trans_const(magma_trans_t): Assertion `magma_const <= MagmaConjTrans' failed.
Program received signal SIGABRT: Process abort signal.
Backtrace for this error:
#0 0x2AF5944A6377
#1 0x2AF5944A697E
#2 0x3FC26302CF
#3 0x3FC2630265
#4 0x3FC2631D0F
#5 0x3FC2629705
#6 0x40271F in lapack_trans_const
#7 0x4017F9 in magma_zgemm
#8 0x401358 in MAIN__ at MagmaProblem.f90:0
Aborted
I'm using magma 1.6.2 with acml 5.3.0 or 5.3.1 (played around with both) and cuda 6.0. The library and all necessary files build fine, but the testing folder fails with trying to find some libraries. I think this is inconsequential but if it's necessary I'd be happy to isolate the issues with that.
Finally, a stripped down version that produces the first error is below. The compilation line is:
Code: Select all
gfortran -fno-underscoring MagmaProblem.f90 -o MagmaProblem.x -I/(MAGMADIR)/control -L/contrib/gcc-4.8.2/lib64 -lquadmath -L/(MAGMADIR)/lib -lmagma -L/usr/local/cuda/lib64 -lcublas -lcudartCode: Select all
program MagmaProblem
use magma
implicit none
integer, parameter :: M=20, N=20
complex*16 :: L(M,N),U(M,N),X(M,N), alpha, beta
X = 0
L = 5
U = 5
alpha=cmplx(1.0,0.0)
beta=cmplx(0.0,0.0)
call magma_zgemm(MagmaNoTrans,MagmaNoTrans,M,N,N,alpha,L,M,U,M,beta,X,M)
end program