Hi everyone, this looks like a compiler bug. I am running some LAPACK routines in device mode, using nvfortran. I noticed the following bug: when a routine is called with complex constants in the argument list, I obtain a waro misalignment:
Thread 1 “teste” received signal CUDA_EXCEPTION_6, Warp Misaligned Address.
More precisely, the calling routine, attributes(device), defines two constants:
COMPLEX ONE, ZERO
PARAMETER ( ONE = ( 1.0E+0, 0.0E+0 ),
$ ZERO = ( 0.0E+0, 0.0E+0 ) )
and eventually calls a soubroutine
CALL CGEMV( ‘Conjugate transpose’, LASTV, LASTC, ONE,
$ C, LDC, V, INCV, ZERO, WORK, 1 )
I get an error message at that line. But if in the beginning of the calling routine I comment the PARAMETER attribute out,
COMPLEX ONE, ZERO
-
PARAMETER ( ONE = ( 1.0E+0, 0.0E+0 ),
-
$ ZERO = ( 0.0E+0, 0.0E+0 ) )
-
.. ONE = ( 1.0E+0, 0.0E+0 ) ZERO = ( 0.0E+0, 0.0E+0 )
…everything works fine.
Best regards,
Gregorio