problem MAGMA-1.2.0 ATLAS-3.10.0 Lapack-3.4.1..help !!!

Open discussion for MAGMA

problem MAGMA-1.2.0 ATLAS-3.10.0 Lapack-3.4.1..help !!!

Postby ronmarc97 » Wed May 15, 2013 5:47 pm

Hello people, i need your help ...please

I am trying compile testing_ssyevd.cpp from Magma and i get this error
I use the next command lines

gcc -O3 -DADD_ -DGPUSHMEM=200 -I/usr/local/cuda/src/ -I/usr/local/cuda/include -I../include -c testing_ssyevd.cpp -o testing_ssyevd.o
gcc -O3 -DADD_ -DGPUSHMEM=200 -fPIC -Xlinker -zmuldefs -DGPUSHMEM=200 testing_ssyevd.o -o testing_ssyevd -L../lib -lcuda -L/home/ronald/magma-1.2.0/lib/ -lmagma -lmagmablas -lmagma -L/usr/local/cuda/lib64 -L/usr/local/cuda/lib -L/usr/local/cuda/include -L/usr/local/atlas/include -L/home/ronald/lapack-3.4.1/BLAS -lf2c -lgfortran -lstdc++ -lpthread -lblas -lcublas -lcudart -latlas -lsatlas -lf77blas -ldl -lm

And i get the next error:

