I am trying to build certain MAGMA functions into a shared library. The idea behind this is that I want a number of backends (CPU blas, MAGMA, ... etc) that adhere to a common interface for a benchmarking application that I am developing. I have tried to do this using the static libraries supplied with MAGMA by executing the following commands (scons output)
- Code: Select all
g++ -o src/bends/LAPACK/bm_LAPACK_MAGMA-0.2.os -c -fPIC -I/usr/local/cuda/include -I/home/elezar/src/cuda/magma_0.2/include src/bends/LAPACK/bm_LAPACK_MAGMA-0.2.cpp
g++ -o lib/libbm_LAPACK_MAGMA-0.2.so -shared src/bends/LAPACK/bm_LAPACK_MAGMA-0.2.os -L/usr/local/cuda/lib64 -L/home/elezar/src/cuda/magma_0.2/lib -lcublas -lcuda -lmagma -lmagmablas
then obtain the following error on the second step:
- Code: Select all
/usr/bin/ld: /home/elezar/src/cuda/magma_0.2/lib/libmagmablas.a(sinplace_transpose.cu_o): relocation R_X86_64_32 against `.nvFatBinSegment' can not be used when making a shared object; recompile with -fPIC
/home/elezar/src/cuda/magma_0.2/lib/libmagmablas.a: could not read symbols: Bad value
collect2: ld returned 1 exit status
When I place the shared libraries posted on the forum in the same folder as the static libs, the compilation is successful, but when I run a simple LAPACK test program I get the following:
- Code: Select all
OSError: /home/elezar/src/cuda/magma_0.2/lib/libmagmablas.so: undefined symbol: slamch_
Any suggestions?
Thanks
Evan Lezar
