GeForce GTX 1080を搭載したMac ProでTensorFlowを使う

2017-02-06 (月) 12:36:03 (49d) | Topic path: Top / 機械学習 / GeForce GTX 1080を搭載したMac ProでTensorFlowを使う

はじめに

Mac Pro (2010 Mid)にGeForce GTX 1080を積んで、TensorFlowを動かすまでのメモです。

macOSではGeForce GTX 1080がまだサポートされていないので、UbuntuをインストールしてUbuntu上で動かします。

用意したもの

  • ASUS TURBO-GTX1080-8G
  • Mini PCIe 6 pin to PCIe 6 pinケーブル
  • PCIe 6 pin x 2 to PCIe 8 pinケーブル
  • 2TB 3.5inch SATA HDD
  • 16GB USBメモリー

HDDの容量はもっと小さくても構いません。 USBメモリーの容量は16GB以上必要です。

Ubuntuインストール用USBメモリーを作成する

次のページを参考にしました。

  1. Ubuntu 16.04 LTSをダウンロードします。
  2. ディスクユーティリティを使って、USBメモリーを、MS-DOS (FAT)、GUIDパーティションで消去します。
  3. diskutilコマンドで、USBメモリーのデバイスを調べます。
    $ diskutil list
  4. 調べたデバイスをアンマウントします。(これはデバイスが /dev/disk2 の時の例です。)
    $ diskutil unmountDisk /dev/disk2
  5. ダウンロードしたUbuntuのISOイメージをコピーします。
    $ sudo dd if=ubuntu-16.04-desktop-amd64.iso of=/dev/rdisk2 bs=1m

Ubuntu用のHDDを用意する

  1. macOSをシャットダウンし、HDDを増設します。
  2. macOSを起動し、ディスクユーティリティで増設したHDDを、MS-DOS (FAT)、GUIDパーティションで消去します。

スワップ領域を作りたい場合は2パーティションにすればいいと思いますが、今回のMac Proは32GBのメモリーを積んでいるので、スワップ領域はなしにしました。

ブート・マネージャーを準備する

BootCampはUbuntuをサポートしていません。 そこで、rEFIndというブート・マネージャーを使います。

  1. rEFIndをダウンロードし、展開する。
  2. macOSをシャットダウンし、Command+Rを押しながら起動する。
  3. リカバリー・モードで起動したら、ターミナルを起動し、rEFIndを展開したフォルダーに移動する。
  4. rEFIndをインストールする。
    # ./refind-install
  5. macOSを再起動する。

Ubuntuをインストールする

  1. Ubuntuインストール用のUSBメモリーを接続する。
  2. macOSをシャットダウンし、Optionを押しながら起動する。
  3. 「EFI Boot」を選択する。
  4. 「Try Ubuntu without installing」を選択し、USBメモリーからUbuntuを起動する。
  5. 起動したUbuntuのデスクトップにある「Install Ubuntu 16.04 LTS」をダブルクリックする。

Ubuntuをアップデートする

最新版にアップデートします。

  1. 「システム環境設定」の「ソフトウェアとアップグレード」の「アップデート」にあるUbuntuの新バージョンの通知を「全ての新バージョン」に扁壺する。
  2. アップデートする
    $ sudo apt update
    $ sudo do-release-upgrade
    $ sudo shutdown -r
    $ sudo do-release-upgrade -d
    $ sudo shutdown -r

UbuntuにSSHをインストールする

リモートで作業できるように、sshdをインストールします。

  1. sshをインストールする。
    $ sudo apt-get install openssh-server
  2. sshが自動で起動するように設定する。
    $ sudo systemctl enable ssh.service
  3. Ubuntuを再起動してリモートからsshでログインできるか確認する。

セキュリティのことを考えると、インターネットから見える環境では、rootでのログインはできないようにしておくべきです。

UbuntuにNvidiaのドライバーをインストールする

次のページを参考にしました。

  1. インストールの準備をする。
    $ sudo add-apt-repository ppa:xorg-edgers/ppa
    $ sudo add-apt-repository ppa:graphics-drivers/ppa
    $ sudo apt-get update
  2. 最新版のドライバーを調べる。
    $ sudo apt-cache search 'nvidia-[0-9]+$'
  3. 最新版のドライバーをインストールする。
    $ sudo apt-get install nvidia-378
    $ sudo apt-get install mesa-common-dev
    $ sudo apt-get install freeglut3-dev