testing_ssyevd.cpp:(.text+0x2cf): undefined reference to `slarnv_'
testing_ssyevd.cpp:(.text+0x2f1): undefined reference to `slacpy_'
testing_ssyevd.cpp:(.text+0x37c): undefined reference to `slacpy_'
testing_ssyevd.cpp:(.text+0x468): undefined reference to `ssyevd_'
testing_ssyevd.cpp:(.text+0x5e8): undefined reference to `ssyt21_'
testing_ssyevd.cpp:(.text+0x60a): undefined reference to `slacpy_'
../lib/libmagma.a(ssyevd.o): In function `magma_ssyevd':
ssyevd.cpp:(.text+0x149): undefined reference to `ssyevd_'
ssyevd.cpp:(.text+0x364): undefined reference to `slansy_'
ssyevd.cpp:(.text+0x3e1): undefined reference to `slascl_'
ssyevd.cpp:(.text+0x4ad): undefined reference to `ssterf_'
ssyevd.cpp:(.text+0x65a): undefined reference to `slacpy_'
../lib/libmagma.a(sstedx.o): In function `magma_sstedx':
sstedx.cpp:(.text+0x2e7): undefined reference to `ssteqr_'
sstedx.cpp:(.text+0x39e): undefined reference to `slaset_'
sstedx.cpp:(.text+0x3c8): undefined reference to `slanst_'
sstedx.cpp:(.text+0x54c): undefined reference to `slanst_'
sstedx.cpp:(.text+0x5a3): undefined reference to `slascl_'
sstedx.cpp:(.text+0x602): undefined reference to `slascl_'
sstedx.cpp:(.text+0x6e0): undefined reference to `slascl_'
sstedx.cpp:(.text+0x75b): undefined reference to `ssteqr_'
sstedx.cpp:(.text+0x8aa): undefined reference to `slascl_'
sstedx.cpp:(.text+0x8ec): undefined reference to `slascl_'
sstedx.cpp:(.text+0x99d): undefined reference to `slascl_'
../lib/libmagma.a(slaex0.o): In function `magma_slaex0':
slaex0.cpp:(.text+0x1db): undefined reference to `ssteqr_'
slaex0.cpp:(.text+0x5f7): undefined reference to `slacpy_'
../lib/libmagma.a(slaex3.o): In function `magma_slaex3':
slaex3.cpp:(.text+0x418): undefined reference to `slaed4_'
slaex3.cpp:(.text+0x487): undefined reference to `slamrg_'
slaex3.cpp:(.text+0x7e8): undefined reference to `slacpy_'
slaex3.cpp:(.text+0x8e0): undefined reference to `slacpy_'
slaex3.cpp:(.text+0xcbb): undefined reference to `slaset_'
slaex3.cpp:(.text+0xd17): undefined reference to `slaset_'
../lib/libmagma.a(slaed2.o): In function `magma_slaed2_':
slaed2.f:(.text+0x1ff): undefined reference to `slamrg_'
slaed2.f:(.text+0x3cb): undefined reference to `slacpy_'
slaed2.f:(.text+0x631): undefined reference to `slapy2_'
slaed2.f:(.text+0xeb1): undefined reference to `slacpy_'
../lib/libmagma.a(ssytrd.o): In function `magma_ssytrd':
ssytrd.cpp:(.text+0x553): undefined reference to `ssytrd_'
ssytrd.cpp:(.text+0x878): undefined reference to `ssytd2_'
../lib/libmagma.a(slatrd.o): In function `magma_slatrd':
slatrd.cpp:(.text+0x115): undefined reference to `slarfg_'
slatrd.cpp:(.text+0x621): undefined reference to `slarfg_'
../lib/libmagma.a(sormqr.o): In function `magma_sormqr':
sormqr.cpp:(.text+0x825): undefined reference to `sormqr_'
../lib/libmagma.a(sormql.o): In function `magma_sormql':
sormql.cpp:(.text+0x816): undefined reference to `sormql_'
collect2: ld returned 1 exit status


Anybody can help me? Maybe i've forgotten any library ..i dont know

Tanhks in advance
ronmarc97
 
Posts: 6
Joined: Wed May 15, 2013 5:35 pm

Re: problem MAGMA-1.2.0 ATLAS-3.10.0 Lapack-3.4.1..help !!!

Postby Stan Tomov » Mon May 20, 2013 11:15 pm

Hello,
These functions are from the LAPACK library. LAPACK is a MAGMA dependency and has to be installed or your system and linked.I see you have
Code: Select all
-L/home/ronald/lapack-3.4.1/

but don't have -llapack. Do you have a liblapack.a somewhere in /home/ronald/lapack-3.4.1/?
Stan Tomov
 
Posts: 247
Joined: Fri Aug 21, 2009 10:39 pm

Re: problem MAGMA-1.2.0 ATLAS-3.10.0 Lapack-3.4.1..help !!!

Postby ronmarc97 » Tue May 21, 2013 10:03 am

Hello

Yes, I have the liblapack.a in /home/ronald/lapack-3.4.1/

Now i compiled with this commands lines, and the error is the same

gcc -O3 -DADD_ -DGPUSHMEM=200 -I/usr/local/cuda/src/ -I/usr/local/cuda/include -I../include -c testing_ssyevd.cpp -o testing_ssyevd.o
gcc -O3 -DADD_ -DCUBLAS_GFORTRAN -DGPUSHMEM=200 -fPIC -Xlinker -zmuldefs -DGPUSHMEM=200 testing_ssyevd.o -o testing_ssyevd -L../lib -lcuda -L/home/ronald/magma-1.2.0/lib -L/home/ronald/magma-1.2.0/exp/include -L/home/ronald/magma-1.2.0/testing -L/home/ronald/magma-1.2.0/control -L/home/ronald/magma-1.2.0/testing/lin -L/home/ronald/magma-1.2.0/install/include -L/home/ronald/magma-1.2.0/include -lmagma -lmagmablas -lmagma -L/usr/local/cuda/lib64 -I/usr/local/cuda/lib -I/usr/local/cuda/include -L/usr/local/atlas/include -L/home/ronald/ATLAS3.10.0/Linux_C2D64SSE3/interfaces/lapack/F77/src -L/home/ronald/ATLAS3.10.0/Linux_C2D64SSE3/src/lapack -L/home/ronald/ATLAS3.10.0/Linux_C2D64SSE3/interfaces/lapack/C/src -L/home/ronald/local/atlas/include/atlas -L/home/ronald/ATLAS3.10.0/Linux_C2D64SSE3/include -L/home/ronald/lapack-3.4.1/lapacke/src -L/home/ronald/local/atlas/lib -L/usr/local/atlas/include -L/home/ronald/lapack-3.4.1/ -L/home/ronald/ATLAS/Linux_C2D64SSE3/lib/ -L/home/ronald/local/atlas/lib/ -L/usr/local/atlas/lib/ -L/home/ronald/lapack-3.4.1/SRC -L/home/ronald/lapack-3.4.1/BLAS -L/usr/lib64 -lf2c -lgfortran -lstdc++ -lpthread -lblas -lcublas -lcudart -latlas -lsatlas -lf77blas -lptcblas -LLIBDIR -lcblas -llapack -lcuda -ldl -fopenmp -lm


and the error
testing_ssyevd.o: In function `main':
testing_ssyevd.cpp:(.text+0x2cf): undefined reference to `slarnv_'
testing_ssyevd.cpp:(.text+0x2f1): undefined reference to `slacpy_'
testing_ssyevd.cpp:(.text+0x37c): undefined reference to `slacpy_'
testing_ssyevd.cpp:(.text+0x468): undefined reference to `ssyevd_'
testing_ssyevd.cpp:(.text+0x5e8): undefined reference to `ssyt21_'
testing_ssyevd.cpp:(.text+0x60a): undefined reference to `slacpy_'
../lib/libmagma.a(ssyevd.o): In function `magma_ssyevd':
ssyevd.cpp:(.text+0x149): undefined reference to `ssyevd_'
ssyevd.cpp:(.text+0x364): undefined reference to `slansy_'
ssyevd.cpp:(.text+0x3e1): undefined reference to `slascl_'
ssyevd.cpp:(.text+0x4ad): undefined reference to `ssterf_'
ssyevd.cpp:(.text+0x65a): undefined reference to `slacpy_'
../lib/libmagma.a(sstedx.o): In function `magma_sstedx':
sstedx.cpp:(.text+0x2e7): undefined reference to `ssteqr_'
sstedx.cpp:(.text+0x39e): undefined reference to `slaset_'
sstedx.cpp:(.text+0x3c8): undefined reference to `slanst_'
sstedx.cpp:(.text+0x54c): undefined reference to `slanst_'
sstedx.cpp:(.text+0x5a3): undefined reference to `slascl_'
sstedx.cpp:(.text+0x602): undefined reference to `slascl_'
sstedx.cpp:(.text+0x6e0): undefined reference to `slascl_'
sstedx.cpp:(.text+0x75b): undefined reference to `ssteqr_'
sstedx.cpp:(.text+0x8aa): undefined reference to `slascl_'
sstedx.cpp:(.text+0x8ec): undefined reference to `slascl_'
sstedx.cpp:(.text+0x99d): undefined reference to `slascl_'
../lib/libmagma.a(slaex0.o): In function `magma_slaex0':
slaex0.cpp:(.text+0x1db): undefined reference to `ssteqr_'
slaex0.cpp:(.text+0x5f7): undefined reference to `slacpy_'
../lib/libmagma.a(slaex3.o): In function `magma_slaex3':
slaex3.cpp:(.text+0x418): undefined reference to `slaed4_'
slaex3.cpp:(.text+0x487): undefined reference to `slamrg_'
slaex3.cpp:(.text+0x7e8): undefined reference to `slacpy_'
slaex3.cpp:(.text+0x8e0): undefined reference to `slacpy_'
slaex3.cpp:(.text+0xcbb): undefined reference to `slaset_'
slaex3.cpp:(.text+0xd17): undefined reference to `slaset_'
../lib/libmagma.a(slaed2.o): In function `magma_slaed2_':
slaed2.f:(.text+0x1ff): undefined reference to `slamrg_'
slaed2.f:(.text+0x3cb): undefined reference to `slacpy_'
slaed2.f:(.text+0x631): undefined reference to `slapy2_'
slaed2.f:(.text+0xeb1): undefined reference to `slacpy_'
../lib/libmagma.a(ssytrd.o): In function `magma_ssytrd':
ssytrd.cpp:(.text+0x553): undefined reference to `ssytrd_'
ssytrd.cpp:(.text+0x878): undefined reference to `ssytd2_'
../lib/libmagma.a(slatrd.o): In function `magma_slatrd':
slatrd.cpp:(.text+0x115): undefined reference to `slarfg_'
slatrd.cpp:(.text+0x621): undefined reference to `slarfg_'
../lib/libmagma.a(sormqr.o): In function `magma_sormqr':
sormqr.cpp:(.text+0x825): undefined reference to `sormqr_'
../lib/libmagma.a(sormql.o): In function `magma_sormql':
sormql.cpp:(.text+0x816): undefined reference to `sormql_'
collect2: ld returned 1 exit status


PD:
When i installed the magma (with make)..only some testing functions were compiled like:
testing_zgebrd
testing_zgehrd
testing_zgelqf
testing_zgelqf_gpu
testing_zgemm
testing_zgemv
testing_zgeqlf
testing_zgeqrf
testing_zgeqrf_gpu
testing_zgeqrs3_gpu
and anothers 10 more

But the testing_ssyevd (that i want to use) and the rest were not compiled.
ronmarc97
 
Posts: 6
Joined: Wed May 15, 2013 5:35 pm

Re: problem MAGMA-1.2.0 ATLAS-3.10.0 Lapack-3.4.1..help !!!

Postby Stan Tomov » Tue May 21, 2013 10:19 am

Hi,
These undefined routines are supposed to be in lapack. Maybe check to see if they are indeed there, e.g.,
Code: Select all
nm liblapack.a | grep ssyevd

If it is not there, probably you have some incomplete version of LAPACK, e.g., something that comes with ATLAS. If it is there, probably just adding -llapack once more at the end will fix the problem.
Stan Tomov
 
Posts: 247
Joined: Fri Aug 21, 2009 10:39 pm

Re: problem MAGMA-1.2.0 ATLAS-3.10.0 Lapack-3.4.1..help !!!

Postby ronmarc97 » Tue May 21, 2013 12:11 pm

Hi

I checked:
nm liblapack.a | grep ssyevd
nm: 'liblapack.a': No such file

There is not ssyevd routine in the liblapack.a

I tried adding -llapack once more, but continue with the same error

How i get the complete version of LAPACK, because i downloaded Lapack-3.4.1.tgz....is not it the complete version ??..and downloaded too atlas3.10.0.tar.bz2..
Maybe somentig in the make.inc or Makefile is wrong ???

MAGMA : make.inc
#/////////////////////////////////////////////////////////////////////////////
# -- MAGMA (version 1.2.0) --
# Univ. of Tennessee, Knoxville
# Univ. of California, Berkeley
# Univ. of Colorado, Denver
# May 2012
#/////////////////////////////////////////////////////////////////////////////

#
# GPU_TARGET specifies for which GPU you want to compile MAGMA:
# "Tesla" (NVIDIA compute capability 1.x cards)
# "Fermi" (NVIDIA compute capability 2.x cards)
# See http://developer.nvidia.com/cuda-gpus

GPU_TARGET = Fermi

CC = /usr/bin/gcc -gcc
NVCC = /usr/local/cuda/bin/nvcc
FORT = /usr/bin/gfortran -DCUBLAS_GFORTRAN -gfortran

ARCH = ar
ARCHFLAGS = cr
RANLIB = ranlib

OPTS = -O3 -DADD_
FOPTS = -O3 -DADD_ -x f95-cpp-input
NVOPTS = --compiler-options -fno-strict-aliasing -DUNIX -O3 -DADD_
LDOPTS = -fPIC -Xlinker -zmuldefs

LIB = /home/ronald/lapack-3.4.1/liblapack.a \
/usr/local/atlas/lib/liblapack.a \
-L/home/ronald/ATLAS3.10.0/include \
-L/home/ronald/local/atlas/include \
-L/opt/acml5.1.0/gfortran64/lib \
-L/opt/intel/composer_xe_2011_sp1.11.339/mkl/include \
-L/home/ronald/magma-1.2.0/exp/include \
-L/home/ronald/magma-1.2.0/install/include \
-L/home/ronald/magma-1.2.0/include \
-L/home/ronald/lapack-3.4.1/INSTALL \
-L/home/ronald/lapack-3.4.1/SRC \
-L/home/ronald/lapack-3.4.1/BLAS \
-L/home/ronald/lapack-3.4.1/TESTING \
-L/usr/local/cuda/lib64 \
-L/usr/local/atlas/lib \
-lf2c -lgfortran -lstdc++ -lpthread -lblas -lcublas -lcudart -latlas -lf77blas -lcblas -llapack -fopenmp -lm


CUDADIR = /usr/local/cuda

LIBDIR = -L/usr/local/atlas/lib -L/usr/local/atlas/include -L/home/ronald/ATLAS3.10.0/include -L/usr/local/lib64 -L/opt/intel/composer_xe_2011_sp1.11.339/mkl/include -L/opt/acml5.1.0/gfortran64/lib -L/home/ronald/magma-1.2.0/exp/include -L/home/ronald/magma-1.2.0/install/include -L/home/ronald/lapack-3.4.1/SRC -L/home/ronald/lapack-3.4.1/BLAS -L/home/ronald/magma-1.2.0/lib -L/usr/local/cuda/lib64 \
-L$(CUDADIR)/lib64

INC = -I../include -I$(CUDADIR)/include -I/home/ronald/magma-1.2.0/include -I/usr/local/cuda/include -I/opt/intel/mkl/include/

#LIBMAGMA = /home/ronald/magma-1.2.0/lib/magma.a
#LIBMAGMABLAS = /home/ronald/magma-1.2.0/lib/magmablas.a


LAPACK: make.inc
####################################################################
# LAPACK make include file. #
# LAPACK, Version 3.4.0 #
# April 2012 #
####################################################################
#
SHELL = /bin/sh
#
# Modify the FORTRAN and OPTS definitions to refer to the
# compiler and desired compiler options for your machine. NOOPT
# refers to the compiler options desired when NO OPTIMIZATION is
# selected. Define LOADER and LOADOPTS to refer to the loader and
# desired load options for your machine.
#
FORTRAN = gfortran
OPTS = -O2
DRVOPTS = $(OPTS)
NOOPT = -O0
LOADER = gfortran
LOADOPTS =
#
# Timer for the SECOND and DSECND routines
#
# Default : SECOND and DSECND will use a call to the EXTERNAL FUNCTION ETIME
#TIMER = EXT_ETIME
# For RS6K : SECOND and DSECND will use a call to the EXTERNAL FUNCTION ETIME_
# TIMER = EXT_ETIME_
# For gfortran compiler: SECOND and DSECND will use a call to the INTERNAL FUNCTION ETIME
TIMER = INT_ETIME
# If your Fortran compiler does not provide etime (like Nag Fortran Compiler, etc...)
# SECOND and DSECND will use a call to the INTERNAL FUNCTION CPU_TIME
# TIMER = INT_CPU_TIME
# If neither of this works...you can use the NONE value... In that case, SECOND and DSECND will always return 0
# TIMER = NONE
#
# Configuration LAPACKE: Native C interface to LAPACK
# To generate LAPACKE library: type 'make lapackelib'
# Configuration file: turned off (default)
# Complex types: C99 (default)
# Name pattern: mixed case (default)
# (64-bit) Data model: LP64 (default)
#
# CC is the C compiler, normally invoked with options CFLAGS.
#
CC = gcc
CFLAGS = -O3
#
# The archiver and the flag(s) to use when building archive (library)
# If you system has no ranlib, set RANLIB = echo.
#
ARCH = ar
ARCHFLAGS= cr
RANLIB = ranlib
#
# Location of the extended-precision BLAS (XBLAS) Fortran library
# used for building and testing extended-precision routines. The
# relevant routines will be compiled and XBLAS will be linked only if
# USEXBLAS is defined.
#
# USEXBLAS = Yes
XBLASLIB =
# XBLASLIB = -lxblas
#
# The location of the libraries to which you will link. (The
# machine-specific, optimized BLAS library should be used whenever
# possible.)
#
BLASLIB = ../../librefblas.a
LAPACKLIB = lapack_Corei164SSE3.a
# liblapack.a
TMGLIB = libtmglib.a
LAPACKELIB = liblapacke.a


Any ideas..? thanks a lot for help
ronmarc97
 
Posts: 6
Joined: Wed May 15, 2013 5:35 pm

Re: problem MAGMA-1.2.0 ATLAS-3.10.0 Lapack-3.4.1..help !!!

Postby mgates3 » Wed May 29, 2013 5:15 pm

Check your nm command. It looks like you didn't give the full path to lapack, so nm is reporting an error. For instance, on my machine it looks like this:

nm /Users/mgates/src/lapack-3.4.2/liblapack.a | grep ssyevd
/Users/mgates/src/lapack-3.4.2/liblapack.a(ssyevd.o):
00000000 T _ssyevd_
U _ssyevd_
mgates3
 
Posts: 330
Joined: Fri Jan 06, 2012 2:13 pm

Re: problem MAGMA-1.2.0 ATLAS-3.10.0 Lapack-3.4.1..help !!!

Postby mgates3 » Wed May 29, 2013 5:37 pm

There are some weird things in your make.inc file. First, LIB should just be the libraries themselves, not any directories. The directories go in LIBDIR.

LIBDIR doesn't generally need paths to include directories, only to lib directories.

Generally it's best to use the -lname syntax instead of explicitly listing the library file, libname.a. So delete the two liblapack.a from you LIB.

Your paths to LAPACK look weird. There should be only one path, to the top level lapack directory, not to every sub-directory. That is,

-L/home/ronald/lapack-3.4.1

instead of:

-L/home/ronald/lapack-3.4.1/INSTALL
-L/home/ronald/lapack-3.4.1/SRC
-L/home/ronald/lapack-3.4.1/BLAS
-L/home/ronald/lapack-3.4.1/TESTING

I would try setting:

LIB = -lf2c -lgfortran -lstdc++ -lpthread -lblas -lcublas -lcudart -latlas -lf77blas -lcblas -llapack -fopenmp -lm

LIBDIR = -L/usr/local/atlas/lib -L/usr/local/lib64 -L/opt/acml5.1.0/gfortran64/lib -L/home/ronald/lapack-3.4.1 -L/home/ronald/magma-1.2.0/lib
-L$(CUDADIR)/lib64

Also, if liblapack.a is in both /usr/local/atlas/lib and /home/ronald/lapack-3.4.1, you may have a problem of which one gets chosen. Try listing the lapack-3.4.1 directory first in LIBDIR.

You list paths to ACML and MKL. If you have MKL, you should probably get lapack from MKL rather than compiling it yourself from source. MKL will have better optimized versions of routines.

Finally, magma 1.3 has been out for several months. Generally, you should use the latest version.

-mark
mgates3
 
Posts: 330
Joined: Fri Jan 06, 2012 2:13 pm

Re: problem MAGMA-1.2.0 ATLAS-3.10.0 Lapack-3.4.1..help !!!

Postby ronmarc97 » Sat Jun 01, 2013 4:31 pm

Hello again...and thanks for help me.
I tried installing magma-1.3.0 .. and again the same error
When is finishing the instalation (with make), gives that error.

testing_zgemm.o: In function `main':
testing_zgemm.cpp:(.text+0x515): undefined reference to `zlarnv_'
testing_zgemm.cpp:(.text+0x53a): undefined reference to `zlarnv_'
testing_zgemm.cpp:(.text+0x55f): undefined reference to `zlarnv_'
testing_zgemm.cpp:(.text+0x987): undefined reference to `zlange_'
collect2: ld returned 1 exit status
make[1]: *** [testing_zgemm] Error 1
make[1]: Leaving directory `/home/ronald/magma-1.3.0/testing'
make: *** [test] Error 2


And when i tried to compile testing_ssyevd, gives the same error

testing_ssyevd.o: In function `main':
testing_ssyevd.cpp:(.text+0x32d): undefined reference to `slarnv_'
testing_ssyevd.cpp:(.text+0x354): undefined reference to `slacpy_'
testing_ssyevd.cpp:(.text+0x3e3): undefined reference to `slacpy_'
testing_ssyevd.cpp:(.text+0x5a4): undefined reference to `ssyevd_'
testing_ssyevd.cpp:(.text+0x7b8): undefined reference to `ssyt21_'
testing_ssyevd.cpp:(.text+0x7df): undefined reference to `slacpy_'
../lib/libmagma.a(ssyevd.o): In function `magma_ssyevd':
ssyevd.cpp:(.text+0x3cf): undefined reference to `slansy_'
ssyevd.cpp:(.text+0x44d): undefined reference to `slascl_'
ssyevd.cpp:(.text+0x507): undefined reference to `ssterf_'
ssyevd.cpp:(.text+0x6fe): undefined reference to `slacpy_'
../lib/libmagma.a(sstedx.o): In function `magma_sstedx':
sstedx.cpp:(.text+0x2e7): undefined reference to `ssteqr_'
sstedx.cpp:(.text+0x39e): undefined reference to `slaset_'
sstedx.cpp:(.text+0x3c8): undefined reference to `slanst_'
sstedx.cpp:(.text+0x54c): undefined reference to `slanst_'
sstedx.cpp:(.text+0x5a3): undefined reference to `slascl_'
sstedx.cpp:(.text+0x602): undefined reference to `slascl_'
sstedx.cpp:(.text+0x6e0): undefined reference to `slascl_'
sstedx.cpp:(.text+0x75b): undefined reference to `ssteqr_'
sstedx.cpp:(.text+0x8aa): undefined reference to `slascl_'
sstedx.cpp:(.text+0x8ec): undefined reference to `slascl_'
sstedx.cpp:(.text+0x99d): undefined reference to `slascl_'
../lib/libmagma.a(ssytrd.o): In function `magma_ssytrd':
ssytrd.cpp:(.text+0x55e): undefined reference to `ssytrd_'
ssytrd.cpp:(.text+0x987): undefined reference to `ssytd2_'
../lib/libmagma.a(slatrd.o): In function `magma_slatrd':
slatrd.cpp:(.text+0x159): undefined reference to `slarfg_'
slatrd.cpp:(.text+0x6c4): undefined reference to `slarfg_'
../lib/libmagma.a(sormql.o): In function `magma_sormql':
sormql.cpp:(.text+0x866): undefined reference to `sormql_'
../lib/libmagma.a(sormqr.o): In function `magma_sormqr':
sormqr.cpp:(.text+0x731): undefined reference to `sormqr_'
../lib/libmagma.a(slaex0.o): In function `magma_slaex0':
slaex0.cpp:(.text+0x1db): undefined reference to `ssteqr_'
slaex0.cpp:(.text+0x5f7): undefined reference to `slacpy_'
../lib/libmagma.a(slaex3.o): In function `magma_slaex3':
slaex3.cpp:(.text+0x438): undefined reference to `slaed4_'
slaex3.cpp:(.text+0x4a7): undefined reference to `slamrg_'
slaex3.cpp:(.text+0x758): undefined reference to `slacpy_'
slaex3.cpp:(.text+0x850): undefined reference to `slacpy_'
slaex3.cpp:(.text+0xdee): undefined reference to `slaset_'
slaex3.cpp:(.text+0xe38): undefined reference to `slaset_'
../lib/libmagma.a(slaed2.o): In function `magma_slaed2_':
slaed2.f:(.text+0x1ff): undefined reference to `slamrg_'
slaed2.f:(.text+0x3cb): undefined reference to `slacpy_'
slaed2.f:(.text+0x631): undefined reference to `slapy2_'
slaed2.f:(.text+0xeb1): undefined reference to `slacpy_'
collect2: ld returned 1 exit status



