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キーを押すとプログラムは終了します。)