前に一度試して、ビルド条件がとても面倒くさそうなので放置していたが、下の記事を参考にして試したところ、Windows10においてTensorflow2のC++ライブラリビルドに成功した。
qiita.com
めちゃくちゃ勘違いしていたのだが、WSL2などは使わずにMSYSで出来る。
- MSYSでのCUDA対応ビルドが2.10以前でしかできないとかいう謎仕様がある。それより上のバージョンではWSL2を使えとある。めんどー
上の記事では、著者のkHz氏が試して成功したものしかリストに挙げられていないが、それ以外の組み合わせでも出来る様だ。
今回筆者が試した組み合わせは以下の通り。
・Wndows 10 64bit
・Visual Studio 2019
・Python 3.7.0(Anaconda)
・bazel 3.1.0
・CUDA 11.2
・cuDNN 8.1.0.77
・MSYS2
・Tensorflow 2.4
・GPU:RTX 2070 super
今回の試行で少し躓いた所と言えば、参考にした記事の8.4にある様に、ビルドされたtensorflowのwhlをpipでインストールする際に少しだけバージョンの差異による依存関係でエラーが出た事ぐらいで、エラーが出たパッケージのバージョンをpipで調整してやることで簡単に回避でき、無事C++ライブラリ(dllとlibとヘッダファイル等)が生成された。
また、Anacondaで環境を作りPythonをインストールした場合にはpython.exeへのパスが通っていない事がほとんどだと思うので、MSYSでpython.exeへのパスをPATHに追加でexportしてやることを忘れないように。
kHz氏の記事ではTuring世代のGPUでTensorflow1をビルドしたという結果だけを対応表の様に記述しているが、Turing世代のGPUでもTensorflow2はちゃんとビルドできる様だ。
Ampere世代GPUを使う場合Tensorflow1がビルドできないと言っているがそうなのだろうか。
しかし作ったはいいものの、本記事作成時点ではまだ使用していない。
これからも使わなそう・・・
以前失敗した試行を記録した自分の記事を見返すと、Googleの死ぬほどわかりづらいドキュメントを忠実に追って試したのだが駄目だった様だ・・・
ツールやライブラリのバージョンの依存関係が原因かもしれないが、今回の手順と結構違う事は確か。