My new make.inc is

#//////////////////////////////////////////////////////////////////////////////
# -- MAGMA (version 1.3.0) --
# Univ. of Tennessee, Knoxville
# Univ. of California, Berkeley
# Univ. of Colorado, Denver
# November 2012
#//////////////////////////////////////////////////////////////////////////////

#
# GPU_TARGET specifies for which GPU you want to compile MAGMA:
# "Tesla" (NVIDIA compute capability 1.x cards)
# "Fermi" (NVIDIA compute capability 2.x cards)
# See http://developer.nvidia.com/cuda-gpus

GPU_TARGET = Fermi

CC = /usr/bin/gcc
NVCC = /usr/local/cuda/bin/nvcc
FORT = /usr/bin/gfortran

ARCH = ar
ARCHFLAGS = cr
RANLIB = ranlib

OPTS = -O3 -DADD_
F77OPTS = -O3 -DADD_
FOPTS = -O3 -DADD_ -x f95-cpp-input
NVOPTS = -O3 -DADD_ --compiler-options -fno-strict-aliasing -DUNIX
LDOPTS = -fPIC -Xlinker -zmuldefs

LIB = -lf2c -lgfortran -lstdc++ -lpthread -lblas -lcublas -lcudart -latlas -lf77blas -lcblas -llapack -fopenmp -lm

