HOWTO · TensorFlow
TensorFlow が GPU を使用しているかどうかを確認する
TensorFlow が GPU を認識しているか確認し、デバイス一覧の見方と、GPU が表示されない場合に調べる項目を説明します。
このページの内容
TensorFlow が GPU を認識できるか確認するには、アプリケーションと同じ Python プロセス、インタープリター、環境、起動時の設定で物理デバイスを照会します。別のターミナルやノートブックでは異なる TensorFlow が使われていることがあり、その結果がアプリケーションの状態を示すとは限りません。
TensorFlow が GPU を使用しているか確認する
次の例をアプリケーションの Python 環境で実行します。
このセクションのコードと表示されるラベルや出力は英語のままです。
import importlib.util
if importlib.util.find_spec("tensorflow") is None:
print("TensorFlow is not installed in this Python environment.")
else:
import tensorflow as tf
devices = tf.config.list_physical_devices("GPU")
print("TensorFlow GPU devices:", devices)
TensorFlow is not installed in this Python environment.
TensorFlow がインストールされている場合、空でない一覧は、このプロセスが1つ以上の GPU デバイスを検出したことを示します。空の一覧は、デバイスを検出できなかったことを示します。一覧だけではデバイスが見つからない理由は特定できず、GPU が見えていることだけで、特定のモデルや演算が GPU 上で実行されたとは確認できません。上に表示されるメッセージは、現在の Python 環境に TensorFlow パッケージがないことを示しています。アプリケーションで使っている環境を選択するか、その環境にインストールしてから、もう一度確認してください。表示されるメッセージとラベルは英語のままです。
アプリケーションが使うものと同じ実行経路から確認してください。ノートブックでは選択中のカーネルを確認し、サービスやコンテナーでは、そのプロセスの環境と設定で実行します。これにより、デバイスの検出問題と Python 環境の違いを切り分けやすくなります。
TensorFlow に GPU が表示され、特定の演算の配置も確認したい場合は、アプリケーションと同じ環境で代表的な演算を実行し、配置メッセージと result.device の両方を確認します。この例では行列乗算のデバイスとして /GPU:0 を要求します。ワークロードに合わせて演算と入力を調整してください。
import importlib.util
if importlib.util.find_spec("tensorflow") is None:
print("TensorFlow is not installed in this Python environment.")
else:
import tensorflow as tf
tf.debugging.set_log_device_placement(True)
with tf.device("/GPU:0"):
result = tf.matmul(tf.ones((2, 2)), tf.ones((2, 2)))
print("Result device:", result.device)
提供された実行環境には TensorFlow がインストールされていないため、TensorFlow に依存するこの例の配置出力は示せません。設定済みのマシンでは、配置メッセージと result.device からこの演算の実行状況を確認できます。正確なデバイス名はビルドやハードウェアによって異なります。デバイスを指定しただけでは、その演算やモデル内のすべての演算が GPU で実行されたことにはなりません。
GPU のサポート状況は、TensorFlow のディストリビューション、オペレーティングシステム、ハードウェア、ドライバー、インストール済みの依存関係によって異なります。すべてのマシンに適用できる単一のセットアップコマンドはありません。お使いのプラットフォームとディストリビューションでサポートされるインストール方法は、TensorFlow 公式インストールガイドを参照してください。DirectML のようなバックエンド名だけでは、このプロセスが GPU を検出したことは分かりません。バージョンやドライバーを変更する前に、選択したバックエンドとパッケージの最新ドキュメントを確認してください。このガイドでは、特定のバックエンドとハードウェアの組み合わせについて互換性を断定しません。
デバイス一覧が空の場合は、次の項目を順に確認してください。
- アプリケーションが使用しているものと同じインタープリター、仮想環境、またはノートブックカーネルが有効になっていることを確認します。
- その環境にインストールされている TensorFlow のディストリビューションを確認し、使用プラットフォームでの GPU サポートについて公式のインストールガイダンスに従います。GPU をサポートしないディストリビューションでは、GPU デバイスは表示されません。
- オペレーティングシステムから GPU が見えることを確認します。コンテナーを使う場合は、コンテナーから GPU にアクセスでき、ドライバーにも互換性がある必要があります。
- 選択した TensorFlow のディストリビューションまたはバックエンドで必要となる、ベンダーのドライバーと依存関係を確認します。環境を変更した後は Python プロセスを再起動し、デバイスをもう一度照会します。
TensorFlow が GPU を検出しているのに演算が CPU を使う場合は、その演算の周囲で配置ログを有効にし、デバイスを確認します。これにより、デバイスが見えることと演算の配置を区別でき、次に調べる対象を絞れます。