PyTorchの環境を構築する(Mac mini + eGPU)
動作環境
Mac mini (late 2012) High Sierra
NVIDIA GTX 1080 Breakaway Box
Cuda/Cuda Toolkit 9.0インストール
Cudaドライバをインストール
318.10.10.10.20.109
Cuda Toolkit 9.0をインストール
※この時Cudaドライバはインストールしない。
https://developer.nvidia.com/cuda-90-download-archive
<参考>eGPU Support
https://egpu.io/forums/mac-setup/wip-nvidia-egpu-support-for-high-sierra/
Minicondaのインストール
https://conda.io/miniconda.html
bash ./Miniconda3-latest-MacOSX-x86_64.sh
<参考>
https://qiita.com/komeda-shinji/items/470c8ca3b2273be1f825
デフォルトパスにminicondaをインストール。
conda,pipでPytorchで必要となるものをインストール
/Users/<usename>/miniconda3/bin/conda create -n pyt python=3.6
source /Users/<usename>/miniconda3/bin/activate pyt
conda install pandas jupyter matplotlib
pip install flask smart_getenv gunicorn
conda install -c anaconda cython
export CMAKE_PREFIX_PATH=/Users/<usename>/PyTorch
conda install numpy pyyaml mkl mkl-include setuptools cmake cffi typing
git clone --recursive https://github.com/pytorch/pytorch
cd pytorch
pip install torchvision ※condaではインストールに失敗したのでpipでインストール
※pipは既にインストールしていたので、インストールについては省略します。
<参考>
PyTorchで学ぶニューラルネットワークと深層学習
Pytorchのインストール
PytorchはMacでNVIDIAのGPUを使う場合は、ソースからインストールする必要あり。
MACOSX_DEPLOYMENT_TARGET=10.13 CC=clang CXX=clang++ python setup.py install
Cudaサンプル(deviceQuery)の実行
Cudaサンプルフォルダへ移動
cd 1_Utilities
cd deviceQuery
./deviceQuery
Result=Passとなっていれば、Cudaを認識している。
※サンプルを実行する際に以下が必要
sudo xcode-select --switch /Applications/Xcode.app/Contents/Developer
Jupyter notebookを起動する
jupyter notebook --port=8888 --ip=“localhost” --notebook-dir=$HOME/notebooks
以下のスクリプトを実行し、
import numpy as np
import torcht = torch.cuda.is_available()
print(t)
Trueとなっていれば、Cudaが利用可能。
Cudaを利用できることを確認。
ハマったところ
・PytorchはMacでCudaを使いたかったらソースからインストールする必要あり。
・複数のToolKitをインストールしたため、Cudaドライバーとバージョンが不一致。Pytorchのビルドにも影響。
・Cudaドライバが使えるClangのバージョンが決まっているため、最新のClangが使えない。
Pytorchのビルド自体に時間がかかったこともあり、計3時間×3日程度かかった。
サンプルでMNISTを動作させて、正常に動作していることを確認。長かった・・・。