web-dev-qa-db-ja.com

CUDA Toolkit 7/8/9をDebian 8(Jessie)または9(Stretch)にインストールする方法は?

Cuda Toolkit 7. または8をDebian 8にインストールする方法

Debian 8にapt-get install nvidia-cuda-toolkitを使用して CUDAツールキット6.0をダウンロードしてインストールする のオプションが付属していることを知っていますが、CUDAツールキットバージョン7.0または8でこれをどのように行うのですか?

以下に説明するように、Ubuntuインストーラーを使用してインストールを試みました。

Sudo wget http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1404/x86_64/cuda-repo-ubuntu1404_7.0-28_AMD64.deb

dpkg -i cuda-repo-ubuntu1404_7.0-28_AMD64.deb

Sudo apt-get update

Sudo apt-get install -y cuda

ただし、機能せず、次のメッセージが返されました。

Reading package lists... Done
Building dependency tree       
Reading state information... Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:

The following packages have unmet dependencies:
 cuda : Depends: cuda-7-0 (= 7.0-28) but it is not going to be installed
E: Unable to correct problems, you have held broken packages.
26
Greg

以下の手順は、CUDA 7.0、7.5、およびいくつかの以前の(そしておそらくそれ以降の)バージョンに有効です。 Debianディストリビューションについては、JessieとStretch、そしておそらく他のバージョンでも有効です。それらはAMD64(x86_64)アーキテクチャーを想定していますが、x86(x86_32)に簡単に適合させることができます。

インストールの前提条件

  • g ++-CUDAのバージョンでサポートされている最新のGCCバージョンを使用する必要があります。 CUDA 7.xの場合、これはバージョン4.9.3で、4.x行の最後です。 CUDA 8.0の場合、GCC 5.xバージョンがサポートされます。ディストリビューションがデフォルトでGCC 5.xを使用している場合はそれを使用します。それ以外の場合はGCC 5.4.0で使用できます。以前のバージョンも使用できますが、ホスト側コードの最新のC++機能のサポートが向上する場合のみ、お勧めしません。
  • gcc-g ++に付属しています。 CMakeは、-xスイッチを使用する場合に、デフォルトでnvccがg ++ではなくgccを呼び出すようにすることさえできると思います(ただし、これについては不明です)。
  • libGLU-Mesa OpenGLライブラリ(+開発ファイル?)
  • libXi-X Window System Xinput拡張ライブラリ(+開発ファイル?)
  • libXmu-X Window System「その他のユーティリティ」ライブラリ(+開発ファイル?)
  • Linuxカーネル-実行しているカーネルバージョンのヘッダー。

特定のパッケージのリストが必要な場合、それは正確にどのディストリビューションに依存しますが、以下を試してください(CUDA 7.xの場合):

Sudo apt-get install gcc g++ gcc-4.9 g++-4.9 libxi libxi6 libxi-dev libglu1-mesa libglu1-mesa-dev libxmu6 libxmu6-dev linux-headers-AMD64 linux-source

そして、シンボルをデバッグするためにそれらのパッケージのいくつかの-dbgバージョンを追加するかもしれません。

私はprettyで十分ですが、すでにインストールしたばかりのものが見当たらない可能性があります。また、少なくとも実験的に CUDAはclangで機能します ですが、私は試していません。

CUDAカーネルドライバーのインストール

  1. NVIDIAの CUDAダウンロードページ に移動します。
  2. Linux> x86_64> Ubuntuを選択してから、最新バージョン(執筆時:Ubuntu 15.04)を選択します。
  3. 。run fileオプションを選択します。
  4. .runファイルをダウンロードします(現在 これ )。 not/tmpに含めることを確認してください。
  5. .runファイルを実行可能にします:chmod a+x cuda_7.5.18_linux.run
  6. ルートになります。
  7. .runファイルを実行します。彼らの愚かなシュリンクラップライセンスを受け入れるふりをしてください。 NVIDIAカーネルドライバーのみをインストールする場合は「はい」、その他の場合は「いいえ」と答えます。

