Help us understand the problem. What is going on with this article?

コピペでできる(?) GPGPU環境構築 @Ubuntu Server (後編)

Ubuntu 18.04 Server に GPGPU 学習環境を構築しよう (python / tensorflow 編)

  • author : 鈴木 大智 (user名 : sudachi)
    • pc name : AIserver
  • 最終更新 : 2019/09/20

1. 前編でインストールしたパッケージの確認をする。

1. nvidia driver

  • $ nvidia-smi と実行し、
NVIDIA-SMI 430.40   Driver Version: 430.40      CUDA Version: 10.1

のように表示されたら OK。

2. CUDA

  • $ nvcc -V と実行
Command 'nvcc' not found ...

と表示された場合は PATH を通す必要がある。

CUDA: PATH の通し方

  • .bashrc を編集。
    • ミスったときに戻せるようにバックアップをする (心配な方)。
    • コピー先のディレクトリの作成
      • $ mkdir ~/backup
      • $ ls ~/
backup
  • 作成したディレクトリに .bashrc をコピーする。
    • $ cp ~/.bashrc ~/backup/
    • $ la !$
la /home/jupyter/backup
.bashrc

と表示されたらバックアップは完了。

  • PATHを通す。

    • エディタはお好みで。
    • 下記の2行を一番最後に追記する。
    • $ emacs ~/.bashrc
export PATH="/usr/local/cuda/bin:$PATH"
export LD_LIBRARY_PATH="/usr/local/cudalib64:$LD_LIBRARY_PATH"
  • 編集内容の確認

    • $ cat ~/.bashrc
    • 一番最後に先ほど加えた下記の2行が入っていればよい。
  • 変更内容の適用

    • 次のどちらかを実行
      • .bashrc の再読み込み : $ source ~/.bashrc
      • SHELL の再起動 : $ exec $SHELL -l
  • CUDAのパッケージ確認

    • $ nvcc -V
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2018 NVIDIA Corporation
Built on Sat_Aug_25_21:08:01_CDT_2018
Cuda compilation tools, release 10.0, V10.0.130

のように表示されれば OK。

3. cudnn

  • パッケージ確認
    • $ cat /usr/include/cudnn.h | grep CUDNN_MAJOR - -A 2
#define CUDNN_MAJOR 7
#define CUDNN_MINOR 6
#define CUDNN_PATCHLEVEL 2
--
#define CUDNN_VERSION (CUDNN_MAJOR * 1000 + CUDNN_MINOR * 100 + CUDNN_PATCHLEVEL)

#include "driver_types.h"

のように表示されれば OK。

  • もしここまででうまくいかない部分などあれば、ぜひ前編も参照していただけると嬉しいです。

2. anaconda 環境を作る

anaconda の install

  • インストーラを web からダウンロードする。

    • ubuntu Server をお使いの場合は、download ディレクトリがないかもしれないので作成しておくと便利かもしれません。
      • $ mkdir downloads
      • $ cd downloads
    • $ wget https://repo.anaconda.com/archive/Anaconda3-2019.07-Linux-x86_64.sh
      • 注意 上記は 2019/08/19 時点での最新版です。
      • ~/downloads$ ls

Anaconda3-2019.07-Linux-x86_64.sh

  • インストールの実行

    • $ bash Anaconda3-2019.07-Linux-x86_64.sh
    • 確認事項をよく見ながらインストールを実行する。

      • インストールを実行していいですか? (良いなら Enter )
Welcome to Anaconda3 2019.07

In order to continue the installation process, please review the license
agreement.
Please, press ENTER to continue
>>> 
  • ライセンスの文章が出てくるので space キーで読んでいく。

    • 同意しますか? (同意する場合は yes と入力し Enter )
...
Do you accept the license terms? [yes|no]
[no] >>> yes
  • anaconda を install する場所を聞かれるので自分のユーザのディレクトリ下であることを確認し良いなら Enter
Anaconda3 will now be installed into this location:
/home/sudachi/anaconda3

- Press ENTER to confirm the location
- Press CTRL-C to abort the installation
- Or specify a different location below

