0

現在、コッパーヘッドで 2 つの問題が発生しており、関連していると思われます。

サンプル ファイル (samples/axpy.py) を実行すると、多くの小さな警告が生成されましたが、これは際立っていました。

g++ -pthread -fno-strict-aliasing -g -O2 -g -fwrapv -O2 -Wall -fPIC -pthread -shared -Wl,-O1 -Wl,-Bsymbolic-functions -Xlinker -export-dynamic -Wl,-O1 -Wl,-Bsymbolic-functions -DNDEBUG -I/usr/include/python2.6 -I/usr/local/lib/python2.6/dist-packages/copperhead-0.1a1-py2.6.egg/copperhead/include -I/usr/local/cuda/include /tmp/codepy-compiler-cache-v5-uid1000/202478034fea29b82d046b259bd6f43e/module.o /tmp/codepy-compiler-cache-v5-uid1000/fdcb04ede426b146cfce8894e99eeb57/gpu.o -L/usr/lib -L/usr/local/cuda/lib -L/usr/local/cuda/lib64 -lcuda -lcudart -lboost_python-gcc43-mt -lpthread -ldl -lutil -o /tmp/codepy-compiler-cache-v5-uid1000/202478034fea29b82d046b259bd6f43e/codepy.temp.202478034fea29b82d046b259bd6f43e.module.so
/usr/bin/ld: skipping incompatible /usr/local/cuda/lib/libcudart.so when searching for -lcudart
/usr/bin/ld: cannot find -lboost_python-gcc43-mt
collect2: ld returned 1 exit status

注意すべき点はほとんどありません。

g++ は、使用する正しい CUDA lib ディレクトリ (lib64) を正しく選択していますが、そこに libcudart.so が表示されません。

/usr/local/cuda/lib64/libcudart.so.4.0.12: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, stripped

次に、boost_python が見つかりません。いくつかの場所から、これは ubuntu がどこかでパッケージ規則を破ったことが原因であると聞いており、人々は pycuda 構成オプションを変更することでそれを修正したと言っていますが、何に変更するかは述べていません... (

cudart またはブートの問題について何か考えがある人はいますか?

4

1 に答える 1

3
  1. 発見ですlibcudart。_ あなたが見ているのは単なる情報警告です: -L オプションは順番に検索され、リンカは最初に 32 ビット バージョンを見つけてい -L/usr/local/cuda/libます-L/usr/loca/cuda/lib64
  2. libboost_python の問題については、-lboost_python. 私が使用している Ubuntu システム (boost-python 1.40 を使用した 64 ビット 10.04LTS) には、正規のライブラリ名への一連のカスケード シンボリック リンクがあり、リンカはそれ以上の介入なしに正しいライブラリを見つけます。
于 2011-04-14T13:15:35.937 に答える