Magma 1.3.0. multiple definition of magmaSetDevice(), etc.

Open discussion for MAGMA

Magma 1.3.0. multiple definition of magmaSetDevice(), etc.

Postby arom » Thu Nov 15, 2012 10:59 pm

Hi guys!

I'm very pleased to see new version of MAGMA. Thank you!
But
1.
Code: Select all
/home/arom/magma-1.3.0/lib/libmagma.a(dgetrf2_mgpu.o): In function `magmaSetDevice':
/home/arom/magma-1.3.0/src/dgetrf2_mgpu.cpp:15: multiple definition of `magmaSetDevice(int)'
/home/arom//magma-1.3.0/lib/libmagma.a(zgetrf2_mgpu.o):/home/arom/magma-1.3.0/src/zgetrf2_mgpu.cpp:15: first defined here


2. In my previous post "wish list" I requested to add DSTEDC() ZSTEDC() function. Moreover I attached my implementation via [DZ]STEDX() functions. Do you have plans to make this changes?

3. Could you at least include Fortran wrappers for [DZ]STEDX() functions, please?


Best regards,
Alexey
arom
 
Posts: 11
Joined: Wed Jun 27, 2012 3:22 am

Re: Magma 1.3.0. multiple definition of magmaSetDevice(), et

Postby mudshark » Mon Dec 10, 2012 8:23 am

I'm trying to build shared libraries and wonder if the error I'm getting is related to this post. Using Intel compilers