[/home/sudachi/anaconda3] >>>  
  • パッケージが色々出てくる
    • conda init (anacondaの初期化) をしてしまっていいですか と聞かれるので、いい場合は yes を入力し Enter
Do you wish the installer to initialize Anaconda3
by running conda init? [yes|no]
[no] >>> yes
  • プロンプトが帰ってきたらインストールは終了。

    • お疲れさまでした。
  • 一応、インストール後、動くか確認してみる。

    • $ conda -V
conda: command not found
  • このように文句を言われた場合は、.bashrc を再読み込みする。

    • $ source ~/.bashrc あるいは
    • $ exec $SHELL -l を実行。
    • プロンプトの頭に (base) sudachi@AIserver:~$ のように 仮想環境が activate されていれば成功です。

      • $ conda -V

        conda 4.7.10

  • conda init の 際に no を選択した方は PATH を通す必要があるかと思われます。

    • .bashrc を編集する。
    • 心配な場合はバックアップを。
      • $ cp ~/.bashrc ~/backup/
    • $ emacs ~/.bashrc
export PATH="/home/[user_name]/anaconda3/bin:$PATH"
  • [user_name] の部分は自分のユーザ名に置き換えてください。

仮想環境を作成する。

  • anaconda の仮想環境は $ conda create -n [仮想環境名] python で作ることができます。

  • 注意!! ただし、ここでは、Python のバージョンを 3.6 に指定する必要があります

    • なので以下のように指定して作成してください。
      • $ conda create -n 環境名 python=3.6
    • (例) $ conda create -n tfgpu python=3.6
    • 作成される場所
      • environment location: /home/[user_name]/anaconda3/envs/tfgpu
    • こんなパッケージが install されますよ。 続けていいですか? (いい場合は y を入力し Enter)
The following NEW packages will be INSTALLED:
...
Proceed ([y]/n)? y
  • 完了
Preparing transaction: done
Verifying transaction: done
Executing transaction: done
#
# To activate this environment, use
#
#     $ conda activate tfgpu
#
# To deactivate an active environment, use
#
#     $ conda deactivate
  • 仮想環境を activate してみる。

    • $ conda activate tfgpu
    • プロンプトが以下のように変わったら成功
      • (tfgpu) user_name@PC:~$

tensorflow-gpu を install

  • anadonda に必要なパッケージをinstallする。

  • せっかくなので、さっき作成した仮想環境で行うといいと思います。

  • 必要なパッケージは以下の通り

    • tensorflow-gpu(=1.14.0)
      • td-gpu は pip で入れて大丈夫 (なはず。)
    • tensorflow
      • $ pip install tensorflow-gpu
      • conda install で入れてもそれはそれでうまくいったという話もあります。めげずに頑張ってください。
  • tensorflow で GPU使えてるか確認。

    • $ python
from tensorflow.python.client import device_lib
device_lib.list_local_devices()
  • device_type: "GPU" という表示があればひとまず成功です。

    • GPGPU 学習の初回では keras とかがないよ。と言われることもあるので、その場合は pip install してあげてください。
  • 以上で基本的な環境構築は終了です。

  • お疲れさまでした。よい GPGPU life を。

  • 前編はこちら

番外編

  • 自分でプログラムを書くときの注意:

    • GPGPU 学習のプログラムを作成した際は、tensorflow の session の設定に以下のいずれかを指定してください。
      • 一応、私の環境では、3種類のいずれでもうまくいくことがわかっています。
  • 前編はこちら

  • 設定 1

config = tf.ConfigProto()
config.gpu_options.allow_growth=True
sess = tf.Session(config=config)
  • 設定 2
session_config = tf.ConfigProto(gpu_options=tf.GPUOptions(allow_growth=True))
tf.Session(config=session_config)
  • 設定 3
from keras.backend import tensorflow_backend
config = tf.ConfigProto(gpu_options=tf.GPUOptions(allow_growth=True))
session = tf.Session(config=config)
tensorflow_backend.set_session(session)
Why do not you register as a user and use Qiita more conveniently?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away