2012-04-25 3 views
1

のパスの問題を含めます。私はCUDAカーネルをうまく呼び出すことができますが、問題はありません。しかし、magmablas_sgemm関数を使用しようとすると、エラーが発生します。は、私はGPU上で、いくつかの行列演算を実行するためにMAGMA(http://icl.cs.utk.edu/magma/)を使用しようとしていますGPUライブラリ

これは私が使用していますコンパイルコマンドです:

 
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です。
PPS:私はパス「/util/magma/1.1/lib」をチェックし、それはlibmagma.aと

libmagmablas.a UPDATE含んでいます:うわー..私はこれを嫌いを..しかし、これは

作業それを得ました

NVCC -o MSD msd.cu -I ../../含ま-I/utilに/マグマ/ 1.1 -L/utilに/ CUDA/4.0.17/CUDA/lib64に-L/utilに/マグマ/ 1.1/libに-lcublas -lm -lmagma -lmagmablas -Xcompiler -I ../../ include -I/util/magma/1.1 "-O3"

ライブラリパスを明示的にインクルードするだけでした。しかし、私はLD_LIBRARY_PATHがそのようなものを世話すると思った。なぜそれがうまくいかなかったのか?

+2

LD_LIBRARY_PATHは、ランタイム共有ライブラリの読み込みにのみ影響します。コンパイルとは関係ありません。 – talonmies

+0

ああ!それを明確にしていただきありがとうございます – Neo

答えて

1

うわー..私は..これを憎むが、これはそれが働いて得た

NVCC -o MSD msd.cu -I ../../含ま-I/utilに/マグマ/ 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"

だから私が行ったすべては、明示的にライブラリパスを含めました。

関連する問題