Ubuntu16.04にCUDA9.0をインストールするための詳細なチュートリアル

Ubuntu16.04にCUDA9.0をインストールするための詳細なチュートリアル

序文:

この記事は、CUDA 9.0 をインストールした経験に基づいています。CUDA 9.0 は現在、次の図に示すように、Ubuntu 16.04 と Ubuntu 17.04 をサポートしています (下部のインストール方法は 1 番目、つまり runfile 方式です)。


最初に CUDA ファイルをダウンロードすることもできますが、急いでインストールしない方がよいでしょう。まず、NVIDIA が提供する公式ガイドを注意深く読み、次にいくつかの優れたブログを見つけて読んで、CUDA のインストール プロセスの概要を理解してください。インストール プロセス中に発生する可能性のある問題について、概要を理解しておく必要があります。絶対に必要な場合を除き、システムを再インストールしないでください。

インストールの提案:

1) 公式ウェブサイトから CUDA をダウンロードするときは、必ず公式インストール ドキュメントのコピーを見つけて、注意深く読んでください。できる限りステップ バイ ステップで手順に従い、怠けないようにしてください。同時に、インストール前に自信を持てるように、参考になる良いブログをいくつか見つけてください。

2) インストールする前に、コンピュータの構成 (シングル グラフィック カードまたはデュアル グラフィック カード)、グラフィック カードの種類が CUDA のインストール要件を満たしているかどうか、システムがインストール要件を満たしているかどうかを必ず確認してください。

3) インストールプロセス中に、各操作が成功したかどうかを確認してください。

インストールプロセス:

1. Ubuntu 16.04システムをインストールして理解する

ソフトウェアをインストールする前に、sudo、cd、ls、nona、cat、chmod などの Ubuntu のコマンド ラインの基本を理解しておくことをお勧めします。これにより、インストール プロセス中に不要なトラブルを大幅に回避できます。 (Baidu で Mofan Python を検索することをお勧めします。彼は Ubuntu コマンドに関するビデオを公開しています。各エピソードは非常に簡潔で、わかりやすく説明されています。)

2. コンピュータ環境にCUDAをインストールするための条件があるかどうかを確認します。

1) コンピュータにCUDA対応GPUが搭載されていることを確認する

グラフィック カードの具体的なモデルは、コンピューターの構成情報で確認できます。デュアル システムを使用している場合は、Windows のデバイス マネージャーでグラフィック カードの詳細情報を確認することもできます。
Ubuntu ターミナルで次のコマンドを入力することもできます: $ lspci | grep -i nvidia。これにより、NVIDIA GPU のバージョン情報が表示されますが、あまり詳細ではありません。

私のディスプレイは(GeForceGT630M)です:

01:00.0 3D コントローラ: NVIDIA Corporation GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] (rev a1)

次に、CUDA の公式 Web サイトにアクセスして、GPU バージョンが CUDA サポート リストに含まれているかどうかを確認します。

2) LinuxバージョンがCUDAをサポートしていることを確認します(Ubuntu 16.04でも問題ありません)

次のコマンドを入力します:

