undefined reference to `magma_dlaed2_' with open64-4.5.2 &

Open discussion for MAGMA

undefined reference to `magma_dlaed2_' with open64-4.5.2 &

Postby lejeczek » Fri May 03, 2013 7:24 am

.. & acml-5-1-0-open64-64bit-int64
I've started moving back to older revisions of ACML (begun with 5.3.0) , my make.inc:

CC = opencc
FORT = openf95
NVCC = nvcc

ARCH = ar
ARCHFLAGS = cr
RANLIB = ranlib

OPTS = -O3 -DADD_ -DCUBLAS_GFORTRAN
F77OPTS = -O3 -DADD_
FOPTS = -O3 -DADD_
NVOPTS = -O3 -DADD_ --compiler-options -fno-strict-aliasing -DUNIX
LDOPTS = -fPIC -Xlinker

LIB = -lstdc++ -lcudart -lcblas -lcublas -llapack -lpthread -lfortran -lffio -lm -lrt -lacml_mp -mp

failure errors:

../lib/libmagma.a(dlaex1.o): In function `magma_dlaex1':
/home/pe243/rpmbuild/tar.src/magma-1.3.0-open64/src/dlaex1.cpp:203: undefined reference to `magma_dlaed2_'
collect2: ld returned 1 exit status
make[1]: *** [testing_dsyevd_gpu] Error 1
make[1]: Leaving directory `/home/pe243/rpmbuild/tar.src/magma-1.3.0-open64/testing'
make: *** [test] Error 2

I've tried that bit with:
#define magma_dlaed2 FORTRAN_NAME( magma_dlaed2_, MAGMA_DLAED2_ )
in src/dlaex1.cpp

this gives me:

/home/pe243/rpmbuild/tar.src/magma-1.3.0-open64/testing/testing_zgetrf_gpu_f.F90:34: undefined reference to `cublas_init__'
/home/pe243/rpmbuild/tar.src/magma-1.3.0-open64/testing/testing_zgetrf_gpu_f.F90:49: undefined reference to `cublas_alloc__'
/home/pe243/rpmbuild/tar.src/magma-1.3.0-open64/testing/testing_zgetrf_gpu_f.F90:55: undefined reference to `cublas_alloc__'
/home/pe243/rpmbuild/tar.src/magma-1.3.0-open64/testing/testing_zgetrf_gpu_f.F90:74: undefined reference to `cublas_set_matrix__'
/home/pe243/rpmbuild/tar.src/magma-1.3.0-open64/testing/testing_zgetrf_gpu_f.F90:77: undefined reference to `cublas_set_matrix__'
...

I wonder if anybody's had any success with open64 & ACML?
lejeczek
 
Posts: 22
Joined: Tue Apr 09, 2013 2:57 am

Re: undefined reference to `magma_dlaed2_' with open64-4.5.2

Postby lejeczek » Fri May 03, 2013 8:08 am

also, I thought I'd mention that the same compilation (magma-1.3.0) succeeds on the same system only with distro's plain-vanilla gcc/gfortran (4.4.7-3) and atlas.
ps.
I'm a novice and wonder why ./testing_sgetrf_gpu gets no number for CPU
?

best regards
lejeczek
 
Posts: 22
Joined: Tue Apr 09, 2013 2:57 am

Re: undefined reference to `magma_dlaed2_' with open64-4.5.2

Postby mgates3 » Tue May 07, 2013 1:35 pm

To get CPU results, you need to add the -c (check) flag.

With:
Code: Select all
magma-1.3.0/testing> ./testing_sgetrf_gpu -c
MAGMA 1.3.0
device 0: Tesla S2050, 1147.0 MHz clock, 2687.4 MB memory, capability 2.0

Usage: ./testing_sgetrf_gpu -N <m,n> -c
  -N can be repeated up to 10 times. If only m is given, then m=n.
  -c or setting $MAGMA_TESTINGS_CHECK runs LAPACK and checks result.

  M     N     CPU GFlop/s (sec)   GPU GFlop/s (sec)   ||PA-LU||/(||A||*N)
=========================================================================
 1024  1024     44.79 (   0.02)     29.31 (   0.02)   2.22e-09
 2048  2048     71.22 (   0.08)     90.48 (   0.06)   1.92e-09



Without:
Code: Select all
magma-1.3.0/testing> ./testing_sgetrf_gpu
...
  M     N     CPU GFlop/s (sec)   GPU GFlop/s (sec)   ||PA-LU||/(||A||*N)
=========================================================================
 1024  1024     ---   (  ---  )     15.84 (   0.05)     --- 
 2048  2048     ---   (  ---  )     89.94 (   0.06)     --- 
mgates3
 
Posts: 399
Joined: Fri Jan 06, 2012 2:13 pm

Re: undefined reference to `magma_dlaed2_' with open64-4.5.2

Postby mgates3 » Tue May 07, 2013 2:13 pm

Can you please show the exact command that make is using to compile this file?
E.g., in the testing directory, what is the complete output of make testing_zgetrf_gpu_f:

Code: Select all
magma> cd testing
magma/testing> make testing_zgetrf_gpu_f
gfortran -fPIC -DADD_ -O3 -x f95-cpp-input -Dmagma_devptr_t="integer(kind=8)" -I/mnt/scratch/cuda/include -I../include -I../control -c testing_zgetrf_gpu_f.F90 -o testing_zgetrf_gpu_f.o
gfortran -fPIC -DGPUSHMEM=200 testing_zgetrf_gpu_f.o fortran.o -o testing_zgetrf_gpu_f \
   libtest.a lin/liblapacktest.a -L../lib -lmagma -lmagmablas \
   -L/mnt/scratch/sw/intel/composer_xe_2013.3.163/mkl/lib/intel64 -L/mnt/scratch/cuda/lib64 \
   -lmkl_intel_lp64 -lmkl_intel_thread -lmkl_core -lpthread -lcublas -lcudart -lm -fopenmp -liomp5 


If it is only that Fortran file that fails, you can easily skip it and compile all the C tests, e.g., with make -k.
mgates3
 
Posts: 399
Joined: Fri Jan 06, 2012 2:13 pm

Re: undefined reference to `magma_dlaed2_' with open64-4.5.2

Postby lejeczek » Tue May 14, 2013 9:02 am

hi mgates3

I have some success with acml-5.xx compilation, even with open64 instead of gcc but runtime errors

to troubleshoot it I am trying most generic setup while sticking to ACML, reverted back to gcc and now acml-4-4-0-gfortran-64bit-int64 compiles, but!
runtime fails:
testing_sgetrf_[17637]: segfault at 7f6c5c4d6000 ip 00007f6c5e663608 sp 00007fff428848b0 error 6 in libacml_mp.so[7f6c5deae000+1c7c000]
lejeczek
 
Posts: 22
Joined: Tue Apr 09, 2013 2:57 am

Re: undefined reference to `magma_dlaed2_' with open64-4.5.2

Postby lejeczek » Wed May 15, 2013 3:32 am

partial success with acml-5-3-0 + open64, it compiles but fails upon exec

terminate called after throwing an instance of 'cudaError_enum'
lejeczek
 
Posts: 22
Joined: Tue Apr 09, 2013 2:57 am


Return to User discussion

Who is online

Users browsing this forum: Bing [Bot] and 2 guests