インストールでは、NVIDIAカーネルドライバーがインストールされていると予想されますが、ツールキットのインストールを続行/再試行する前に再起動する必要があります。そう...

  1. どうやら成功したので、再起動します。

CUDA自体のインストール

  1. ルートになります。
  2. cuda_7.5.18_linux.runを見つけて実行します
  3. 今回は、ドライバーをインストールする場合は「いいえ」、それ以外はすべてインストールする場合は「はい」と言って、デフォルトのパスを受け入れます(または、変更してもかまいません)。

インストーラーはおそらくfailです。それは私たちが予期する種類の障害であると仮定すると良いことです:コンパイラーのバージョンがサポートされていないことを伝えるはずです-CUDA 7.0または7.5は最大gcc 4.9をサポートし、デフォルトでいくつかの5.xバージョンを持っています。 librariesが見つからないというメッセージが表示された場合、上記の前提条件に関する指示がなんらかの理由で失敗したことを意味します。ここでコメントして、修正できるようにしてください。 「良好な障害」が発生したと想定して、次の手順に進みます。

  1. 今回は--overrideオプションを指定して、.runファイルを再度呼び出します。
  2. 手順11と同じ選択を行います。

これで、CUDAがデフォルトで/usr/local/cuda(シンボリックリンク)にインストールされます。しかし、これで終わりではありません!

適切なg ++バージョンを使用するようにNVIDIAのnvccコンパイラーに指示する

