【超詳しく】深層学習トレーニングモデルのプロセスでGPUアクセラレーションを使用する方法

序文

ディープラーニングでは通常、モデルをトレーニングする際に繰り返し最適化とトレーニングを行う必要があり、CPU だけでトレーニングすると時間がかかりますが、GPU を使用してトレーニング モデルを高速化できるため、トレーニングのコストを大幅に削減できます。モデルの時間 次の図は、トレーニング モデル中に GPU アクセラレーションを使用した場合と使用しなかった場合にかかる時間の比較です。

mmexport1683808312593.png

この図から、GPU アクセラレーションを使用した方が、GPU アクセラレーションを使用しないモデルのトレーニングよりもはるかに高速であることがわかります。次に、深層学習のトレーニング モデルのプロセスで GPU アクセラレーションを使用する方法を説明します。

注: 次のインストール手順とコマンドは Windows 環境でのインストールのみをサポートしており、後で他のオペレーティング システムのインストール チュートリアルを公開します。

NVIDIA グラフィックス ドライバーをインストールする

まず、検索バーでデバイス マネージャーを検索して開き、ディスプレイ アダプターにあるコンピューター グラフィックス カードのバージョンを見つけます。

画像.png

次に、NVIDIA の公式 Web サイトでコンピューター グラフィックス カードに対応するドライバーのバージョンを見つけてインストールします。

NVIDIA グラフィックス ドライバーのダウンロード リンク

グラフィック カードの対応するバージョンを見つけて、グラフィック カード ドライバーをダウンロードします。

画像.png

検索後、対応するバージョンを見つけてダウンロードします

画像.png

ダウンロード後にインストールする

画像.png

ここでは、デフォルトのインストール場所を選択し、「OK」をクリックします。その他のフォローアップ手順は比較的簡単で、「次へ」をクリックしてインストールするだけです。問題が発生した場合は、次のリンクを参照して特定のインストール手順を確認してください。 ] NVIDIA
ドライバーをインストールする

最後に、コマンド プロンプトを開き、nvidia-smi コマンドを入力して、コンピューターのグラフィックス カードのドライバー情報を表示します。

nvidia-smi

NVIDIA グラフィック カード ドライバーが正常にインストールされていることを証明するには、次の情報を参照してください。

VR8JH65PVE6O~35A7RT.png

CUDA と cuDNN をインストールする

序章

CUDA と cuDNN はどちらも、NVIDIA によって発売されたディープ ラーニング開発ツールです。

CUDA は Compute Unified Device Architecture の略で、開発者が C++、Fortran、Python などのプログラミング言語を使用して NVIDIA GPU でコードを実行できるようにする、NVIDIA によって策定された汎用並列コンピューティング プラットフォームおよびプログラミング モデルです。CUDA Toolkit は、GPU アクセラレーション ライブラリ、デバッグおよび最適化ツール、C/C++ コンパイラ、ランタイム ライブラリを含む、CUDA プラットフォームに基づく開発ツールキットです。

cuDNN の正式名は CUDA Deep Neural Network library で、畳み込みニューラル ネットワークやリカレント ニューラル ネットワークを含むさまざまなニューラル ネットワーク モデルをサポートし、一般的なディープ ラーニング フレームワークと互換性のある高性能 GPU アクセラレーション ディープ ラーニング ライブラリです。 TensorFlow、PyTorch、Caffe2 などを統合します。cuDNN は、畳み込み、プーリング、正規化、活性化などの一般的な操作を含む、高度に最適化された実装を提供しており、cuDNN を使用することで、深層学習タスクの処理速度を高速化できます。

バージョンの互換性を確認する

バージョンの互換性の問題を解決するために何度もインストールとアンインストールを繰り返したため、バージョンの互換性は GPU アクセラレーションにとって非常に重要です。

最後に、TensorFlow と NVIDIA の公式ドキュメントで、対応する GPU、CUDA、cuDNN、Python のバージョンを見つけました。以下のリンクを参照してバージョンを選択できます。

