UbuntuはCUDAの複数のバージョンをインストールし、いつでも切り替えることができます

UbuntuはCUDAの複数のバージョンをインストールし、いつでも切り替えることができます

CUDA とは何かを紹介するのではなく、複数の CUDA バージョンの共存とリアルタイム切り替えをどのようにして実現するかについて直接お話しします。

1. CUDAの複数のバージョンをインストールする

ここでは、cuda9-1 バージョンと cuda9-0 バージョンを例に挙げます (どちらを最初にインストールしてもかまいません)
まず、cuda バージョン ライブラリで必要な cuda バージョンを選択します。

次に、対応するインストール パッケージを選択します。ここでは、後で各 cuda のインストール パスを設定できるように、runfile タイプのインストール ファイルを選択します。

ダウンロードが完了したら、cd コマンドを使用して cuda_8.0.61_375.26_linux.run ファイルがあるディレクトリに移動し、次の手順を実行してインストールします (ファイル名に注意してください。先頭の cuda_8.0.61 は cuda のバージョンを表し、末尾の 375.26 は対応する NVIDIA ドライバーのバージョンを表します。ここでは cuda8.0 のインストール プロセスを例として使用していますが、9.0 および 9.1 にも同じことが当てはまります)。

インストール プロセス中、ソフト リンクを確立する際には注意が必要です。cuda を初めてインストールする場合は、迷わず y (はい) と入力してください。ただし、cuda の追加バージョンをインストールする場合は、y (はい) を選択するかどうかは、特定のニーズによって異なります。つまり、現在インストールされている cuda のバージョンを有効にする場合は、y を選択します。このバージョンをインストールするだけで、当面有効にしない場合は、n を選択します。

#まず、関連する依存関係をインストールするために次のコマンドを実行します。
#そうしないと、「推奨ライブラリがありません」というエラーが発生します。sudo apt-get install freeglut3-dev build-essential libx11-dev libxmu-dev libxi-dev libgl1-mesa-glx libglu1-mesa libglu1-mesa-dev 


sudo sh cuda_8.0.61_375.26_linux.run #インストールを開始#..一連のプロトコル命令...
#プロトコルの説明を直接終了するには、q を押します。
zerozone@zerozone: accept/decline/quit: accept #契約に同意します Linux-x86_64 375.26 用の NVIDIA Accelerated Graphics Driver をインストールしますか? 
y)es/(n)o/(q)uit: n #グラフィックドライバパッケージがインストールされているかどうか。グラフィックドライバはインストールされているので、nを選択します。

CUDA 8.0 ツールキットをインストールしますか?
(y)es/(n)o/(q)uit: y #ツールキットをインストールするかどうかは、yを選択してください

ツールキットの場所を入力
[ デフォルトは /usr/local/cuda-8.0 ]: #Toolkit のインストール アドレス、デフォルトでは Enter キーを押します /usr/local/cuda にシンボリック リンクをインストールしますか?
(y)es/(n)o/(q)uit: y #リンクを追加**このリンクに注意してください。以前に別のバージョンの cuda をインストールしたことがある場合は、この新しいバージョンの cuda を使用するつもりがない限り、このリンクを指定すると cuda がこの新しいバージョンを指すため、ここでは no を選択することをお勧めします**

CUDA 8.0 サンプルをインストールしますか?
(y)es/(n)o/(q)uit: y #サンプルをインストールCUDAサンプルの場所を入力してください
 [ デフォルトは /root ]: #デフォルトのインストール アドレスは許容されます# ***インストール情報***
/usr/local/cuda-8.0 に CUDA ツールキットをインストールしています...

推奨ライブラリが見つかりません: libXi.so
推奨ライブラリが見つかりません: libXmu.so
#推奨ライブラリが見つからないというエラーがあることに注意してください。
#これは、ブロガーが初めてインストールするときに、関連する依存関係をインストールするための初期コマンドを追加しなかったためです。
#依存関係を追加して再度インストールした後、/root に CUDA サンプルをインストールする際にエラーが発生しなくなりました...
サンプルを /root/NVIDIA_CUDA-8.0_Samples にコピーしています...
サンプルのコピーが完了しました。

===========
= 概要 =
===========
ドライバー: 選択されていません
ツールキット: /usr/local/cuda-8.0 にインストール
サンプル: /root にインストールされていますが、推奨ライブラリがありません

必ずご確認ください
 - PATHに/usr/local/cuda-8.0/binが含まれている
 - LD_LIBRARY_PATH に /usr/local/cuda-8.0/lib64 が含まれているか、/etc/ld.so.conf に /usr/local/cuda-8.0/lib64 を追加し、root として ldconfig を実行します。

CUDAツールキットをアンインストールするには、/usr/local/cuda-8.0/binにあるアンインストールスクリプトを実行します。

CUDA の設定の詳細については、/usr/local/cuda-8.0/doc/pdf の CUDA_Installation_Guide_Linux.pdf を参照してください。

***警告: インストールが不完全です。このインストールでは CUDA ドライバーがインストールされませんでした。CUDA 8.0 の機能が動作するには、バージョン 361.00 以上のドライバーが必要です。

このインストーラーを使用してドライバーをインストールするには、<CudaInstaller> をこの実行ファイルの名前に置き換えて、次のコマンドを実行します。

  sudo <CudaInstaller>.run -silent -driver

ログファイルは /tmp/cuda_install_6388.log です。  
# ***インストール完了***

CUDA関連の環境変数を設定する

~/.bashrcファイル(または~/.zhsrc)を変更し、ファイルの末尾に環境変数を追加します。

Tensorflow の公式インストール プロセスでは、PATH および LD_LIBRARY_PATH と CUDA_HOME 環境変数を構成することに注意する必要があります。

