Python 仮想環境を使う

Illegal instruction (コアダンプ) 問題の整理

ここまでで Illegal instruction(コアダンプ)問題は回避することができたのですが、ものすごく苦労しました。
一時は諦めました。
そもそも AVX は Intel 社が始めたものでここへ来て止めるのは生んだ子を捨てるようなものです。
到底許されません。
AVX は、米インテル(Intel)社の CPU(マイクロプロセッサ/MPU)に実装された拡張命令セットの一つで 複数のデータに一度に同じ演算を行う SIMD 方式の処理を実行するためのもの。
2011年に登場した Sandy Bridgeマイクロアーキテクチャ製品以降に搭載されています。
AVX は第2世代の Core-i シリーズである Sandy Bride(2011)からサポートしており 浮動小数点演算に関してはここから AVX 命令が使えます。
AMD では Zen4 で AVX-512 に正式対応。
しかし、インテルはその後に BIOS アップデートで AVX-512 自体を無効にし、 さらには2022年以降の出荷ロット(私の PC はこれに該当)は物理的に無効化を施すなど 「一般向け CPU では使わせない」意向を示しています。
第13世代ではデフォルトで AVX-512 に対応しないことが発表されています。

私の PC はなぜ Illegal instruction になるのか

私の PC が Illegal instruction になるのかもう少し調べてみました。
うちの PC で使える CPU 拡張命令セットはどれ?
に行くと使用可能な CPU 拡張命令セットを調べることができます。
その結果は下記のようになりました。

12th Gen Intel(R) Core(TM) i7-12700
MMX	      yes
SSE	      yes
SSE2	  yes
SSE3	  yes
SSSE3	  yes
SSE4.1	  yes
SSE4.2	  yes
AESNI	  yes
PCLMULQDQ yes
AVX  CPU: yes  OS:yes
F16C CPU: yes  OS:yes
AVX2 CPU: yes  OS:yes
FMA  CPU: yes  OS:yes
SHA       yes
AVX512F	  no
AVX512CD  no
AVX512DQ  no
AVX512BW  no
AVX512VL  no
AVX512ER  no
AVX512PF  no

SSE4.* が使えて、AVX512** は使えない結果に AVX* CPU ではあるようなのですが、物理的に無効化しているようです。
よく調べてから PC を購入すべきでした。
後の祭りでした。

base 仮想環境に TensorFlow-gpu インストール

私の PC の装置構成は
FMV ESPRIMO WD2/G3
CPU : Core i7-12700
GPU : NVIDIA GeForce GTX1650
OS 構成は
Windows11
VirtualBox7
Ubuntu 22.04LTS
となっています。
ここに GPUドライバをインストールします。
しかしこれが大きな問題でした。
OS が仮想マシンで実行されている場合、ゲスト OS(Ubuntu)のグラフィックスドライバーも仮想です。
VirtualBox のゲスト OS に Nvidia グラフィックスドライバーをインストールまたは使用することはできないのです。
散々苦労したあげく諦めました。
解決策は Windows11 と Ubuntu 22.04LTS のデュアルブートにするしかないようです。
または、Windows11 に Anaconda + Jupter Notebook 環境を作成し TensorFlow(GPU) をインストールすることをお勧めします。
どうしても仮想環境上の Ubuntu から GPU を利用したい場合 WSL で GPU パススルーを行うことができるようです。
仮想環境のUbuntuからのGPU利用【WSL on Windows 11】
を参照してください。

ここまで、tensorflow Illegal instruction (コアダンプ)回避方法について説明してきました。
最後までお読みいただき、ありがとうございました。


  • base 仮想環境の TensorFlow 動作確認 に戻る
  • Illegal instruction (コアダンプ)回避続編 に戻る
  • 仮想環境は必要? に戻る
  • 70VPS に戻る