TensorFlow 公式ドキュメントNVIDIA
公式ドキュメント

各 CUDA バージョンでサポートされる GPU モデルのリストは、NVIDIA の公式ドキュメントに記載されています。ページの左側のメニューで、必要な CUDA バージョンを選択し、[サポートされているオペレーティング システム] リンクをクリックして、そのバージョンでサポートされているオペレーティング システムを表示します。「サポートされている CUDA GPU」リンクをクリックすると、このバージョンでサポートされている GPU モデルのリストが表示されます。
mmexport1683812957391.png

この表に従って、インストールする CUDA、cuDNN、Python、tensorflow-GPU のバージョンを選択することもできます

ブロガーの各バージョンの対応情報:NVIDIA GeForce GTX 1080、NVIDIA GeForce GTX 1650、Python3.9.0、CUDA 11.2.0、cuDNN 8.1.0、tensorflow-gpu 2.6.0

CUDAをインストールする

CUDA 11.2 のダウンロード リンク: CUDA 11.2.0

最初にCUDA対応システムバージョン情報を選択します

CTF25GYZK~2MX3M_MXY.png
最後にクリックしてダウンロードします
DKFFSE6JB4F6XCNQZ8.png

ダウンロードが完了したら、exeファイルをクリックしてインストールします

ZUP6P1DEC8595RKLYPU.png

ここでは、デフォルトのインストール場所を選択します。
画像.png
[OK] をクリックして待ちます。
画像.png
次に、CUDA インストール インターフェイスに入ります。
GF4_TZCW.png

システムチェック --> 使用許諾契約に同意 --> カスタムオプションを選択 --> インストール完了

インストール プロセス中に、カスタム インストール オプションを選択することが重要です。

UUN2SVTDW4Q0ESXT3G.png

関連するすべての構成を確認します。

0R~3DW1XS9824WF9J75.png

最後に、インストールが完了し、「閉じる」をクリックします。

PJP5HH7I1P71K868`U4P.png

他に特に注意すべき点はありませんが、その他の問題が発生した場合は、関連リンクを参照するか、コメント欄にメッセージを残していただければ、順次回答させていただきます。

CUDA と cuDNN のインストール チュートリアル

注: 環境変数は、インストール プロセス中に自動的に追加されます。インストールが完了したら、コンピューターを再起動する必要があります。デフォルトの
インストール パスは、C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.2 です。

コンピューターを再起動した後、コマンド プロンプトに nvcc -V コマンドを入力して、CUDA が正常にインストールされているかどうかを確認します。
画像.png

上記の情報は、CUDA が正常にインストールされたことを証明するために表示されます。

cuDNNをインストールする

cuDNNのダウンロードリンク

ダウンロード リンクをクリックすると、対応するバージョンが表示されます。ダウンロードする前に、NVIDIA 開発者プログラムに登録してログインし、基本的な個人情報を入力する必要があります。

以下では、例として cuDNN 8.1.0 をダウンロードしてインストールします。

VPLJ8F5VXK8RQDE85NE.png

ダウンロードが完了したら、解凍してcudaフォルダを取得します。

_RKY~JJE7R8UXLKY2QM.png

このフォルダーを開くと、bin、include、lib の 3 つのフォルダーがあることがわかります。

41GA`CHLDTBPDGLJH.png

以前の CUDA 11.2.0 インストール パス: C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.2 を見つけてフォルダーを開くと、対応するフォルダーが 3 つ見つかります。

O2IKZJLFYIUSM`NGGIFPV.png

cudnn 内の 3 つのフォルダーを cuda に対応するフォルダーにコピーします。

4A4CNZFI8~46VS061SS.png

対応するフォルダー内のすべてのコンテンツを選択し、コピーして cuda フォルダーに貼り付けることができます

環境変数を構成する

「この PC」を右クリックし、「プロパティ」をクリックし、「システムの詳細設定」をクリックします。

~O352H`A37OJBTO6AG9Y0L.png

環境変数をクリックし、システム環境変数でパス環境変数を見つけ、クリックして入力します

QZ6CXNAP7XRQ`02CVNVC.png

AEFM02`8_LFCSUN.png

以下をパス環境変数に追加します

C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.2\bin
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.2\libnvvp
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.2\lib
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.2\include

通常、最初の 2 つの環境変数は CUDA のインストール時に自動的に構成されているため、後の 2 つを追加するだけで済みます。

cuDNN のバージョンが異なるとバージョン番号を変更できる

最後に、パス内のこれら 4 つの場所を確認して、環境変数の構成が成功したことを証明できます。

1MPEZYQ337KC7LEU0W_I.png

cuDNN が正常にインストールされていることを確認します

ターミナル コマンド プロンプトを開き (win+r を押して cmd を入力)、
CUDA ファイル パスを入力します: C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.2\extras\demo_suite

cd C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.2\extras\demo_suite

画像.png

deviceQuery.exeを実行すると、次のレンダリングが表示されます。

画像.png

引き続き、bandwidthTest.exeを実行すると、次の効果図が表示されます。

画像.png

最後に、cuDNN が正常にインストールされました。

TensorFlow で利用可能な GPU を確認する

Python3.9.0をインストールする

Python3.9.0のダウンロードリンク

リンクをクリックしてダウンロードしてインストールします。インストールが完了したら、コマンド プロンプトで「python」と入力して 、現在の Python バージョンを表示します。
6K912U2X6N9VT8EZC9E~P.png

入力: exit()は、Python コンパイル環境を終了します。
0_WW`0_EK8R9FXWFV.png

tensorflow-gpu 2.6.0 をインストールする

コマンド プロンプトで次のように入力します: pip install tensorflow-gpu 2.6.0インストールが完了するまで待ちます。

ご質問がございましたら、コメント欄にメッセージを残してください

最後に、ターミナルに「pip list」と入力して、インストールされている tensorflow-gpu 2.6.0 を表示します。

DX3P2KIKTSTRUL2QE.png

利用可能なGPUを確認する

ターミナルに次のコードを入力して、Python コンパイル環境または他のコンパイラに入り、利用可能な GPU を確認できます。

import tensorflow as tf
print("Num GPUs Available: ", len(tf.config.experimental.list_physical_devices('GPU')))

出力結果が >0 である限り、使用可能な GPU があることが証明されます。

36446RM52CG_FMJEC5MWU8.png

コードのテスト

エディターで test_model.py ファイルを作成し、次のコードを入力して GPU アクセラレーション効果を表示します。

import tensorflow as tf

# 列出可用的 GPU 设备
print(tf.config.list_physical_devices('GPU'))

# 设置 TensorFlow 使用 GPU 进行计算
gpu_devices = tf.config.list_physical_devices('GPU')
if gpu_devices:
    for device in gpu_devices:
        tf.config.experimental.set_memory_growth(device, True)

# 加载数据集
mnist = tf.keras.datasets.mnist
(x_train, y_train), (x_test, y_test) = mnist.load_data()
x_train, x_test = x_train / 255.0, x_test / 255.0

# 定义模型
model = tf.keras.models.Sequential([
    tf.keras.layers.Flatten(input_shape=(28, 28)),
    tf.keras.layers.Dense(128, activation='relu'),
    tf.keras.layers.Dropout(0.2),
    tf.keras.layers.Dense(10)
])

# 编译模型
loss_fn = tf.keras.losses.SparseCategoricalCrossentropy(from_logits=True)
model.compile(optimizer='adam', loss=loss_fn, metrics=['accuracy'])

# 训练模型
model.fit(x_train, y_train, epochs=5)

# 评估模型
model.evaluate(x_test, y_test, verbose=2)

操作結果:

K8YOG9YUUXU`4YJFX.png

要約する

インストールプロセスで最も重要なことはバージョンの互換性であり、公式ドキュメントを確認してください。最後に、ご質問がございましたら、コメント欄にメッセージを残してください。返信して問題の解決をお手伝いします。

おすすめ

転載: blog.csdn.net/qq_52730883/article/details/130650143