包含GPU库的路径问题

时间:2012-04-25 03:24:03

标签: c cuda gpu-programming nvcc library-path

我正在尝试使用MAGMA(http://icl.cs.utk.edu/magma/)在GPU上执行一些矩阵运算。我能够成功调用CUDA内核,并且没有问题。但是当我尝试使用magmablas_sgemm函数时,我遇到了错误。

这是我正在使用的编译命令:

nvcc -o msd msd.cu -I../../include -I/util/magma/1.1 -lmagma -lmagmablas -Xcompiler -I../../include -I/util/magma/1.1 "-O3"

这是部分printenv输出:

LD_LIBRARY_PATH=/util/magma/1.1/lib:/util/cuda/4.1.28/cuda/lib64:/util/cuda/4.1.28/cuda/lib
MAGMA=/util/magma/1.1
PATH=/util/magma/1.1:/util/cuda/4.1.28/cuda/bin:/usr/lib64/qt-3.3/bin:/util/Modules/3.2.8/bin:/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/usr/kerberos/bin
_LMFILES_=/util/Modules/modulefiles/null:/util/Modules/modulefiles/modules:/util/Modules/modulefiles/cuda/4.1.28:/util/Modules/modulefiles/magma/1.1
MODULEPATH=/util/Modules/versions:/util/Modules/modulefiles
LOADEDMODULES=null:modules:cuda/4.1.28:magma/1.1

可以清楚地看到,岩浆库包含在LD_LIBRARY_PATH中但是,我得到了这个错误:

/usr/bin/ld: cannot find -lmagma
collect2: ld returned 1 exit status
make: *** [msd] Error 1

任何帮助/指针将不胜感激!谢谢!

P.S:如果相关,nvcc用于主机代码的底层C编译器是gcc P.P.S:我检查了路径“/util/magma/1.1/lib”,它确实包含libmagma.a和libmagmablas.a

更新:哇..我讨厌这个......但这让它运转了

nvcc -o msd msd.cu -I ../../ include -I / util / magma / 1.1 -L / util / cuda / 4.0.17 / cuda / lib64 -L / util / magma / 1.1 / lib -lcublas -lm -lmagma -lmagmablas -Xcompiler -I ../../ include -I / util / magma / 1.1“-O3”

所以我所做的就是明确地包含库路径。但我认为LD_LIBRARY_PATH会处理类似的事情。知道为什么那不起作用吗?

1 个答案:

答案 0 :(得分:1)

哇..我讨厌这个..但是这让它运转了

nvcc -o msd msd.cu -I ../../ include -I / util / magma / 1.1 -L / util / cuda / 4.0.17 / cuda / lib64 -L / util / magma / 1.1 / lib -lcublas -lm -lmagma -lmagmablas -Xcompiler -I ../../ include -I / util / magma / 1.1“-O3”

所以我所做的就是明确地包含库路径。