のパスの問題を含めます。私は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がそのようなものを世話すると思った。なぜそれがうまくいかなかったのか?
LD_LIBRARY_PATHは、ランタイム共有ライブラリの読み込みにのみ影響します。コンパイルとは関係ありません。 – talonmies
ああ!それを明確にしていただきありがとうございます – Neo