1

GPU で行列演算を実行するために MAGMA (http://icl.cs.utk.edu/magma/) を使用しようとしています。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

どんなヘルプ/ポインタも大歓迎です! ありがとう!

PS: 関連する場合、nvcc がホスト コードに使用している基になる C コンパイラは gcc です。
PPS: パス「/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 がそのようなことを処理すると思っていました。なぜそれがうまくいかなかったのですか?

4

1 に答える 1

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"

したがって、私が行ったのは、ライブラリパスを明示的に含めることだけでした。

于 2012-04-25T17:25:52.690 に答える