(また後日清書します。今日(2019/3/28)の所は覚え書き程度に)
※2019/4/4追記
本試行は実行マシンが初代i7を積んでおりAVX命令に対応していないのでtensorflow1.5.0以前しか使用できないという前提に立って記載しています。しかし、ソースからビルドするとそれ以降のバージョンでも使用出来る事がわかり、試したところUbuntu Server 18.04上で1.13.0-rc0をビルドし使えるようになりました。因って、この記事は単なる知識不足の思い込みからの試行錯誤の記録となりました。
以前Fedora29 i5 16Gのマシンで流行の機械学習を少し試してみようとtheano+kerasを使ったネットの記事を元に動かして見たのですが遅すぎて話にならず。
そんな中、つい最近長年使っていたPCを引退させたのでこちらにグラボを積んでみる。
積んだのは
MSI GoForce GTX 1060 GAMING X 6G
です。
いざtesorflowをGPUで動かして見ようと思ったのですが…ほぼ丸一週間かかった。その奮戦記です。
最初は__CentOS7.3__上で環境構築しようと思い色々試す。この時はCUDAのインストールに苦戦。ネットの情報ではnvidiaドライバを入れてからCUDA Toolkitという順序のように思って試したのですがnvidia-smiすらFatal Errorと。
結局CUDA Toolkitをいきなり入れたらドライバも入ってくれるとのことでCUDA Toolkitだけを入れたら見事に動いた。CUDAのサンプルも動きました。cudnnも言われたとおりにやったらすんなりインストール完了。ただrpm形式のサンプルプログラムにはコンパイルに必要なsamples_common.mkが入ってない。。。仕方なくUbuntsu用のdebを解凍し使いました。動作の方は問題無かったです。
その次にtensorflow-gpuを入れたのですがimportでこける。どうやら原因はlib、つまりgcc周りが古いのが原因のようで。しかしCentOSはサーバー用途なので多少無理な方法でバージョンを合わせたりするなどの策が必要な様で。なのでCentOSは断念。
それならと先進的な__Fedora29__で環境構築しようと思いました。
この時は慣れた物でCUDA、cudnnもすんなり。tensorflow-gpuも入りました。しかしまたしてもimportでエラー。どうやらCUDAは10でないと無理で、最新のCUDA 10.1ではtensorflow-gpu動かないらしい。しかし、Fedora用は10.1しかない。よってFedoraも断念。
それならと__Ubuntsu Server 18.04 LTS__を試しました。CUDA,cudnnはUbuntsuが一番すんなり動きますね。ネットの皆様がUbuntsu使われている理由がよくわかりました。tensorflow-gpuを入れるところまではいけたのですが、importで今度は
illegal ERROR (Core dumped)
と出てで落ちました。調べると使っているマシンのCPUがi7なのはいいが第一世代のものでAVX命令に対応していないのが原因とのこと。
_tensorflow-gpu-1.5.1以降はダメ_のようで。なのでtensorflow-gpu-1.5.0を入れようとする。
その為にはCUDA 9.0 or CUDA 8.0を入れなければならない。なので、CUDA 9.0を入れようとしたのですが18.04用は提供されていない。よって18.4を断念。Ubuntu 16.04 LTSならCUDA 9.0が提供されているのでそちらを。
__Ubuntu 16.04 LTS__は最初Serverをインストールしたのですがインストール後固まる現象が起きて埒が明かないのでDesktopを使いました。CUDA 9.0,cudnnを無事インストール。しかし肝心のtensorflow-gpu-1.5.0はどうやったら手に入れられるのか…
色々探しているとYoutubeに親切な動画があって、
こんなところに有ったのですね。
こちらのお陰でwhlファイルのファイル名の意味を知ることが出来ました。
anacondaのpythonをcondaで3.6に切り替えてインストールし、無事に動かす事が出来ました。
いやぁ、長かったw