Windows11 WSL2 Ubuntu Python
TensorFlow インストール確認Ⅰ
ここまで TensorFlow のインストールが完了しました。
引き続き TensorFlow がうまくインストールされたか確認します。
yamada@yama:~$ conda activate
として conda 環境を有効にします。
以下のコマンドを実行します。
(base) yamada@yama:~$ python -c "from tensorflow.python.client import device_lib; print(device_lib.list_local_devices())"
実行すると沢山コメントが出ますので分割して説明します。
- `TF_ENABLE_ONEDNN_OPTS=0`
tensorflow/core/util/port.cc:110]
oneDNN custom operations are on.
You may see slightly different numerical results due to floating-point round-off errors from different computation orders.
To turn them off, set the environment variable `TF_ENABLE_ONEDNN_OPTS=0`.
[和訳]
tensorflow/core/util/port.cc:110]
oneDNN カスタム オペレーションがオンになっています。
浮動小数点の丸め誤差により、異なる計算次数から、わずかに異なる数値結果が表示される場合があります。
それらをオフにするには、環境変数 `TF_ENABLE_ONEDNN_OPTS=0` を設定します。
[対応]
py ファイルの最初に
import os
os.environ['TF_ENABLE_ONEDNN_OPTS']='0'
を追加します。 - SSE4.1 SSE4.2 AVX AVX2 AVX_VNNI FMA
tensorflow/core/platform/cpu_feature_guard.cc:182]
This TensorFlow binary is optimized to use available CPU instructions in performance-critical operations.
To enable the following instructions:
SSE4.1 SSE4.2 AVX AVX2 AVX_VNNI FMA,
in other operations,
rebuild TensorFlow with the appropriate compiler flags.
[和訳]
tensorflow/core/platform/cpu_feature_guard.cc:182]
この TensorFlow バイナリは、パフォーマンスが重要な操作で利用可能な CPU 命令を使用するように最適化されています。
次の SSE4.1 SSE4.2 AVX AVX2 AVX_VNNI FMA 等の命令操作を有効にするには、
適切なコンパイラ フラグを使用して TensorFlow を再構築します。
[私の場合]
私の CPU は
12th Gen Intel(R) Core(TM) i7-12700
よって、そもそも AVX 拡張命令セットは使えないので TensorFlow の再構築は必要ないと考えました。
[対応]
py ファイルの最初に
import os
os.environ['TF_CPP_MIN_LOG_LEVEL']='1'
を追加します。
0:全てのメッセージが出力される(デフォルト)
1:INFO メッセージが出ない
2:INFO と WARNING が出ない
3:INFO と WARNING と ERROR が出ない
対応として1を設定するとこのコメントはでなくなります。 - without NUMA support
tensorflow/compiler/xla/stream_executor/cuda/cuda_gpu_executor.cc:982]
could not open file to read NUMA node:
/sys/bus/pci/devices/0000:01:00.0/numa_node
Your kernel may have been built without NUMA support.
-------
tensorflow/core/common_runtime/gpu/gpu_device.cc:1722]
Could not identify NUMA node of platform GPU id 0, defaulting to 0.
Your kernel may not have been built with NUMA support.
-------
tensorflow/compiler/xla/stream_executor/cuda/cuda_gpu_executor.cc:982]
could not open file to read NUMA node:
/sys/bus/pci/devices/0000:01:00.0/numa_node
Your kernel may have been built without NUMA support.
[和訳]
カーネルは NUMA サポートなしで構築されている可能性があります。
NUMA support とは複数のマイクロプロセッサ(MPU/CPU)を搭載した対称型マルチプロセッサ(SMP)構成のコンピュータで、 全体で共有されているメモリへのアクセス速度が CPU とメモリ領域の組合せにより 不均等にならないよう調整してくれる機能。
詳細はNUMA 【Non-Uniform Memory Access】
を参照してください。
[対応]
過去以下のバージョン組合せではうまく動作したようです。
一方、私がインストールした最新のバージョンの組合せでは NUMA support が機能しないようです。
2022/12 月現在 My PC インストール状況
tensorflow 2.12.0 2.12.0
Python 3.8-3.11 3.10.10
cuDNN 8.6 8.9.3
CUDA 11.8 12.2
機能すれば処理速度が少し早くなりそうですが、とりあえずよしとしました。
os.environ['TF_CPP_MIN_LOG_LEVEL']='1'
を追加することにしました。
CUDA 12.2 をダウングレードすれば良いかもしれません。 - CPU/GPU 状況
print(device_lib.list_local_devices())
により出力された結果は、次の通りです
tensorflow/core/common_runtime/gpu/gpu_device.cc:1635]
Created device /device:GPU:0 with 2059 MB memory:
-> device: 0, name:
NVIDIA GeForce GTX 1650,
pci bus id: 0000:01:00.0, compute capability: 7.5
[name: "/device:CPU:0"
device_type: "CPU"
memory_limit: 268435456
locality {
}
incarnation: 10422065275443940544
xla_global_id: -1,
name: "/device:GPU:0"
device_type: "GPU"
memory_limit: 2159542272
locality {
bus_id: 1
links {
}
}
incarnation: 10267494554063353716
physical_device_desc:
"device: 0, name:
NVIDIA GeForce GTX 1650,
pci bus id: 0000:01:00.0,
compute capability: 7.5"
xla_global_id: 416903419
]
[対応]
name: "/device:GPU:0"
があれば GPU を認識しています。
TensorFlow インストール確認Ⅰが完了しました。
引き続き、他の方法でも conda 仮想環境に入れた tensorflow の動作確認をしていきます。