vim ~/.bashrc #設定ファイルを変更します(zshを使用している場合は、~/.zshrcファイルを変更する必要があります)

#ファイルの最後に export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda/lib64 を追加します
エクスポート PATH=$PATH:/usr/local/cuda/bin
CUDA_HOME=$CUDA_HOME:/usr/local/cuda をエクスポートします。

同じ方法を使用して、インストールする cuda ツールキットの別のバージョンをダウンロードします (runfile タイプであることに注意してください)。インストール プロセス中に、cuda シンボル リンクの選択に注意してください (最初のインストールの場合は y を選択し、追加のバージョンをインストールする場合は n を選択します)。

2. 複数のバージョンのcudaを切り替える

複数の cuda バージョンをインストールした後、次の図に示すように、 /usr/local/ディレクトリにインストールした cuda バージョンを表示できます。

ここで、cuda-9.0 と cuda-9.1 はインストールした 2 つの cuda バージョンであり、cuda は指定した cuda バージョンを指すソフト リンクです (上記の環境変数を設定するときに、cuda-9.0 と cuda-9.1 の代わりに cuda が使用されることに注意してください。これは主に、毎回環境変数の値に移動する必要がないように、cuda バージョンの切り替えを容易にするためです)

次のように、stat コマンドを使用して、現在の cuda ソフト リンクが指している cuda バージョンを表示できます。

ご覧のとおり、ファイル タイプはシンボリック リンクであり、それが指しているディレクトリは/usr/local/cuda-9.0です。cuda-9.1 バージョンを使用する場合は、ソフト リンクを削除して、cuda-9.1 バージョンを指すソフト リンクを再確立するだけです (名前は cuda のままであることに注意してください。これは、 bashrcファイルの設定と一致している必要があるためです)。

sudo rm -rf cuda
sudo ln -s /usr/local/cuda-9.1 /usr/local/cuda

cuda の別のバージョンに切り替える場合は、ソフト リンクを作成するときに cdua の正しいパスを変更するだけです。

Ubuntu に複数のバージョンの CUDA をインストールし、いつでも切り替える方法については、これで終わりです。Ubuntu に複数のバージョンの CUDA をインストールする方法の詳細については、123WORDPRESS.COM の以前の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • Ubuntu での CUDA と CUDNN のインストールとアンインストールの実装
  • Ubuntu16.04にCUDA9.0をインストールするための詳細なチュートリアル
  • Ubuntu 20.04 に cuda10.1 をインストールする手順 (グラフィック チュートリアル)
  • Ubuntu インストール cuda10.1 ドライバ実装手順
  • Ubuntu 20.04 CUDA & cuDNN のインストール方法 (グラフィカル チュートリアル)
  • Ubuntu 16.04 に nvidia ドライバー + CUDA + cuDNN をインストールする詳細なチュートリアル
  • ubuntu16.04 に複数のバージョンの CUDA をインストールする方法
  • CUDA10.0 のインストールと Ubuntu での問題

<<:  Vue.js $refs 使用例の説明

>>:  MySQL のマスター スレーブ レプリケーション オプションをオンラインで変更する方法

推薦する

Vue の計算プロパティの紹介

目次1. 計算プロパティとは何ですか? 2. 計算プロパティの構文3. 例1. 計算プロパティとは何...

Windows 10 での MySQL 8.0.12 解凍バージョンのインストール グラフィック チュートリアル

この記事は、MySQL 8.0.12解凍版のインストールグラフィックチュートリアルを記録しています。...

JavaScript における一般的な配列操作

目次1. 連結() 2. 結合() 3. プッシュ() 5. シフト() 6. シフト解除() 7....

MySQL 8.0.15 winx64 のインストールと設定方法のグラフィックチュートリアル

この記事では、MySQL 8.0.15のインストールと設定方法を参考までに紹介します。具体的な内容は...

React antd タブの切り替えによりサブコンポーネントが繰り返し更新される

説明する: Tabs コンポーネントが切り替わると、TabPane に含まれる同じサブコンポーネント...

Linux CDの意味と使い方

Linux CD とはどういう意味ですか? Linux では、cd はディレクトリの変更を意味します...

Centos8 に nginx をインストールするための詳細なチュートリアル (画像とテキスト)

Nginx (「エンジン エックス」と発音) は、インターネット上の最大規模のサイトの負荷を処理す...

デザイン理論:人の心を理解する方法

<br />かつて、仏印と東坡氏が仏教について雑談していたとき、東坡氏が突然こう言った。...

MySQL 8.0.12 のインストールと設定のグラフィックチュートリアル

MySQL 8.0.12 のダウンロードとインストールのチュートリアルを録画し、全員と共有しました。...

MySQL 5.7.15 バージョンのインストールと設定方法のグラフィックチュートリアル

この記事では、MySQLバージョン5.7のインストール方法と使用方法、およびデータベースデータの保存...

HTML の大なり、小なり、スペース、引用符などでよく使用されるエスケープ コードのリスト。

表は以下のとおりです。 HTMLソースコード結果を表示説明する&lt; <未満記号また...

HTMLエリアタグの詳しい説明

<area> タグは、イメージ マップ内の領域を定義します (注: イメージ マップはク...

負荷分散と動的および静的分離操作を実現するDocker NginxコンテナとTomcatコンテナ

Tomcat8 イメージをダウンロード [root@localhost ~]# docker sea...

MySQLクエリ書き換えプラグインの使用

クエリ書き換えプラグインMySQL 5.7.6 以降、MySQL Server は、サーバーが実行す...

Vue でルーティング遷移効果を実装する 4 つの方法

Vue ルーター トランジションは、Vue プログラムにパーソナライズされたエフェクトをすばやく簡単...