Code: Select all
........sorgqr_2stage_gpu.o sormqr_gpu_2stage.o ssygvd.o ssygst.o ssygst_gpu.o ssygst_m.o strsm_m.o sgeev.o sgehrd.o sgehrd2.o slahr2.o slahru.o sorghr.o sgesvd.o sgebrd.o slabrd_gpu.o dlaed2.o slaed2.o
cgetrf2_mgpu.o: In function `magmaSetDevice(int)':
cgetrf2_mgpu.cpp:(.text+0x1430): multiple definition of `magmaSetDevice(int)'
zgetrf2_mgpu.o:zgetrf2_mgpu.cpp:(.text+0x1490): first defined here
dgetrf2_mgpu.o: In function `magmaSetDevice(int)':
dgetrf2_mgpu.cpp:(.text+0x1400): multiple definition of `magmaSetDevice(int)'
zgetrf2_mgpu.o:zgetrf2_mgpu.cpp:(.text+0x1490): first defined here
sgetrf2_mgpu.o: In function `magmaSetDevice(int)':
sgetrf2_mgpu.cpp:(.text+0x1400): multiple definition of `magmaSetDevice(int)'
zgetrf2_mgpu.o:zgetrf2_mgpu.cpp:(.text+0x1490): first defined here
make[1]: *** [../lib/libmagma.so] Error 1
make[1]: Leaving directory `/root/magma-1.3.0/src'
make: *** [libmagma] Error 2
mudshark
 
Posts: 2
Joined: Mon Dec 10, 2012 7:20 am

Re: Magma 1.3.0. multiple definition of magmaSetDevice(), et

Postby mgates3 » Mon Dec 10, 2012 2:13 pm

Yes, sorry about that. You can make those functions static in *getrf2_mgpu.cpp to get rid of the multiple definitions. It was an oversight when making the release.

static void magmaSetDevice( int id ) {

You may also need to remove zhegvd_m.cpp from src/Makefile and chegvd_m.cpp from src/Makefile.src. Those two multi-GPU files had a missing dependency that got missed when we made the release.
-mark
mgates3
 
Posts: 437
Joined: Fri Jan 06, 2012 2:13 pm

Re: Magma 1.3.0. multiple definition of magmaSetDevice(), et

Postby mudshark » Wed Dec 12, 2012 11:06 am

cheers
mudshark
 
Posts: 2
Joined: Mon Dec 10, 2012 7:20 am

Re: Magma 1.3.0. multiple definition of magmaSetDevice(), et

Postby lejeczek » Mon Mar 03, 2014 2:47 pm

hi
I've followed I believe all the advices I could find on this forum and with:
###
GPU_TARGET = Fermi

CC = gcc
NVCC = nvcc
FORT = gfortran

ARCH = gcc
ARCHFLAGS = -shared -o
RANLIB = strip

OPTS = -O3 -DADD_ -fPIC -DCUBLAS_GFORTRAN
F77OPTS = -O3 -DADD_ -fPIC
FOPTS = -O3 -DADD_ -fPIC -x f95-cpp-input
#NVOPTS = -O3 -DADD_ -fPIC --shared --compiler-options -DUNIX
NVOPTS = -DADD_ --shared --compiler-options '-fPIC' -DUNIX -O3
#NVOPTS = -O3 -DADD_ -Xcompiler "-fno-strict-aliasing -fPIC --shared"
LDOPTS = -Xlinker -zmuldefs

LIB = -lpthread -lcblas -lcublas -lcudart -lstdc++ -lm -lacml_mp
###

(cuda 5.5 & gcc 4.7.2) attempt to build fails:

symv_fermi_mgpu.cu_o: In function `fillZero(double*, int)':
tmpxft_00006ce8_00000000-3_dsymv_fermi_mgpu.cudafe1.cpp:(.text+0x1360): multiple definition of `fillZero(double*, int)'
dsymv_fermi_mgpu_32.cu_o:tmpxft_00006ccd_00000000-3_dsymv_fermi_mgpu_32.cudafe1.cpp:(.text+0x90): first defined here
ssymv_fermi_mgpu.cu_o: In function `__device_stub__Z15kernel_fillZeroPfi(float*, int)':
tmpxft_00006fce_00000000-3_ssymv_fermi_mgpu.cudafe1.cpp:(.text+0x1270): multiple definition of `__device_stub__Z15kernel_fillZeroPfi(float*, int)'
ssymv_fermi_mgpu_32.cu_o:tmpxft_00006fb3_00000000-3_ssymv_fermi_mgpu_32.cudafe1.cpp:(.text+0x20): first defined here
ssymv_fermi_mgpu.cu_o: In function `kernel_fillZero(float*, int)':
tmpxft_00006fce_00000000-3_ssymv_fermi_mgpu.cudafe1.cpp:(.text+0x12d0): multiple definition of `kernel_fillZero(float*, int)'
ssymv_fermi_mgpu_32.cu_o:tmpxft_00006fb3_00000000-3_ssymv_fermi_mgpu_32.cudafe1.cpp:(.text+0x80): first defined here
ssymv_fermi_mgpu.cu_o: In function `fillZero(float*, int)':
tmpxft_00006fce_00000000-3_ssymv_fermi_mgpu.cudafe1.cpp:(.text+0x12e0): multiple definition of `fillZero(float*, int)'
ssymv_fermi_mgpu_32.cu_o:tmpxft_00006fb3_00000000-3_ssymv_fermi_mgpu_32.cudafe1.cpp:(.text+0x90): first defined here
collect2: error: ld returned 1 exit status
make[1]: *** [../lib/libmagmablas.so] Error 1
make[1]: Leaving directory `/__.aLocalStorages/vertex3.a/__.amyRPMbuild/sources/MAGMAlibs/magma-1.3.0-acml/magmablas'
make: *** [libmagmablas] Error 2

what can be wrong?
regards
lejeczek
 
Posts: 22
Joined: Tue Apr 09, 2013 2:57 am

Re: Magma 1.3.0. multiple definition of magmaSetDevice(), et

Postby mgates3 » Tue Mar 04, 2014 2:34 pm

This problem should be resolved in MAGMA 1.4.1. Please upgrade.
-mark
mgates3
 
Posts: 437
Joined: Fri Jan 06, 2012 2:13 pm


Return to User discussion

Who is online

Users browsing this forum: No registered users and 2 guests

cron