$ uname -m && cat /etc/*release

結果は次のようになります:

64ビット
DISTRIB_ID=Ubuntu
ディストリビューションリリース=16.04

......

3) システムにgccがインストールされているかどうかを確認する

ターミナルに次のように入力します: $ gcc –version

結果は次のようになります:

gcc (Ubuntu 5.4.0-6ubuntu1~16.04.5) 5.4.0 20160609
......

インストールされていない場合は、次のコマンドを使用してインストールしてください。

sudo apt-get install ビルド必須

4) カーネルヘッダーとパッケージ開発がシステムにインストールされていることを確認する

a. 実行中のシステムカーネルのバージョンを確認します。

ターミナルに次のように入力します: $ uname –r

結果は次のようになります:

4.10.0-40-ジェネリック

b. ターミナルに以下を入力します: $ sudo apt-get install linux-headers-$(uname -r)

対応するカーネルバージョンのカーネルヘッダーとパッケージ開発をインストールできます

結果は次のようになります:

......

アップグレードされたパッケージは 0 個、新しくインストールされたパッケージは 0 個、削除されるパッケージは 0 個、アップグレードされていないパッケージは 4 個です。

つまり、すでにシステム内に存在しているため、再度インストールする必要はありません。

上記の検証チェックがすべて要件を満たしている場合は、次の正式なインストール プロセスに進むことができます。要件が満たされていない場合は、各問題に対する詳細な解決策が記載されている CUDA の公式ドキュメントを参照してください。

3. インストール方法を選択する

CUDA には、パッケージ マネージャー インストールと実行ファイル インストールの 2 つのインストール方法があります。パッケージ マネージャー インストール方法は比較的簡単ですが、他の人のブログを読むと、この方法を選択するとインストール プロセス中に問題が発生しやすくなり、失敗する可能性が高くなることがわかりました。不要なトラブルを減らすために、runfile インストール方式を選択しました。
cuda インストール パッケージをダウンロードします。cuda の公式サイトからダウンロードし、システム情報に応じて対応するバージョンを選択し、runfile インストールの最後の項目として runfile ファイルを選択します。

ダウンロード後、MD5 を使ってチェックしてください。シリアル番号が一致しない場合は、再度ダウンロードする必要があります (当時は保存していなかったため、ここでは他の人のスクリーンショットを使用しました。ここでは cuda のバージョン番号 (cuda_8.0) に注意してください)

次のコマンドを入力します: $ md5sum cuda_9.0.176_linux.run

4. Runfileはcudaをインストールします

1) nouveauドライバーを無効にする

ターミナルで実行します: $ lsmod | grep nouveau。出力がある場合は、nouveau がロードされていることを意味します。 nouveau を手動で無効にする必要があります。

Ubuntu で nouveau を無効にする方法:

a. /etc/modprobe.dにblacklist-nouveau.confファイルを作成します。

次のコマンドを入力します: $ sudo vi /etc/modprobe.d/blacklist-nouveau.conf (vi エディタを使用してファイルを編集し、保存します)

ファイルに次の内容を入力します。

ブラックリストヌーボー
オプション nouveau modeset=0

b. 実行:

$ sudo アップデート-initramfs –u

c. 再度実行します。

$ lsmod | grep nouveau

コンテンツの出力がない場合は無効化は成功です。まだコンテンツの出力がある場合は、動作を確認し、上記の操作を繰り返してください。

注: vi は Linux ターミナルまたはコンソールでよく使用されるエディターです。基本的な操作方法は、vi /path/file name です。たとえば、vi /etc/fstab は /etc/fstab ファイルの内容を表示することを意味します。キーボードの Page Up キーと Page Down キーを使用してページを上下にめくります。Insert キーを押すと、ウィンドウの左下隅に「Insert」という文字が表示されます。これは、現在の状態が挿入編集であることを示します。キーボードから入力した内容がカーソル位置に挿入されます。Insert キーをもう一度押すと、左下隅に「Replace」という文字が表示されます。これは、現在の状態が置換編集であることを示します。キーボードから入力した内容がカーソル位置の内容と置換されます。内容を編集したら、Esc キーを押して「:wq」と入力し、Enter キーを押して保存して終了します。
保存せずに直接終了する場合は、Esc キーを押して「:q!」と入力し、Enter キーを押します。 「wq」は「Write and Quit」を意味し、保存して終了することを意味します。「q!」は変更を無視して強制的に終了することを意味します。

以下の操作を行うために、携帯電話で写真を撮ることをお勧めします。ダウンロードした cuda_9.0.176_384.81_linux.run ファイルの名前を cuda.run に変更し、ホーム フォルダーに移動することをお勧めします (インストールを簡単にするため)

2) コンピュータを再起動します。ログイン インターフェイスに入るときは、デスクトップにログインしないでください (そうしないと失敗する可能性があります。誤って入った場合は、コンピュータを再起動してください)。Ctrl + Alt + F1 を押してテキスト モード (コマンド ライン インターフェイス) に入り、アカウントにログインします。

3) $ sudo service lightdm stopと入力してグラフィカルインターフェースを閉じます。

4) cudaインストールファイルのパスに切り替えます: $ cd Home/

$ sudo sh cuda_7.5.18_linux.run を実行します
指示に従ってください

注意: a. プロンプトに従って対応する文字を入力してください。たとえば、accept を入力する必要があるものもあれば、yes を入力する必要があるものもあります。

b. OpenGL をインストールするかどうかを尋ねられたら、いいえを選択します (私のコンピューターのようにデュアル ディスプレイがあり、メイン ディスプレイが NVIDIA 以外の GPU である場合は、いいえを選択する必要がありますが、それ以外の場合は、はいを選択できます)。それ以外の場合は、はいまたはデフォルトを選択します。 (コンピュータにデュアル グラフィック カードがあり、この手順で [はい] を選択した場合、CUDA のインストール後にグラフィカル インターフェイスを再起動すると、ログイン画面のループ問題が発生する可能性が高くなります。パスワードを入力すると、パスワード入力インターフェイスに戻ります。

これは、コンピューターにデュアル ディスプレイがあり、ディスプレイに使用されている GPU が NVIDIA ではないため、OpenGL ライブラリをインストールしないでください。そうしないと、使用している GPU (NVIDIA 以外の GPU) の OpenGL ライブラリが上書きされ、GUI が機能しなくなります。 )

インストールが成功した場合は「インストール済み」と表示され、失敗した場合は「失敗」と表示されます。

5) $ sudo service lightdm start と入力して、グラフィカル インターフェイスを再起動します。

Alt + ctrl + F7 を同時に押してグラフィカル ログイン インターフェイスに戻り、パスワードを入力してログインします。
正常にログインできれば、循環ログインの問題は発生せず、基本的には CUDA が正常にインストールされていることを意味します。

繰り返しログインが発生する場合は、急いでシステムを再インストールしないでください。公式チュートリアルでこれについて言及されています。理由は前の手順の注記に記載されています。OpenGL のインストール時に誤って「はい」を選択した可能性があります。cuda をアンインストールしてから再インストールしてください。
アンインストール: グラフィカル ユーザー インターフェイス (GUI) にログインできないため、テキスト ユーザー インターフェイス (TUI) に入ることができます。

ログインインターフェースでCtrl + Alt + f1を押してTUIに入ります
埋め込む

$ sudo /usr/local/cuda-8.0/bin/uninstall_cuda_8.0.pl
$ sudo /usr/bin/nvidia-アンインストール

その後再起動

$ sudo 再起動

.run を再インストールします。再度インストールするときは、必ず注意してください。OpenGL をインストールするかどうかを尋ねられたら、デュアルグラフィックカードがある場合は n を選択する必要があります。

6) コンピュータを再起動し、デバイスノード検証を確認します。

埋め込む

$ ls /dev/nvidia*

結果は a と b の 2 つになる場合があります。最も適したものを選択してください。

a. 結果が

/dev/nvidia0 /dev/nvidiaactl /dev/nvidia-uvm からアクセスできます。

または同様の情報が表示されます。3つ(/dev/nvidia-nvmに類似したものを含む)ある場合、インストールが成功したことを意味します。

b. 結果のほとんどは次のようになるでしょう

ls: /dev/nvidia* にアクセスできません: そのようなファイルまたはディレクトリはありません

あるいは、このようなものだけ

/dev/nvidia0 /dev/nvidiactl は、

のいずれかまたは両方がありますが、/dev/nvidia-num がありません。つまり、ファイルの表示が不完全です。

心配したり、急いでシステムを再インストールしたりしないでください (これは私がインストールしたときに起こったことです)。公式ガイドには詳細な解決策が記載されていますが、私の方法は公式のものとは少し異なります。

まず、スタートアップ スクリプトを追加する必要があります (スタートアップ スクリプトを追加する方法は 2 つあります。私は最も直接的な方法を使用します。もう 1 つの方法は、最初にファイルを作成し、mv を介してスタートアップ フォルダーに移動することです。Baidu を自分で検索できます)
埋め込む

$ sudo vi /etc/rc.local

このファイルを初めて開く場合は、ファイルは空になっているはずです (行と # コメントの行を除く)。このファイルの最初の行は

#!/bin/sh -e

-e を削除します (この手順は非常に重要です。そうしないと、このテキストの内容が読み込まれません)
次に、#!/bin/bash を除く次の内容をコピーし (exit 0 の前)、ファイルを保存して終了します。

#!/bin/bash

/sbin/modprobe nvidia

[ "$?" -eq 0 ]の場合;
# 見つかった NVIDIA コントローラーの数をカウントします。
NVDEVS=`lspci | grep -i NVIDIA`
N3D=`echo "$NVDEVS" | grep "3D コントローラー" | wc -l`
NVGA=`echo "$NVDEVS" | grep "VGA互換コントローラ" | wc -l`

N = `式 $N3D + $NVGA - 1`
i in `seq 0 $N`; を実行する
mknod -m 666 /dev/nvidia$ic 195 $i
終わり

mknod -m 666 /dev/nvidiactl c 195 255

それ以外
出口1
フィ

/sbin/modprobe nvidia-uvm

[ "$?" -eq 0 ]の場合;
# nvidia-uvm ドライバーが使用するメジャーデバイス番号を確認します
D=`grep nvidia-uvm /proc/devices | awk '{print $1}'`

mknod -m 666 /dev/nvidia-uvm c $D 0
それ以外
出口1
フィ

次回再起動すると、/dev ディレクトリに 3 つの nvidia ファイルが直接表示されるはずです。次のように入力します: $ ls /dev/nvidia*
結果は次のように表示されます: /dev/nvidia0 /dev/nvidiactl /dev/nvidia-uvm

成功!

7) 環境変数を設定します。

ターミナルに$ sudo gedit /etc/profileと入力します。
開いたファイルの最後に、次の 2 行を追加します。

64 ビット システム:

エクスポート PATH=/usr/local/cuda-9.0/bin${PATH:+:${PATH}}
LD_LIBRARY_PATH=/usr/local/cuda-9.0/lib64\ をエクスポートします。
                          ${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}

32 ビット システム:

エクスポート PATH=/usr/local/cuda-9.0/bin${PATH:+:${PATH}}

LD_LIBRARY_PATH=/usr/local/cuda-9.0/lib\ をエクスポートします。
                          ${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}


ファイルを保存して再起動します。 source /etc/profile は一時的にしか有効ではないため、コンピューターを再起動した後でのみ永続的に有効になります。

これは公式のインストールドキュメントとは少し異なるため、説明が必要です。
公式ドキュメントでは、ターミナルで上記 2 つのエクスポート ステートメントを実行するだけでよいと記載されていますが、/etc/profile ファイルに書き込まないと、ターミナルを終了した後にそのような環境変数は消えてしまい、機能しなくなるため、書き込むことは永続的なアプローチです。

8) コンピュータを再起動し、上記の環境変数が正常に設定されているかどうかを確認します。

a. ドライバーのバージョンを確認する

ノックイン

$ cat /proc/driver/nvidia/バージョン

結果

NVRM バージョン: NVIDIA UNIX x86_64 カーネル モジュール 384.81 2017 年 9 月 2 日土曜日 02:43:11 PDT
GCC バージョン: gcc バージョン 5.4.0 20160609 (Ubuntu 5.4.0-6ubuntu1~16.04.5)

b. CUDAツールキットの検証

ノックイン

$ nvcc -VはCUDAのバージョン情報を出力します

次のような場合:

プログラム「nvcc」は現在インストールされていません。次のように入力してインストールできます。
sudo apt-get で nvidia-cuda-toolkit をインストールします

環境設定が成功していない可能性がありますので、上記の手順 7) を繰り返してください。

5. cudaが提供する例をコンパイルしてみる

1) ターミナルを開き、次のように入力します: $ cd /home/xxx/NVIDIA_CUDA-9.0_Samples、ここで xxx は自分のユーザー名です。cd コマンドを使用して、NVIDIA_CUDA-9.0_Samples ディレクトリに入ります。

次にターミナルに次のように入力します: $ make

システムは自動的にコンパイル プロセスに入ります。プロセス全体には約 10 ~ 20 分かかります。しばらくお待ちください。エラーが発生した場合、システムは直ちにエラーを報告し停止します。

初めて実行するとエラーが報告され、システムに gcc が存在しないというエラー メッセージが表示される場合があります。

解決策は、コマンドを使用して gcc を再インストールすることです。ターミナルに次のコマンドを入力します: $ sudo apt-get install gcc gcc をインストールすると、make は正常に動作します。

コンパイルが成功すると、次の図に示すように、最後に「CUDA サンプルのビルドが完了しました」と表示されます。

2) コンパイルされたバイナリファイルを実行します。
コンパイルされたバイナリ ファイルは、デフォルトで NVIDIA_CUDA-9.0_Samples/bin に保存されます。
次に、前のターミナルに次のように入力します: $ cd /home/lxxx/NVIDIA_CUDA-9.0_Samples/bin/x86_64/linux/release (xxx は自分のユーザー名)。次に、ターミナルに次のように入力します: $ ./deviceQuery

結果は次の図のようになります。次の図のような表示が出た場合、CUDAが正常にインストールされ、構成されていることを意味します。Result = PASSは成功を意味し、Result = FAILは失敗したことを意味します。

3) 最後に、システムとCUDA対応デバイス間の接続を確認します。ターミナルに次のように入力します: $ ./bandwidthTest
次の図のような表示が出たら成功です


最後に、CUDAのインストールと使用が皆様にとって楽しいものとなるよう願っています。

Ubuntu16.04 に CUDA9.0 をインストールする詳細なチュートリアルに関するこの記事はこれで終わりです。Ubuntu16.04 に CUDA9.0 をインストールする方法の詳細については、123WORDPRESS.COM の以前の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • VS2019 で C プログラムまたは CUDA プログラムを作成するときに発生する「プログラムを開始できません。指定されたファイルが見つかりません」という問題の詳細な解決策
  • CUDA10.0 のインストールと Ubuntu での問題
  • win10+VS2017+Cuda10.0環境の詳細構成
  • さまざまな Tensorflow バージョン要件と CUDA および CUDNN バージョン間の対応の詳細な説明
  • Ubuntu での CUDA と CUDNN のインストールとアンインストールの実装
  • Ubuntu 20.04 に cuda10.1 をインストールする手順 (グラフィック チュートリアル)
  • Ubuntu 20.04 CUDA & cuDNN のインストール方法 (グラフィカル チュートリアル)
  • Manjaro インストール CUDA 実装チュートリアル分析

<<:  React+Typescriptはカウントダウンフックメソッドを実装します

>>:  vue.js 動的コンポーネントの詳細な説明

推薦する

Visual Studio Codeを使用してMySqlデータベースに接続し、クエリを実行します。

Visual Studio Code は、Microsoft が開発した強力なテキスト エディター...

パーティショニングを使用して数十億のデータに対する MySQL データ処理を最適化する方法

MySQL が数千万のデータをクエリする場合、ほとんどのクエリ最適化の問題はインデックスを通じて解決...

MySQL ルートパスワードを変更する複数の方法 (推奨)

方法1: SET PASSWORDコマンドを使用する MySQL -u ルート mysql> ...

CentOS 8にJenkinsをインストールする方法

CentOS 8 に Jenkins をインストールするには、root アカウントまたは sudo ...

Windows での Apache+Tomcat7 負荷分散構成方法の詳細な説明

準備Windows Server 2008 R2 Enterprise (2.40GH、8GB、64...

JS addEventListener() およびattachEvent() メソッドは登録イベントを実装します

JavaScript の DOM イベント モデルでは、オブジェクトの addEventListen...

Vue Element フロントエンドアプリケーション開発開発環境の準備

目次概要1. 必要なソフトウェア環境を開発する1) VSコードのインストール2) ノード開発環境をイ...

jsを使って簡単な計算機を作る

この記事では、jsで簡単な計算機を作成する具体的なコードを参考までに共有します。具体的な内容は次のと...

CSS3 テキストアニメーション効果

効果 html <div class="sp-container">...

HTML ページ共通スタイル (推奨)

以下のように表示されます。 XML/HTML コードコンテンツをクリップボードにコピーbody、di...

JavaScript デザインパターン プロキシパターンの学習

目次概要実装保護エージェント仮想エージェント画像の遅延読み込みを実現する仮想プロキシ概要プロキシ パ...

Tomcat の一般的な例外と解決コードの例

弊社のプロジェクトは Java で開発され、ミドルウェアは Tomcat でした。運用中に、Tomc...

MySQLユーザー管理操作例の分析

この記事では、MySQL ユーザー管理操作について説明します。ご参考までに、詳細は以下の通りです。こ...

webpackでHMRを手動で実装するいくつかの方法

目次1. はじめに2. GitHub 3. 基本構成プロジェクトディレクトリパッケージ.json c...

MySQLの7種類のログの概要

MySQL には次のログ ファイルがあります。 1: 再実行ログ2: ロールバックログ(元に戻すログ...