NVIDIAのCUDAコンパイラは、リンクプロセスの一部として実際にg ++を呼び出したり、.cuファイルではなく実際のC++をコンパイルしたりします。おもう。とにかく、デフォルトではg++としてパスにあるものをすべて実行します。しかし、あなたがanother g++/usr/local/cuda/binの下に配置すると、それが最初に使用されます!そう...

  1. symlink /usr/bin/g++-4.9 /usr/local/cuda/bin/g++を実行します(適切な方法としては、symlink /usr/bin/gcc-4.9 /usr/local/cuda/bin/gccも実行します。

それでおしまい。

インストールを試す

  1. cd /root/NVIDIA_CUDA-7.5_Samples/0_Simple/vectorAdd
  2. make

ビルドは正常に終了するはずです。

  1. ./vectorAdd

次の出力が表示されます。

root@mymachine:~/NVIDIA_CUDA-7.5_Samples/0_Simple/vectorAdd# ./vectorAdd
[Vector addition of 50000 elements]
Copy input data from the Host memory to the CUDA device
CUDA kernel launch with 196 blocks of 256 threads
Copy output data from the CUDA device to the Host memory
Test PASSED
Done

ノート

  • NVIDIA GDK(GPU開発キット)をインストールする必要はありませんが、害を及ぼすことはなく、一部のユーザーに役立つ場合があります。システムのルートディレクトリにインストールします。それはかなり安全で、後にアンインストーラーがあります:/usr/bin/uninstall_gdk.pl。 CUDA 8では、すでにCUDA自体IIANMに統合されています。
  • Nvidia -...やcuda ...などの名前の追加パッケージをインストールしないでください。彼らは傷つかないかもしれませんが、確かに助けにはなりません。
  • これらのことを行う前に、lspci | grep -i nvidiaを使用して、GPUがまったく認識されていることを確認してください。
31
einpoklum

私はバックポートを使用してそれを行うべきだと思います。私は実際にnvidia-cuda-toolkit 7.5をdebian jessieにスムーズにインストールしています。

フリーではないバックポートを/etc/apt/sources.listに追加します。私(ジェシー上)の場合、これをファイルの下部に配置します。

# jessie-backports
deb http://httpredir.debian.org/debian jessie-backports main contrib non-free

保存、apt-get update、そして最後に:

apt-get install -t jessie-backports nvidia-cuda-toolkit
6
Poso

Sources.listにcontribおよびnon-freeリポジトリを追加し、apt-get updateを実行した後、CUDAツールキットはnvidia-cuda-toolkitの下のSynapticにあります。

1
Default picture

古いGPU(GT 720)を使用したDebian 9の「ストレッチ」では、追加の手順が必要です。上記の誰か(@celavek)がこれを持っているのを私は見たので、私がうまくいったことを記入します。受け入れられた答えは必要なほとんどすべてをカバーします。これを認識することはかなりニッチな例ですが、うまくいけば、ここにいくつかのグーグル検索を節約するいくつかの有用なものが存在するかもしれません。

ステップ1のCUDA 8.0の場合、[レガシーリリース]をクリックし、[CUDAツールキット8.0 GA 2 ")を選択します。次に、Linux、x86_64、Ubuntu、16.04、runfile(ローカル)。

パッケージ化されたドライバーを受け入れず、代わりに、以前にインストールした384.130ドライバーをGPUに使用しました。詳細はこちら Debian Wiki 。あなたの走行距離は変わるかもしれません、私はGT 720以外のカードについて話すことはできません。これは私が選択した道でした、私には後悔はありません(まだ)。

手順12でローカルのInstallUtils.pmを実行できないためにインストールが失敗した場合は、-tar mxvfフラグを指定してcuda_8.0.61_375.26_linux.runファイルを解凍する必要があります。次に(ルートとして)InstallUtils.pmを/ usr/lib/x86_64-linux-gnu/pearl-baseにコピーします。

./cuda_8.0.61_375.26_linux.run --tar mxvf
Sudo cp InstallUtils.pm /usr/lib/x86_64-linux-gnu/Perl-base

これで、手順12のコマンドが成功するはずです。

Debian 9.0にはg ++バージョン6以降が付属していますが、これには対応していません。手順15でのvectorAddのコンパイルは失敗します。このホワイトペーパーをフォローしました: GCCの複数バージョンのインストール でバージョン5.5.0をインストールしました。 5.5.0の場合、このファイルが必要になります

wget http://mirrors.concertpass.com/gcc/releases/gcc-5.5.0/gcc-5.5.0.tar.xz

そしてこれでtarballを解凍します:

tar -xJf gcc-5.5.0.tar.xz

これを機能させるには、いくつかのことを更新する必要があります(ライブラリーと32ビットコンパイルの追加)。

Sudo apt-get install libgmp3-dev libmpfr-dev libmpc-dev
Sudo dpkg --add-architecture i386
Sudo apt-get update
Sudo apt-get install build-essential gcc-multilib rpm libstdc++6:i386 libgcc1:i386 zlib1g:i386 libncurses5:i386

これで、コンパイラーを構成、作成、およびインストールできます。

-prefix =/usr/local/gcc/5.5.0フラグを使用して設定することを忘れないでください

これで、ステップ15のvectorAddの例を次のようにコンパイルできます。

make Host_COMPILER=/usr/local/gcc/5.5.0/bin/g++

またはこれ:

export Host_COMPILER=/usr/local/gcc/5.5.0/bin/g++
make

Makefileを変更する必要はありません。Makefileはコンパイラーのオーバーライドを正しく処理します。

これで、ストレッチでCUDA 8.0インストールが機能するはずです。

1
Ingo

このページからUbuntuのネットワークインストーラーを使用してみてください。

https://developer.nvidia.com/cuda-downloads#linux

Ubuntu 14. *のインストーラーは十分な互換性があります。

0
Tomasz Klim

Debian 9へのインストールの確認と、PATHとLD_LIBRARY_PATHの変更

Einpoklum 上記の回答は、Debian 9 StretchにCUDA 10.0をインストールするのに役立ちました。

CUDAを正常にインストールした後、私はバージョンを確認できませんでした、それは 編集してPATHとLD_LIBRARY_PATHを永続的に変更する必要があるためでした.bashrcファイル


CUDAツールキットのドキュメントはこちら

0
Kelly