50

依存関係として CUDA を持つこのプロジェクトをビルドしようとしています。しかし、cmake スクリプトはシステム上の CUDA インストールを見つけることができません:

cls ~/workspace/gpucluster/cluster/build $ cmake ..
-- The C compiler identification is GNU 4.7.1
-- The CXX compiler identification is GNU 4.7.1
-- Check for working C compiler: /usr/bin/gcc
-- Check for working C compiler: /usr/bin/gcc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
CMake Error at /usr/share/cmake/Modules/FindCUDA.cmake:488 (message):
  Specify CUDA_TOOLKIT_ROOT_DIR
Call Stack (most recent call first):
  CMakeLists.txt:20 (find_package)

-- 設定が不完全です。エラーが発生しました!

環境変数として に追加しようとしましたが.bashrc、効果はありません:

export CUDA_TOOLKIT_ROOT_DIR=/usr/local/cuda-5.5

Specify CUDA_TOOLKIT_ROOT_DIR正しくはどうすればよいですか?

4

6 に答える 6

66

CUDA_TOOLKIT_ROOT_DIRcmake は、環境変数ではなく、cmake 変数として言及されています。そのため、.bashrc に入れると機能しません。FindCUDA.cmake を見ると、次のことが明確に示されています。

システム パス内の nvcc の場所によってプレフィックスを特定できず、find_package() に REQUIRED が指定されている場合、スクリプトはユーザーに CUDA_TOOLKIT_ROOT_DIR を指定するように求めます。ツールキットの別のインストール済みバージョンを使用するには、cmake を実行する前に環境変数 CUDA_BIN_PATH を設定するか (たとえば、デフォルトの /usr/local/cuda の代わりに CUDA_BIN_PATH=/usr/local/cuda1.0)、または構成後に CUDA_TOOLKIT_ROOT_DIR を設定します。CUDA_TOOLKIT_ROOT_DIR の値を変更すると、パスに依存するさまざまなコンポーネントが再配置されます。

したがってCUDA_BIN_PATH、.bashrc に入れるかCUDA_TOOLKIT_ROOT_DIR、cmake に指定します。

cmake -D CUDA_TOOLKIT_ROOT_DIR=/usr/local/cuda-5.5 ..
于 2013-11-14T15:22:13.837 に答える