【问题标题】:Include path problems for GPU library包含 GPU 库的路径问题
【发布时间】:2012-05-05 17:45:15
【问题描述】:

我正在尝试使用 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 岩浆=/util/岩浆/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: 找不到 -lmagma collect2: ld 返回 1 个退出状态 make: *** [msd] 错误 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 会处理这样的事情。知道为什么这不起作用吗?

【问题讨论】:

  • LD_LIBRARY_PATH 仅影响运行时共享库​​加载。它与编译无关。
  • 啊!感谢您澄清这一点

标签: c cuda gpu nvcc library-path


【解决方案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"

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

【讨论】:

    猜你喜欢
    • 2013-11-09
    • 2011-03-26
    • 1970-01-01
    • 1970-01-01
    • 2018-01-13
    • 1970-01-01
    • 2011-08-14
    • 2015-02-19
    相关资源
    最近更新 更多