0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

M4Pro MacBook ProのGPUをTensorflowから使う

Last updated at Posted at 2024-11-14

M4Proチップ搭載メモリ48GBのMacBook Proを買いました。これまで、機械学習をいろいろ試したく開発用にx86_64 Ubuntu + GeForce3060Tiを準備していましたが、M4ProチップはGPUハードウェアリソースが豊富なのでMacBook Proで持ち運べる開発環境を作ってみました。

今回の手順では、ゼロから設定をはじめ、TensorflowからGPUを認識できるところまで紹介しています。なお、本記事は以下のサイトを参照して書いています。

PyTorchを使う手順はコチラ

Homebrewをインストールする

まず、macOS上のパッケージを管理できるHomebrewをインストールします。Homebrewのサイトにアクセスし、トップページにあるインストールスクリプトを実行すればOK。

スクリーンショット 2024-11-14 0.15.59.png

$ /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
... Homebrewをインストールします
$ 'eval $(/opt/homebrew/bin/brew shellenv)' >> /Users/hoge/.zprofile
... 環境変数が通るように.zprofileに追記します
$ . ~/.zprofile
... .zprofileを読み込みます

これで、パッケージマネージャーの準備ができました。

Anacondaをインストールする

次にPythonの仮想環境を管理するためのAnacondaをインストールします。Pythonの仮想環境とは、Pythonスクリプトを実行するときに、どのパッケージに依存していてるか、どのバージョンのPythonを実行するか、をまとめた箱をイメージしてみてください。

Anacondaのサイトにアクセスします。サクッとインストールしたいので、ここではSkip registrationをクリック。

2024-11-13.png

M4 Proはnot-Intelなので、64bit(Apple sillicon) Graphical Installer版をダウンロードしてください。

2024-11-13 (1).png

ダウンロードしたパッケージをインストールします。

スクリーンショット 2024-11-14 0.07.12.png

スクリーンショット 2024-11-14 0.07.25.png

これでAnacondaのインストールができました。ただこのままだとターミナルから使えないので、有効化を行います。次の手順を実行しましょう。

Anacondaを有効化する

macOSのターミナルは基本的にzshと呼ばれるシェルが動いています。zshを選択してconda initを実行します。またターミナル開始時に自動的にcondaが有効になるようにconda config --set auto_activate_base trueも実行しておきましょう。

$ /opt/anaconda3/bin/conda init zsh
... zsh(Mac標準のシェル)でcondaを有効にします
$ conda config --set auto_activate_base true
... 起動時、自動的にcondaが有効になるよう設定します

スクリーンショット 2024-11-14 0.10.15.png

ターミナルを再起動して(base)と出ればAnaconda読み込めています。

スクリーンショット 2024-11-14 0.10.41.png

Miniforgeをインストトールする

続いて、PythonとPython周りのパッケージを管理できるMiniforgeをインストトールします。まず、Miniforgeをダウンロードしましょう。~/Downloadディレクトリに保存されますので、インストール後、下記のコマンドでインストールします。

$ chmod +x ~/Download/Miniforge3-MacOSX-arm64.sh
... インストールスクリプトに実行権限を付与します
$ ~/Download/Miniforge3-MacOSX-arm64.sh
... インストールします
$ source ~/miniforge3/bin/activate
... Miniforgeを読み込みます

その後、ターミナルを再起動します。

Tensorflowをインストールする

それではいよいよ、Tensorflowをインストールします。まず、Pythonを実行するための仮想環境を作成し、その中に入ります。下記の例ではmacgpuboxという名前の仮想環境を作成しています。ログイン後に(macgpubox)と表示されればOKです。

$ mkdir macgpubox
$ cd ./macgpubox
... 作業ディレクトリを作成します
$ conda create --prefix ./env python=3.8
... Python3.8ベースの仮想環境「env」を作成します
$ conda activate ./env
... 仮想環境にログインします

続いてTensorflowと科学技術系のパッケージを次の順番でインストールします。

  • apple tensorflow-deps apple silliconでPythonを実行するためのパッケージ
  • tensorflow-macos macOS上でTensorflowを実行するためのパッケージ
  • tensorflow-metal macOSのCPU/GPUを管理するAPIを叩くパッケージ
  • その他:よく使われる科学技術系のパッケージ
$ conda install -c apple tensorflow-deps
...
$ python -m pip install tensorflow-macos
...
$ python -m pip install tensorflow-metal
...
$ conda install jupyter pandas numpy matplotlib scikit-learn
...

TensorflowからGPUへアクセスする

以上でMacBook ProのGPUにアクセスする準備ができましたので、早速サンプルコードを実行してみましょう。サンプルコードは以下の通りです。tf.config.list_physical_devices()で利用可能なハードウェアリソースを参照します。

$ vi test.py
import numpy as np
import pandas as pd
import sklearn
import tensorflow as tf
import matplotlib.pyplot as plt

# Check for TensorFlow GPU access
print(f"TensorFlow has access to the following devices:\n{tf.config.list_physical_devices()}")

# See TensorFlow version
print(f"TensorFlow version: {tf.__version__}")

実行結果は以下の通り!MacBook ProのGPUが見えましたね!

$ python test.py
TensorFlow has access to the following devices:
[PhysicalDevice(name='/physical_device:CPU:0', device_type='CPU'), PhysicalDevice(name='/physical_device:GPU:0', device_type='GPU')]
TensorFlow version: 2.13.0

これで外出先でも楽々GPUを使ったPythonコードを実装できそうです。

0
1
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
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?