get_gpu_inf.py テクニカルドキュメント

プログラムの動作

get_gpu_inf.py は、システムにNVIDIA製GPUが搭載されており、Pythonの深層学習ライブラリであるPyTorchがCUDAを通じてそのGPUを認識・利用できるかを確認するためのスクリプトです。

主な機能は以下の通りです。

  • システム上でCUDAが利用可能であるかをチェックします。

  • CUDAが利用可能な場合、プライマリGPU(デバイスID 0)の名称と、PyTorchが現在使用しているCUDAのバージョンを表示します。

  • CUDAが利用できない場合、「No GPU available」というメッセージを表示します。

  • プログラムの最後に、ユーザーがEnterキーを押すまで実行を一時停止し、出力結果を確認できるようにします。

このプログラムは、特に深層学習環境のセットアップ時に、PyTorchがGPUを正しく認識しているかを確認する目的で使用されます。

原理

このプログラムは、PyTorchライブラリが提供するCUDA関連のAPIを利用して、GPUの情報を取得します。

  • GPUの検出: torch.cuda.is_available() 関数は、PyTorchがCUDAデバイスと通信できるかどうかをブール値(True/False)で返します。この関数は、NVIDIAドライバーとCUDAツールキットが適切にインストールされており、PyTorchがこれらを認識できる環境にあるかどうかを間接的に示します。

  • GPU名の取得: torch.cuda.get_device_name(0) 関数は、システム上の最初のCUDAデバイス(通常はプライマリGPU)のモデル名を文字列で取得します。引数 0 はデバイスIDを示し、複数のGPUが存在する場合は他のIDを指定することも可能ですが、このスクリプトでは最初のGPUのみを対象としています。

  • CUDAバージョンの取得: torch.version.cuda 属性は、現在インストールされているPyTorchがビルドされた際のCUDAのバージョンを文字列で提供します。これはシステムにインストールされているCUDAツールキットのバージョンと一致しないこともありますが、PyTorchがどのCUDAバージョンに依存しているかを示す重要な情報です。

これらのAPIは、NVIDIAのCUDA Toolkitとドライバーを介してGPUハードウェアと通信し、必要な情報を取得しています。

必要な非標準ライブラリとインストール方法

このプログラムの実行には、torch (PyTorch) ライブラリが必要です。特にGPUで動作させるためには、CUDAに対応したPyTorchバージョンをインストールする必要があります。

以下のコマンドを使用して、PyTorchをインストールできます。

pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118

補足: 上記のコマンドは、CUDA 11.8に対応するPyTorchをインストールする例です。ご利用のGPU、OS、およびCUDA Toolkitのバージョンに合わせて、--index-url の部分を https://download.pytorch.org/whl/cu1XX (例: cu121 for CUDA 12.1) のように調整してください。

PyTorchのGPU版を利用するためには、事前に以下のものがシステムにインストールされている必要があります。

  • NVIDIA GPUドライバー

  • CUDA Toolkit (PyTorchのバージョンと互換性のあるもの)

これらの詳細については、PyTorchの公式サイトおよびNVIDIA開発者サイトをご参照ください。

必要な入力ファイル

このプログラムは、実行時に特定の入力ファイルを必要としません。

ユーザーからの入力は、プログラムが情報を表示した後、終了前にEnterキーの押下を求めるプロンプトに対してのみ行われます。

生成される出力ファイル

このプログラムは、実行時にいかなるファイルも生成したり保存したりしません。すべての出力は標準出力(コンソール)に表示されます。

コマンドラインでの使用例 (Usage)

基本的な実行コマンドは以下の通りです。

python get_gpu_inf.py

このコマンドは、引数なしでプログラムを実行し、システムのGPU情報を標準出力に表示します。

コマンドラインでの具体的な使用例

1. GPUが利用可能な環境で実行した場合

システムにNVIDIA製GPUが搭載され、PyTorchがCUDAを認識できる状態の場合の出力例です。

python get_gpu_inf.py

実行結果例:

GPU Name: NVIDIA GeForce RTX 3080
CUDA version: 11.8

Press ENTER to terminate>>

(この後、ユーザーがENTERキーを押すとプログラムは終了します。)

2. GPUが利用できない環境で実行した場合

システムにNVIDIA製GPUが搭載されていない、またはPyTorchがCUDAを認識できない状態の場合の出力例です。

python get_gpu_inf.py

実行結果例:

No GPU available

Press ENTER to terminate>>

(この後、ユーザーがENTERキーを押すとプログラムは終了します。)