CUDADIR = /usr/local/cuda

LIBDIR = -L/usr/local/atlas/lib -L/usr/local/lib64 -L/home/ronald/lapack-3.4.1 -L/home/ronald/magma-1.2.0/lib \
-L$(CUDADIR)/lib64

INC = -I$(CUDADIR)/include



Any helps please...i would apreciatte a lot
ronmarc97
 
Posts: 6
Joined: Wed May 15, 2013 5:35 pm

Re: problem MAGMA-1.2.0 ATLAS-3.10.0 Lapack-3.4.1..help !!!

Postby mgates3 » Mon Jun 03, 2013 3:25 pm

Try moving lapack directory to the beginning of LIBDIR. (And fix magma-1.2.0 to magma-1.3.0.)

LIBDIR = -L/home/ronald/lapack-3.4.1 -L/usr/local/atlas/lib -L/usr/local/lib64 -L/home/ronald/magma-1.3.0/lib \
-L$(CUDADIR)/lib64

The problem being that ATLAS has liblapack.a, but it is incomplete:
romulus ~> nm /mnt/scratch/sw/atlas-gcc/lib/liblapack.a | grep larnv
romulus ~>

Whereas the full lapack contains these functions:
romulus ~> nm ~/src/lapack-3.4.2/liblapack.a | grep larnv
U slarnv_
U dlarnv_
clarnv.o:
0000000000000000 T clarnv_
U slarnv_
zlarnv.o:
0000000000000000 T zlarnv_
U dlarnv_
slarnv.o:
0000000000000000 T slarnv_
U slarnv_
dlarnv.o:
0000000000000000 T dlarnv_
U dlarnv_
mgates3
 
