Cuda は cudaGetDevice メソッドを見つけることができません

Cuda は cudaGetDevice メソッドを見つけることができません

正確なエラー:

CUDA error at ../../common/inc/helper_cuda.h:1263 code=30(cudaErrorUnknown) "cudaGetDevice(&dev)"

tensorflow gpu用にcudaをインストールしています。cuda 8がインストールされています(以下これらUbuntu 16.04 の手順に従い、書き込み可能なサンプルをテストするだけでエラーが発生します (そのリンクのセクション 6.2.1)。すべてのサンプルでこのエラーが発生し続け、Google で検索してもこのエラーは見つかりません (cudaGetDeviceCount() エラーのみ)。これは何なのでしょうか? 最初に cuda 9.1 ツールキットを誤ってインストールしましたが (tensorflow には 8.0 が必要)、完全にアンインストールして、関連するパス変数やディレクトリをすべて削除しました。

このエラーは、makefile がサンプル ディレクトリに作成する実行可能ファイルを実行するときに発生し、make ファイル自体によって次の警告/エラーが生成されます。

nvcc warning : The 'compute_20', 'sm_20', and 'sm_21' architectures are deprecated, and may be removed in a future release (Use -Wno-deprecated-gpu-targets to suppress warning).

make ファイルは最後にこれも実行するため、何も作成しないと思います。

cp simpleZeroCopy ../../bin/x86_64/linux/release

これは、すべての例のキャッシュされた実行可能ファイルのディレクトリから実行可能ファイルをコピーします。そのサンプルの makefile とソース コードは大きく、これが役立つかどうかはわかりませんが、必要に応じて投稿します。

私が実行しようとしているこのサンプル コードは cuda から直接取得したもので、私がプログラムしたものはありません。そのため、何らかの NVIDIA ドライバーが不足しているか、cuda を誤ってインストールしたか、適切なパス変数を設定していない (ただし、すべて問題なく実行できたはずです) と考えられます。

私はUbuntu 16.04、x86_64を実行しており、グラフィック カードはGTX 780 TIです。

このエラーは tensorflow-gpu をインストールする前に発生したものであることを明確にしたいと思います。彼らの指示まずcudaを別々にインストールし、次にtensorflowをインストールします。tensorflowをインストールする前にcudaをテストしているときにこのエラーが発生します。

編集: パス変数は次のとおりです:

$PATH:

/usr/local/cuda-8.0/bin:/home/maurcio/anaconda3/bin:/home/maurcio/bin:/home/maurcio/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:.

$LD_LIBRARY_PATH:

/usr/local/cuda-8.0/lib64

答え1

インストール手順のリンクが間違っています。https://docs.google.com/viewer?url=https%3A%2F%2Fdeveloper.download.nvidia.com%2Fcompute%2Fcuda%2F9.1%2FProd%2Fdocs%2Fsidebar%2FCUDA_Installation_Guide_Linux.pdf&pdf=true

基本的には、Ubuntu が提供するドライバー (可能であれば、980 ti については不明) を使用し、Intel deb cuda インストールを使用して、ツールキットを取得する Ubuntu cuda パッケージをインストールします。サンプルを書き込み可能な場所にコピーし、パスを変更すると、CUDA が動作するはずです。

関連情報