- 追加された行はこの色です。
- 削除された行はこの色です。
*はじめに [#r8261ce7]
Mac Pro (2010 Mid)にGeForce GTX 1080を積んで、TensorFlowを動かすまでのメモです。
macOSではGeForce GTX 1080がまだサポートされていないので、UbuntuをインストールしてUbuntu上で動かします。
*用意したもの [#k794b74f]
-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メモリーを作成する [#z697fa7f]
次のページを参考にしました。
-[[OS X El CapitanとUbuntu 16.04 LTSのデュアルブート環境を構築する:http://ottan.xyz/el-capitan-ubuntu-dual-boot-4020/]]
+Ubuntu 16.04 LTSをダウンロードします。
+ディスクユーティリティを使って、USBメモリーを、MS-DOS (FAT)、GUIDパーティションで消去します。
+diskutilコマンドで、USBメモリーのデバイスを調べます。
#geshi(sh){{
$ diskutil list
}}
+調べたデバイスをアンマウントします。(これはデバイスが /dev/disk2 の時の例です。)
#geshi(sh){{
$ diskutil unmountDisk /dev/disk2
}}
+ダウンロードしたUbuntuのISOイメージをコピーします。
#geshi(sh){{
$ sudo dd if=ubuntu-16.04-desktop-amd64.iso of=/dev/rdisk2 bs=1m
}}
*Ubuntu用のHDDを用意する [#c5af21ac]
+macOSをシャットダウンし、HDDを増設します。
+macOSを起動し、ディスクユーティリティで増設したHDDを、MS-DOS (FAT)、GUIDパーティションで消去します。
スワップ領域を作りたい場合は2パーティションにすればいいと思いますが、今回のMac Proは32GBのメモリーを積んでいるので、スワップ領域はなしにしました。
*ブート・マネージャーを準備する [#bd50f679]
BootCampはUbuntuをサポートしていません。
そこで、rEFIndというブート・マネージャーを使います。
+rEFIndをダウンロードし、展開する。
+macOSをシャットダウンし、Command+Rを押しながら起動する。
+リカバリー・モードで起動したら、ターミナルを起動し、rEFIndを展開したフォルダーに移動する。
+rEFIndをインストールする。
#geshi(sh){{
# ./refind-install
}}
+macOSを再起動する。
*Ubuntuをインストールする [#kaf52356]
+Ubuntuインストール用のUSBメモリーを接続する。
+macOSをシャットダウンし、Optionを押しながら起動する。
+「EFI Boot」を選択する。
+「Try Ubuntu without installing」を選択し、USBメモリーからUbuntuを起動する。
+起動したUbuntuのデスクトップにある「Install Ubuntu 16.04 LTS」をダブルクリックする。
*Ubuntuをアップデートする [#p5669200]
最新版にアップデートします。
+「システム環境設定」の「ソフトウェアとアップグレード」の「アップデート」にあるUbuntuの新バージョンの通知を「全ての新バージョン」に扁壺する。
+ アップデートする
#geshi(sh){{
$ sudo apt update
$ sudo do-release-upgrade
$ sudo shutdown -r
$ sudo do-release-upgrade -d
$ sudo shutdown -r
}}
*UbuntuにSSHをインストールする [#o92c5b93]
リモートで作業できるように、sshdをインストールします。
+sshをインストールする。
#geshi(sh){{
$ sudo apt-get install openssh-server
}}
+sshが自動で起動するように設定する。
#geshi(sh){{
$ sudo systemctl enable ssh.service
}}
+ Ubuntuを再起動してリモートからsshでログインできるか確認する。
セキュリティのことを考えると、インターネットから見える環境では、rootでのログインはできないようにしておくべきです。
*UbuntuにNvidiaのドライバーをインストールする [#d92792ae]
次のページを参考にしました。
-[[Ubuntu14.04 LTS にGTX1080 をセットアップしたメモ:http://qiita.com/salty-vanilla/items/8ff76cd634f0640b77c7]]
+インストールの準備をする。
#geshi(sh){{
$ sudo add-apt-repository ppa:xorg-edgers/ppa
$ sudo add-apt-repository ppa:graphics-drivers/ppa
$ sudo apt-get update
}}
+最新版のドライバーを調べる。
#geshi(sh){{
$ sudo apt-cache search 'nvidia-[0-9]+$'
}}
+最新版のドライバーをインストールする。
#geshi(sh){{
$ 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を装着する [#nd42f38d]
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)でも使うことができます。
+Ubuntuをシャットダウンする。
+Mac Proから現在のビデオカードを外す
+Mini PCIe 6 pin to PCIe 6 pinケーブルを空いているソケットに接続する。
+2本のPCIe 6 pinケーブルをPCIe 6 pin x 2 to PCIe 8 pinケーブルに接続する。
+PICe 8 pinケーブルをASUS TURBO-GTX1080-8Gに接続する。
+ASUS TURBO-GTX1080-8GをMac Proに装着する。
+Ubuntuを起動し、画面が表示されることを確認する
*UbuntuにCudaをインストールする [#k3a0713c]
次のページを参考にしました。
-[[Ubuntu 16.04へのCUDAインストール方法:http://qiita.com/yukoba/items/3692f1cb677b2383c983]]
+Ubuntuを起動する。
+Cudaをダウンロードする
#geshi(sh){{
$ wget https://developer.nvidia.com/compute/cuda/8.0/prod/local_installers/cuda-repo-ubuntu1604-8-0-local_8.0.44-1_amd64-deb
}}
+Cudaをインストールする
#geshi(sh){{
$ sudo dpkg -i cuda-repo-ubuntu1604-8-0-local_8.0.44-1_amd64-deb
$ sudo apt-get update
$ sudo apt-get install cuda
}}
+.bashrcに以下の2行を追加する
+.bashrcに以下の2行を追加する。
#geshi(txt){{
export PATH="/usr/local/cuda-8.0/bin:$PATH"
export LD_LIBRARY_PATH="/usr/local/cuda-8.0/lib64:$LD_LIBRARY_PATH"
}}
+Ubuntuを再起動する。
#geshi(sh){{
$ sudo reboot
}}
+ログインして、動作確認する。
#geshi(sh){{
$ nvidia-smi
}}
現在、ここまで。
まだTensorFlowは動いていません。