7

cusparseライブラリを使用するcudaプログラムをコンパイルしようとしています。リンクエラーが発生します:

kernel.cu.obj : error LNK2019: unresolved external symbol _cusparseSetMatIndexBase@8 referenced in function _main

そして、cusparseライブラリに関連する同じ種類のエラーがたくさんあります。「cusparse_v2.h」を含めました。コンパイル中にVisualStudio2010でcusparseライブラリをリンクするにはどうすればよいですか?

4

2 に答える 2

13

ライブラリをリンクするための一般的な手順は、CUDA に固有のものではありません。そのため、MS VS の使用についてさらに学びたいと思うかもしれません。とにかく、手順は次のようになります。

  1. 作業するプロジェクトが開いていることを確認してください。
  2. View...Property Pages (メニューから) を選択します。新しいダイアログ ボックスが開きます。
  3. このダイアログ ボックスの左側で、[リンカー] を選択してそのサブメニューを開きます。
  4. リンカーの下で、入力を選択します
  5. 次に、右側のペインで、「追加の依存関係」である最初の項目を観察します。私cudart.libはすでにそこに存在しているべきだと信じています。
  6. cudart.lib [追加する新しいライブラリを入力できるようになりました]の右側をクリックします。スペースを入力して (cudart.lib と区切るため)、次のように入力します。cusparse.lib
  7. ダイアログボックスの右下隅にある「適用」をクリックします。

プロジェクト/ソリューション ファイルが既にcudaテンプレート使用して設定されている場合は、これで十分です。cudart.lib が存在しない場合、またはプロジェクト/ソリューション ファイルがまだ cuda を認識していない場合、それは別の問題です。その場合は、サンプルからプロジェクトを複製し、それを出発点として使用してプロジェクトを構築することにより、最初からやり直すことをお勧めします。次に、検索するすべての適切なディレクトリと cuda ビルド ルールを取得します。すべての主要な cuda ライブラリ (cudart、cublas、cufft、cusparse など) はすべて同じ場所にあるため、必要に応じて同じ検索パスでそれらのいずれかを選択する必要があります。

たとえば、 などの別のライブラリをリンクする場合は、上記をcublas.lib次のように置き換えて、同様の手順に従うことができますcusparse.libcublas.lib

CUDA の新しいバージョン (CUDA 7.5 など) では、64 ビット プロジェクトのみをビルドする必要があることに注意してください (x64 プロジェクト プロパティを変更する場合は、上記の手順に従ってください)。CUDA 7.5 以降では、32 ビット プロジェクトのサポートが終了しています。

于 2012-11-27T16:38:17.897 に答える