LoginSignup
2
3

More than 5 years have passed since last update.

Fedora 23でGTX1060を使ってTensorFlowを動かす

Last updated at Posted at 2016-09-01

以下で解説しているのは、
- Fedora 23 ワークステーションをインストールしたPC上で
- GTX1060を使って
- TensorFlowを動かしたい
という場合におこなう作業です(2016年8月31日現在)。

1. CUDAのインストール

下記を参考にしました。
Install NVIDIA CUDA on Fedora 22 with gcc 5.1

準備

必要なものをインストールしておきます。

dnf -y install kernel-devel dkms
dnf -y groupinstall "C Development Tools and Libraries"

CUDAのインストール

下記の場所からCUDA 8 RCのrpmファイルを取ってきます。
CUDA Toolkit | NVIDIA Developer
私が使ったのは cuda-repo-rhel7-8-0-rc-8.0.27-1.x86_64.rpm です。

dnf -y install cuda-repo-rhel7-8-0-rc-8.0.27-1.x86_64.rpm 
dnf -y install cuda

設定ファイルを作成

以下の2つのファイルを作成します。

/etc/profile.d/cuda.sh を下記の内容で。

export PATH=$PATH:/usr/local/cuda/bin

/etc/ld.so.conf.d/cuda.conf を下記の内容で。

/usr/local/cuda/lib64

作成できたら、下記のコマンドを実行。

ldconfig

そしてrebootします。

reboot

NVIDIA driverの.runファイルを実行

下記の場所からGTX1060用のドライバファイルを取ってきます。
http://www.nvidia.com/Download/index.aspx
私が使ったのは NVIDIA-Linux-x86_64-367.44.run です。

chmod 755 NVIDIA-Linux-x86_64-367.44.run
./NVIDIA-Linux-x86_64-367.44.run

最初のほうのDKMS関係と32-bitライブラリ関係の質問にはYesと、
最後のほうのnvidia-xconfig関係の質問にはNoと答えましょう。

チェックは(例によって)以下のようにおこないます。

cd /usr/local/cuda/samples/1_Utilities/deviceQuery
make
./deviceQuery

2. JDK 8のインストール

よく分からなかったので、下記の場所にあるjdk-8u101-nb-8_1-linux-x64.shを使用しました。
http://www.oracle.com/technetwork/articles/javase/jdk-netbeans-jsp-142931.html
この.shファイルを実行後、インストール先のパスをJAVA_HOMEに設定します。

export JAVA_HOME=/usr/local/jdk1.8.0_101/

このパスの設定は、Bazelのインストールだけでなく、TensorFlowのインストールにも必要です。

3. Bazelをソースからインストール

BazelのサイトのCompiling from sourceにある指示通りに作業します。
Installing Bazel - Bazel
作業前に、gccにパスが通っているかどうかチェックしておきましょう。通っていなければ

export CC=/usr/bin/gcc

等としておきます。そして、以下を実行します。

git clone https://github.com/bazelbuild/bazel.git
cd bazel
./compile.sh

作成されたバイナリを適当な場所にコピーするのをお忘れなく。

4. TensorFlowをソースからインストール

TensorFlowのサイトのInstalling from sourcesにある指示通りに作業します。
TensorFlow -- Download and Setup

準備

必要なものをインストールしておきます。

dnf -y install python-wheel python-devel swig zlib-devel
pip install --upgrade pip
pip install --upgrade numpy

zlib-develは、TensorFlowのサイトの上記の場所には書かれていないですが、必要です。

cuDNNのダウンロードとインストール

CUDA 8.0 RC 向けのcuDNNをダウンロードしましょう。
私が使ったのは cudnn-8.0-linux-x64-v5.1.tgz です。

tar xvzf cudnn-8.0-linux-x64-v5.1.tgz
cp cuda/include/cudnn.h /usr/local/cuda/include
cp cuda/lib64/libcudnn* /usr/local/cuda/lib64
chmod a+r /usr/local/cuda/include/cudnn.h /usr/local/cuda/lib64/libcudnn*

インストールのためのコンフィギュレーション

GPU supportのところでyと答えるのを忘れないようにしましょう。

git clone https://github.com/tensorflow/tensorflow
cd tensorflow
./configure

インストール

bazel build -c opt --config=cuda //tensorflow/tools/pip_package:build_pip_package
bazel-bin/tensorflow/tools/pip_package/build_pip_package /tmp/tensorflow_pkg
pip install /tmp/tensorflow_pkg/tensorflow-0.10.0rc0-cp27-none-linux_x86_64.whl

ビルドはそれなりに時間がかかると思います。
うまくいかなければ、インストールのためのコンフィギュレーションのところで、
gccのパスを明示的に設定してからやり直すなどしてみてください。

インポートしてみる

インストール中に居たtensorflowディレクトリから抜けます。その後にチェックしましょう。
(そうしないと ImportError: cannot import name pywrap_tensorflow みたいなエラーが出ます。)
以下に私の環境での様子をそのまま示しておきます。

[root@ribbon tensorflow]# cd
[root@ribbon ~]# python
Python 2.7.11 (default, Aug  9 2016, 15:45:42)
[GCC 5.3.1 20160406 (Red Hat 5.3.1-6)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import tensorflow
I tensorflow/stream_executor/dso_loader.cc:111] successfully opened CUDA library libcublas.so locally
I tensorflow/stream_executor/dso_loader.cc:105] Couldn't open CUDA library libcudnn.so. LD_LIBRARY_PATH:
I tensorflow/stream_executor/cuda/cuda_dnn.cc:3304] Unable to load cuDNN DSO
I tensorflow/stream_executor/dso_loader.cc:111] successfully opened CUDA library libcufft.so locally
I tensorflow/stream_executor/dso_loader.cc:111] successfully opened CUDA library libcuda.so.1 locally
I tensorflow/stream_executor/dso_loader.cc:111] successfully opened CUDA library libcurand.so locally
>>>

あ、パスを通すのを忘れていました。.bash_profileに以下のように書いておきましょう。

export CUDA_HOME=/usr/local/cuda
export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:$CUDA_HOME/lib64"
export PATH="$CUDA_HOME/bin:$PATH"

これでOKなはずです。

[root@ribbon ~]# . .bash_profile
[root@ribbon ~]# python
Python 2.7.11 (default, Aug  9 2016, 15:45:42)
[GCC 5.3.1 20160406 (Red Hat 5.3.1-6)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import tensorflow
I tensorflow/stream_executor/dso_loader.cc:111] successfully opened CUDA library libcublas.so locally
I tensorflow/stream_executor/dso_loader.cc:111] successfully opened CUDA library libcudnn.so locally
I tensorflow/stream_executor/dso_loader.cc:111] successfully opened CUDA library libcufft.so locally
I tensorflow/stream_executor/dso_loader.cc:111] successfully opened CUDA library libcuda.so.1 locally
I tensorflow/stream_executor/dso_loader.cc:111] successfully opened CUDA library libcurand.so locally
>>>
2
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
3