Posts: 330
Joined: Fri Jan 06, 2012 2:13 pm

Re: problem MAGMA-1.2.0 ATLAS-3.10.0 Lapack-3.4.1..help !!!

Postby ronmarc97 » Tue Jun 04, 2013 2:02 pm

Hello again...and thanks a lot !!

I changed de LIBDIR in the magma make.inc

LIBDIR = -L/home/ronald/lapack-3.4.1 -L/usr/local/atlas/lib -L/usr/local/lib64 -L/home/ronald/magma-1.3.0/lib \
-L$(CUDADIR)/lib64

Now gives that error when i tried to install with make:

/home/ronald/lapack-3.4.2/liblapack.a(zgetrf.o): In function `zgetrf_':
zgetrf.f:(.text+0x494): undefined reference to `ztrsm_'
zgetrf.f:(.text+0x573): undefined reference to `zgemm_'
/home/ronald/lapack-3.4.2/liblapack.a(zgetf2.o): In function `zgetf2_':
zgetf2.f:(.text+0x21e): undefined reference to `izamax_'
zgetf2.f:(.text+0x295): undefined reference to `zswap_'
zgetf2.f:(.text+0x361): undefined reference to `zgeru_'
zgetf2.f:(.text+0x551): undefined reference to `zscal_'
collect2: ld returned 1 exit status
make[1]: *** [testing_zblas] Error 1
make[1]: Leaving directory `/home/ronald/magma-1.3.0/testing'
make: *** [test] Error 2


Also i chcked the liblapack.a like that:

nm /home/ronald/lapack-3.4.2/liblapack.a | grep zget
U zgetrs_
U zgetrf_
U zgetrs_
U zgetrf_
U zgetrs_
zgetc2.o:
0000000000000000 T zgetc2_
zgetf2.o:
0000000000000000 T zgetf2_
zgetrf.o:
U zgetf2_
0000000000000000 T zgetrf_
zgetri.o:
0000000000000000 T zgetri_
zgetrs.o:
0000000000000000 T zgetrs_
U zgetc2_
U zgetrf_
U zgetrs_

nm /home/ronald/lapack-3.4.2/liblapack.a | grep zt
slarzt.o:
0000000000000000 T slarzt_
U slarzt_
U slarzt_
dlarzt.o:
0000000000000000 T dlarzt_
U dlarzt_
U dlarzt_
clarzt.o:
0000000000000000 T clarzt_
U clarzt_
U clarzt_
U ztrsm_
U ztbsv_
U ztrsen_
U ztrsen_
U ztrevc_
U ztrevc_
U ztrsna_
U ztgevc_
U ztrmm_
U ztrtrs_
U ztrsm_

I tried to compile testing_ssyevd and again the same error:

testing_ssyevd.o: In function `main':
testing_ssyevd.cpp:(.text+0x32d): undefined reference to `slarnv_'
testing_ssyevd.cpp:(.text+0x354): undefined reference to `slacpy_'
testing_ssyevd.cpp:(.text+0x3e3): undefined reference to `slacpy_'
testing_ssyevd.cpp:(.text+0x5a4): undefined reference to `ssyevd_'
testing_ssyevd.cpp:(.text+0x7b8): undefined reference to `ssyt21_'
testing_ssyevd.cpp:(.text+0x7df): undefined reference to `slacpy_'
../lib/libmagma.a(ssyevd.o): In function `magma_ssyevd':
ssyevd.cpp:(.text+0x3cf): undefined reference to `slansy_'
ssyevd.cpp:(.text+0x44d): undefined reference to `slascl_'
ssyevd.cpp:(.text+0x507): undefined reference to `ssterf_'
ssyevd.cpp:(.text+0x6fe): undefined reference to `slacpy_'
../lib/libmagma.a(sstedx.o): In function `magma_sstedx':
sstedx.cpp:(.text+0x2e7): undefined reference to `ssteqr_'
sstedx.cpp:(.text+0x39e): undefined reference to `slaset_'
sstedx.cpp:(.text+0x3c8): undefined reference to `slanst_'
sstedx.cpp:(.text+0x54c): undefined reference to `slanst_'
sstedx.cpp:(.text+0x5a3): undefined reference to `slascl_'
sstedx.cpp:(.text+0x602): undefined reference to `slascl_'
sstedx.cpp:(.text+0x6e0): undefined reference to `slascl_'
sstedx.cpp:(.text+0x75b): undefined reference to `ssteqr_'
sstedx.cpp:(.text+0x8aa): undefined reference to `slascl_'
sstedx.cpp:(.text+0x8ec): undefined reference to `slascl_'
sstedx.cpp:(.text+0x99d): undefined reference to `slascl_'
../lib/libmagma.a(ssytrd.o): In function `magma_ssytrd':
ssytrd.cpp:(.text+0x55e): undefined reference to `ssytrd_'
ssytrd.cpp:(.text+0x987): undefined reference to `ssytd2_'
../lib/libmagma.a(slatrd.o): In function `magma_slatrd':
slatrd.cpp:(.text+0x159): undefined reference to `slarfg_'
slatrd.cpp:(.text+0x6c4): undefined reference to `slarfg_'
../lib/libmagma.a(sormql.o): In function `magma_sormql':
sormql.cpp:(.text+0x866): undefined reference to `sormql_'
../lib/libmagma.a(sormqr.o): In function `magma_sormqr':
sormqr.cpp:(.text+0x731): undefined reference to `sormqr_'
../lib/libmagma.a(slaex0.o): In function `magma_slaex0':
slaex0.cpp:(.text+0x1db): undefined reference to `ssteqr_'
slaex0.cpp:(.text+0x5f7): undefined reference to `slacpy_'
../lib/libmagma.a(slaex3.o): In function `magma_slaex3':
slaex3.cpp:(.text+0x438): undefined reference to `slaed4_'
slaex3.cpp:(.text+0x4a7): undefined reference to `slamrg_'
slaex3.cpp:(.text+0x758): undefined reference to `slacpy_'
slaex3.cpp:(.text+0x850): undefined reference to `slacpy_'
slaex3.cpp:(.text+0xdee): undefined reference to `slaset_'
slaex3.cpp:(.text+0xe38): undefined reference to `slaset_'
../lib/libmagma.a(slaed2.o): In function `magma_slaed2_':
slaed2.f:(.text+0x1ff): undefined reference to `slamrg_'
slaed2.f:(.text+0x3cb): undefined reference to `slacpy_'
slaed2.f:(.text+0x631): undefined reference to `slapy2_'
slaed2.f:(.text+0xeb1): undefined reference to `slacpy_'
collect2: ld returned 1 exit status


There is another thing, when i installed the ATLAS, gave the next error when i was running the sanity tests to ensure my libraries are producing correct answers (make check)

sqrtst.o: In function `qrtest':
qrtst.c:(.text+0x11b4): undefined reference to `ATL_C2Fsormqr'
sqrtst.o: In function `rqtest':
qrtst.c:(.text+0x16d8): undefined reference to `ATL_C2Fsormrq'
sqrtst.o: In function `qltest':
qrtst.c:(.text+0x1c39): undefined reference to `ATL_C2Fsormql'
sqrtst.o: In function `lqtest':
qrtst.c:(.text+0x218a): undefined reference to `ATL_C2Fsormlq'
collect2: ld returned 1 exit status
make[3]: *** [xsqrtst] Error 1


Is it possible that the problem is with ATLAS

Again, any help is welcome...thanks a lot partners
ronmarc97
 
Posts: 6
Joined: Wed May 15, 2013 5:35 pm

Next

Return to User discussion

Who is online

Users browsing this forum: No registered users and 1 guest

cron