web-dev-qa-db-ja.com

cmakeにCUDAを見つけさせる方法

私は このプロジェクト をビルドしようとしていますが、これには依存関係として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を正しく行う方法

36
clstaudt

cmakeはCUDA_TOOLKIT_ROOT_DIRを環境変数ではなく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 ..
49
Slava

FindCMake.cmake 探す /usr/local/cuda。あなたの場合、そのディレクトリはそこにないかもしれません。実際のCUDAインストールディレクトリへのその名前のシンボリックリンクを作成するだけです:

$ Sudo ln -s /usr/local/cuda-5.5 /usr/local/cuda

これで、CMakeはプロジェクトのMakefileを生成できるはずです。

14
Ashwin Nanjappa

Cudaはソースからインストールされた可能性があります(nvccはパスに含まれていません)。その後、 'nvcc'がないため、スクリプトはCUDA_TOOLKIT_ROOT_DIRを設定できません。私にとっては、「Sudo apt install nvidia-cuda-toolkit」を実行した後、正常に機能しました。

3
Kjell

CMake 3.8以降、FindCUDAは廃止され、CMakeプロジェクトでCUDAを使用する適切な方法は、project()またはenable_language()を介して有効にすることです。

https://cmake.org/cmake/help/v3.8/release/3.8.html#cuda

3
Hopobcn

ターミナルで、nano ~/.bashrcと入力します。次に、ファイルに次の行を追加します。

export PATH=$PATH:/usr/local/cuda/bin
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda/lib:/usr/local/lib
export CPLUS_INCLUDE_PATH=/usr/local/cuda/include

ファイルを保存し、ターミナルに「source ~/.bashrc」と入力します。

ターミナルでnvcc --versionと入力して、CUDAパスがセットアップされているかどうかを検証できます。

0
Harshil Sharma