LoginSignup
2
5

More than 3 years have passed since last update.

UbuntuにTensorFlow 2.X 系のGPU環境を作ろう

Last updated at Posted at 2020-11-27

実行環境

ubuntu 20.04.1 LTS (日本語Ubuntu最新版)
Condaは使わない。
確実性を重視。
バージョン管理はpyenv
機体要件
CPU Ryzen7 5800X
GPU RTX3070
詳しくは
https://qiita.com/YU_GENE/items/09d7ffa85ad8e37dc063

インストールするものを考える

TensorFlowのGPU環境を作るのは大変らしい。
Python,cuDNN,CUDAのバージョンが違うと動かない可能性があるからだ。
まず、Tensorflowのページに行って、ubuntuのTensorFlowのGPUバージョンの動作確認がされている最新版を確認しにいく。
S__3702805.jpg
2020/11/27現在、Ubuntu版TensorFlowは上のものが一番確実らしい。

Pythonのバージョンを自在に操る

ubuntuインストール段階でのpythonのバージョンは3.8系だったが、pythonバージョンは3.7までが確認済みのようだから、pyenvというものを使って、自由自在にpythonのバージョンを管理できるようにする。

pyenvのインストール

pyenvのインストール
$ git clone git://github.com/yyuu/pyenv.git ~/.pyenv
$ brew install pyenv
$ echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bash_profile
$ echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bash_profile
$ echo 'eval "$(pyenv init -)"' >> ~/.bash_profile

Ubuntuの場合、以下のコードを実行しないとpythonをインストールしてこれないので注意

Ubuntuの場合は以下も実行
$sudo apt-get install -y build-essential libssl-dev zlib1g-dev libbz2-dev \
libreadline-dev libsqlite3-dev wget curl llvm libncurses5-dev libncursesw5-dev \
xz-utils tk-dev libffi-dev liblzma-dev python-openssl git
$sudo apt install libedit-d

pythonの設定

今回は3.7系まで保証されているということなので、python3.7.9を入れる。
インストールできるもののリストは

$pyenv install --list | less 

で確認できる。

インストールの手順
$pyenv install 3.7.9
$pyenv versions 
$pyenv shell 3.7.9

でインストール完了。試しにpythonを起動すると、きっとpython3.7.9が起動するはず。
インストール、確認、起動設定の順である。これでバージョン問題に悩まされることは一生ない。
アツいぜ。

python仮想環境の構築

PC環境を破壊しないために、venvというものを使って仮想環境を作る。
ここでいう仮想環境とはVirtualBoxとかがPC自体の仮想環境だとすれば、Python言語だけの仮想環境みたいなものである。今回はtfという適当なディレクトリ下に仮想環境設定をする。pyenvでpythonを3.7.1にした状態で

$mkdir tf
$cd tf
$python -m venv .venv

これで設定は完了。仮想環境に入るにはこの状態で、

$source ~/tf/.venv/bin/activate

これで仮想環境に入れる。
左側に.venvと出れば成功。このコードは適当にエイリアスに保存しておくと楽。

NVIDIAドライバのインストール

ちゃちゃっとインストール
他の方も記事にされているので、詳細は省略。
デフォルトグラフィックドライバを停止して、オートインストールするだけ!(やり方は下リンク)
https://qiita.com/sho8e69/items/66c1662c49ac89a024be

sudo ubuntu-drivers autoinstall

nvidia-smiを実行するとRTX3070の文字が。美しい。

CUDAのインストール

さて、CUDAの確認済みバージョンは10.1だったな。
CUDA10.1はaptからそのまま入手できる。簡単。最新版が欲しかったらnvidiaのサイトに行くべきだが、今回は丁度10.1が欲しかったのでそのまま以下を実行。

$sudo apt install nvidia-cuda-toolkit

nvcc -Vコマンドで確認できる。

TensorFlowのインストール

さて、TensorFlowの確認済みバージョンはTensorFlow2.1.0だったな。
仮想環境に入っている状態で、(pipは更新しといてね)

(.venv)$pip install tensorflow==2.1.0

で仮想環境のみにtensorflow2.1.0が入る。
pip listコマンドで入っているのが確認できる。

いいねぇ。

cuDNNのインストール

CUDAと名前似てるけど、一応別物。
めんどいけど、以下で会員登録して
https://developer.nvidia.com/rdp/cudnn-archive
「CUDA10.1に対応したCuDNN7.6系」を探そう。
cuDNN Runtime Library for Ubuntu18.04 (Deb)
cuDNN Developer Library for Ubuntu18.04 (Deb)
をダウンロードして、
それぞれdpkg iコマンドで展開するだけ。簡単。

sudo dpkg -i libcudnn7_7.6.5.32-1+cuda10.1_amd64.deb 
sudo dpkg -i libcudnn7-dev_7.6.5.32-1+cuda10.1_amd64.deb 

できたかな?

pythonで以下を実行してみよう。

from tensorflow.python.client import device_lib
device_lib.list_local_devices()

GPUの文言がちらほら。
一番下にはRTX3070の文字があるので正常にできたっぽい。

まとめ

これで機械学習のために自作PCしたとか自慢できるね。
決して流行りのオンラインゲームがしたかったとかじゃないよ。
ほんとにね。(嘘)

2
5
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
5