Apple Silicon Mac向けGPU利用のTensorFlow, PyTorch設定

投稿者: | 2024年8月21日

Apple Silicon向け TensorFlow および PyTorch 設定ガイド

前書き

Apple Silicon(M1/M2/M3)向けにTensorFlowおよびPyTorchを適切に設定する方法を提供したい。ネット上の情報が古いので、設定に時間がかかった。本稿は2024年8月20日現在において有効であった方法を提示している。特に、仮想環境の作成にはvenvではなくpyenv-virtualenvを使用し、Pythonバージョンは3.11までを推奨する。理由は現在3.12の時「pip install tensorflow-metal」がエラーになるからである。ただしPyTorchではPython 3.12をサポートしている。(現在3.12.5)

1. 環境準備

最初に、Homebrewを使用して必要な依存関係をインストールする。Homebrewは、macOS上でパッケージ管理を行うためのツールである。

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
brew install pyenv pyenv-virtualenv

次に、pyenvpyenv-virtualenvをシェルに設定する。.zshrcファイルに以下の内容を追加する。

export PATH="/opt/homebrew/bin:$PATH"
if command -v pyenv 1>/dev/null 2>&1; then
    eval "$(pyenv init --path)"
    eval "$(pyenv init -)"
    eval "$(pyenv virtualenv-init -)"
fi

設定を反映するため、シェルを再起動または以下のコマンドで再読み込みを行う。

source ~/.zshrc

2. Pythonのインストール

Apple Silicon向けのTensorFlowは、Python 3.11までをサポートしている。まず、pyenvを使用してPython 3.11.9をインストールする。

pyenv install 3.11.9
pyenv virtualenv 3.11.9 tf-metal-env
pyenv activate tf-metal-env

ちなみに作成した仮想環境の一覧取得、削除には

pyenv virtualenvs
pyenv virtualenv-delete [仮想環境名]

を使用すること。

3. TensorFlowのインストール

TensorFlowをインストールする際には、Apple Silicon向けのtensorflow-macosとMetal APIを利用したtensorflow-metalをインストールする。

pip install tensorflow-macos
pip install tensorflow-metal

インストール後、GPUが正しく認識されているかを確認するため、以下のPythonコードを実行する。

import tensorflow as tf
print("Num GPUs Available: ", len(tf.config.list_physical_devices('GPU')))

出力が Num GPUs Available: 1 以上であれば、GPUが正常に認識されていることが確認できる。

4. PyTorchのインストール

PyTorchでは、MPS(Metal Performance Shaders)バックエンドを利用する。これにより、Apple SiliconのGPUが使用可能である。

pip install torch torchvision torchaudio

GPUが利用可能か確認するため、以下のPythonコードを実行する。

import torch

if torch.backends.mps.is_available():
    device = torch.device("mps")
    print("MPS device is available and being used.")
else:
    device = torch.device("cpu")
    print("MPS device is not available, using CPU instead.")

5. 注意点

  • Python 3.12ではtensorflow-metalがサポートされていないため、Python 3.11までを使用することが推奨される。
  • 一方、PyTorchではPython 3.12をサポートしている。
  • 仮想環境の作成には、pyenv-virtualenvを使用することで、環境の管理が容易になる。
  • deactivateコマンドは、source deactivateとして実行する必要がある。これにより、仮想環境の終了がシェルのコンテキスト内で正しく行われる。

本設定ガイドに従うことで、Apple Silicon環境においてTensorFlowおよびPyTorchを効率的に利用する準備が整う。以上を踏まえ、正確で効率的な機械学習開発環境を構築することが可能である。

コメントを残す