11
7

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

GTX 1070を使用してtensorflowを動かす

Last updated at Posted at 2016-08-24

GTX 1070を使用してtensorflowを動かす

GTX1070はまだ安定版cudaには対応されていないため、cuda8を使用した場合はtensorflowについてパッケージでのインストールができない。ビルドしてインストールする必要がある。その手順が大変ややこしいためメモしておく。
早くパッケージでインストールできるようになったらいいな。

ドライバのインストール

現状

下記のようにカードの種類も把握されていない。

lspci | grep -i nvidia
結果
01:00.0 VGA compatible controller: NVIDIA Corporation Device 1b81 (rev a1)
01:00.1 Audio device: NVIDIA Corporation Device 10f0 (rev a1)

把握させる

sudo update-pciids
lspci | grep -i nvidia
結果
01:00.0 VGA compatible controller: NVIDIA Corporation GP104 [GeForce GTX 1070] (rev a1)
01:00.1 Audio device: NVIDIA Corporation GP104 High Definition Audio Controller (rev a1)

OSにデフォルトで入っているドライバを読み込ませないようにする

下記コマンドで調査した所nouveauが有効になっている。

lsmod | grep nouveau

下記のようにファイル類を編集し読み込まないようにする。

/etc/modprobe.d/blacklist-nouveau.conf
blacklist nouveau
blacklist lbm-nouveau
options nouveau modeset=0
alias nouveau off
alias lbm-nouveau off
/etc/modprobe.d/nouveau-kms.conf
options nouveau modeset=0

編集後、下記コマンド

sudo update-initramfs -u
reboot

ドライバのインストール

GUIの停止
sudo service lightdm stop
インストール
sudo add-apt-repository ppa:graphics-drivers/ppa
sudo apt-get update
sudo apt-get install nvidia-367
sudo apt-get install mesa-common-dev
sudo apt-get install freeglut3-dev
再起動後、ドライバインストールできたか確認
sudo reboot
sudo nvidia-smi

cudaのインストール

deb形式でインストールする
https://developer.nvidia.com/cuda-release-candidate-download
からダウンロード

sudo dpkg -i cuda-repo-ubuntu1604-8-0-rc_8.0.27-1_amd64.deb
sudo apt-get update
sudo apt-get install cuda

sudo dpkg -i cuda-misc-headers-8-0_8.0.27.1-1_amd64.deb

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

.bashrc
export PATH=/usr/local/cuda-8.0/bin${PATH:+:${PATH}}
export LD_LIBRARY_PATH=/usr/local/cuda-8.0/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
export CUDA_HOME=/usr/local/cuda

ドライバ再インストール

cudaインストール時に最新ドライバが消されて古いのが入るのでもう一度ドライバインストール

reboot
sudo service lightdm stop
sudo apt-get install libcuda1-367 nvidia-367 nvidia-367-dev nvidia-opencl-icd-367 --reinstall
reboot

nvidaやcudaコマンドの確認

sudo nvidia-smi
nvcc -V

サンプルの実行

サンプルのビルド
cd /usr/local/cuda-8.0/samples
sudo make

上記ではコンパイルエラーになると思うので
http://stackoverflow.com/questions/30675132/cuda-7-0-error-while-compiling-samples/31202170を参考にコードを修正

If you notice, there is -L/usr/lib/"nvidia-346". In my case, I have installed nvidia-349. What worked for me is to edit NVIDIA_CUDA-7.0_Samples/3_Imaging/cudaDecodeGL/findgllib.mk and change UBUNTU_PKG_NAME = "nvidia-346" to nvidia-349.

上記の通り修正してビルドすると成功する。

サンプル実行
cd /usr/local/cuda-8.0/samples/bin/x86_64/linux/release
sudo ./deviceQuery
sudo ./bandwidthTest

tensorflowのインストール

必要ソフト類のインストール

pipインストール

sudo apt-get install python-pip python-dev
sudo pip install --upgrade pip

jdkインストール

sudo apt-get install openjdk-8-jdk

bazelのインストール

sudo apt-get install pkg-config zip g++ zlib1g-dev unzip
sudo wget https://github.com/bazelbuild/bazel/releases/download/0.3.1/bazel-0.3.1-installer-linux-x86_64.sh
sudo chmod +x  bazel-0.3.1-installer-linux-x86_64.sh
sudo ./bazel-0.3.1-installer-linux-x86_64.sh --user

.bashrcに下記記載

.bashrc
export PATH="$PATH:$HOME/bin"

tensorflowのインストール

必要ソフト類のインストール
sudo apt-get install python-numpy swig python-dev python-wheel libcurl3-dev

tensorflowのビルド

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

そのままではビルドエラーになるので少し修正

cp third_party/gpus/crosstool/CROSSTOOL /tmp/
vi third_party/gpus/crosstool/CROSSTOOL
@@ -52,6 +52,8 @@ toolchain {
   cxx_flag: "-std=c++11"
   linker_flag: "-lstdc++"
   linker_flag: "-B/usr/bin/"
+  linker_flag: "-lrt"
+  linker_flag: "-lm"

ビルド+インストール

bazel build -c opt --config=cuda //tensorflow/cc:tutorials_example_trainer
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
sudo pip install /tmp/tensorflow_pkg/tensorflow-0.10.0rc0-py2-none-any.whl

後はサンプルソースなどを流してGPUが使用されていたら成功!!!

おつかれさまでした。

11
7
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
11
7

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?