tensorflow2.18をAVX無効GPU有効でビルドする (python3.11)
投稿:2025/11/07
どうでもいい経緯
kaggle-gpu-imageのコンテナ内でtensorflowを使おうとしたら

調べてみると、tensorflow1.5以降ではAVX/AVX2拡張命令を使っていて、これが古いcpuでは使えないらしい。
しかし、自分が使っているcpuは12世代のi5なのでAVX命令は使えるはず。
実際windowsでは使えて、使えないのはwslの中だけだった。
色々調べてみたが自分の力では解決できなかったので諦め。
tensorflowを使うための代替案は5つくらい
- windows環境で開発する
- 嫌
- hyper-vを無効化にしてVirtualBoxやVMwareを使う
- うーん
- native linuxを入れる
- だるい。pc2台あったらやってみたい。
- tensorflowのバージョンを1.5に下げる
- カス
- tensorflowをAVX無しでビルドする
- 面倒
今の開発環境をできるだけ崩したくないので4か5、4はカスなので5。
ビルドを始める前に、
tensorflow no avxとかで検索すると、誰かが作ったwheelファイル配られてたりするので、自分に合うものが見つかれば終了。ただしtensorflowとpythonのバージョンは超重要で、少しでも違うと動かない可能性が高い。
tensorflowをビルドする
linux/python3.11/tensorflow2.18/avx無/cuda有
cloneしてくる
bazelを入れる
ビルドの設定
Rocm: No
cuda support: Yes
cuda version: 12.5.1
cudnn version: 9.2.1
clang as cuda: Yes (重要)
config opt: -mno-avx -mno-avx2 -mno-avxvnni -mno-fma -O2
android build: No
終わったら.tf_configure.bazelrcが作られる。
ビルドする
8時間かかった
完成。/bazel-binフォルダが作られて、そん中のどっかにwhlファイルがある。
配布
はい。ライセンスに気をつける
dropbox