このときは、最新版が378でした。

Mac ProにASUS TURBO-GTX1080-8Gを装着する

Mac Pro (Mid 2010) には、GPU用の電源として、Mini PCIe 6pinのソケットが2つ付いています。 PCIe 6 pinケーブルは75 Wまでしか供給できません。

そこで、PCIe 6 pinケーブル2本をまとめてPCIe 8 pinに変換してくれるケーブルを使います。 PCIe 8 pinは150Wまで供給できます。

PCIeソケットから75W共有できるので、Mac Pro (Mid 2010)は全部で225Wまで供給できます。

GeForce GTX 1080を搭載したビデオカードはたくさん出ていますが、その多くがPCIe 8pin x 2やPCIe 8 pin + PCIe 6 pinだったりします。

ASUS TURBO-GTX1080-8Gは、最大消費電力が225Wで、かつ、補助電源がPCIe 8 pin 1本のみなので、Mac Pro (Mid 2010)でも使うことができます。

  1. Ubuntuをシャットダウンする。
  2. Mac Proから現在のビデオカードを外す
  3. Mini PCIe 6 pin to PCIe 6 pinケーブルを空いているソケットに接続する。
  4. 2本のPCIe 6 pinケーブルをPCIe 6 pin x 2 to PCIe 8 pinケーブルに接続する。
  5. PICe 8 pinケーブルをASUS TURBO-GTX1080-8Gに接続する。
  6. ASUS TURBO-GTX1080-8GをMac Proに装着する。
  7. Ubuntuを起動し、画面が表示されることを確認する

UbuntuにCuda 8.0をインストールする

次のページを参考にしました。

  1. Ubuntuを起動する。
  2. Cudaをダウンロードする(Linux, x86_64, Ubuntu, 16.04, dev(local)を選択して、Downloadボタンからリンクを取得します)。
    $ wget https://developer.nvidia.com/compute/cuda/8.0/prod/local_installers/cuda-repo-ubuntu1604-8-0-local_8.0.44-1_amd64-deb
  3. Cudaをインストールする。
    $ sudo dpkg -i cuda-repo-ubuntu1604-8-0-local_8.0.44-1_amd64-deb
    $ sudo apt-get update
    $ sudo apt-get install cuda
  4. .bashrcに以下の2行を追加する。
    export PATH="/usr/local/cuda-8.0/bin:$PATH"
    export LD_LIBRARY_PATH="/usr/local/cuda-8.0/lib64:$LD_LIBRARY_PATH"
  5. Ubuntuを再起動する。
    $ sudo reboot
  6. ログインして、動作確認する。
    $ nvidia-smi

CuDNN 5.1をインストールする

  1. NvidiaのAccelerated Computing Developer Programにメンバー登録する。
  2. cuDNN v5.1 library for Linuxをダウンロードする。
  3. ダウンロードしたファイルを展開してインストールする。
    $ tar zxvf cudnn-8.0-linux-x64-v5.1.tgz
    $ sudo cp -a cuda/lib64/* /usr/local/lib/
    $ sudo cp -a cuda/include/* /usr/local/include/
    $ sudo ldconfig
    $ rm -R -f cuda cudnn-8.0-linux-x64-v5.1.tgz
  4. LightDMを止めるために、/etc/default/grub の12行目を以下のように変更する。
    GRUB_CMDLINE_LINUX="systemd.unit=multi-user.target"
  5. 設定を反映させて、Ubuntuを再起動する
    $ sudo update-grub
    $ sudo reboot

TensorFlow r0.12をインストールする

次のページを参考にしました。

  1. Pip3をインストールする。
    $ sudo apt-get install python3-pip python3-dev
    $ pip3 install tensorflow-gpu
  2. Virtualenvをインストールする。
    $ sudo apt-get install python3-pip python3-dev python3-virtualenv
    $ virtualenv --system-site-packages ~/tensorflow
  3. Virtualenvをアクティベートする。
    $ source ~/tensorflow/bin/activate
  4. TensorFlowの動作を確認する。
    (tensorflow) $ python3
    >>> import tensorflow as tf
    >>> hello = tf.constant('Hello, TensorFlow!')
    >>> sess = tf.Session()
    >>> print(sess.run(hello))
    >>> a = tf.constant(10)
    >>> b = tf.constant(32)
    >>> print(sess.run(a + b))
トップ   編集 凍結解除 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS