Appleシリコンを使用したM1 Proでのディープラーニング
新しいMacbook Proでの成果を見ていきましょう。
Created on April 20|Last edited on April 20
Comment
素晴らしいAppleシリコンを搭載した新しいMac🍎をお持ちの場合、「Pythonを実行し、ディープラーニング実験を行うためにどのように設定すれば良いのか」と疑問に思うかもしれません。 そう思われている方はラッキーです。 これからその内容について説明していきますからね。 (余談ですが、M1Proの購入を考えている場合、または単に結果を知りたい場合は、下のベンチマークセクションに移動してください!
このレポートでは、以下について説明します:
✅ Pythonといくつかの共通ライブラリのために新しいMacbook Proを設定する方法
✅ Tensorflowをメタルバックエンドでインストールして完全なGPUアクセラレーションを得る方法
✅ M1Pro GPUのディープラーニングベンチマーク! (ネタバレ注意:とても期待を持てる結果になっています)。
では、始めましょう。
新しい Mac でセットアップされた Python 🐍
まず、ターミナルを開いてApple Developerツールをインストールする必要があります。これを行うには、次のように入力してください:
git clone some_repo_of_your_choice
これにより、セットアップがトリガーされます。 この後、brewやmacportsなどはもちろん、何も必要ありません!
この後、brewやmacportsなどはもちろん、何も必要ありません! (また、非常に古い Python が Apple システムで使用されています。 私の新しい14インチMacbook Proでは、Python 2.7.18が付属していました!!)
💡
新しいPythonをインストール:
- 2つ目の選択肢として、conda-forgeを使用するminiconda3のフォーク、つまりminiforgeを使用することが挙げられます。 個人的には現在これを使用しており、とても満足しています❤️。
conda/mamba のインストールを実行したら、作業する環境を作成する必要があります。 これは次のコマンドで実行できます:
conda create --name=env_name "python<3.10" pandas numpy matplotlib jupyterlab
スペースで区切られた|env_name|の後に必要なパッケージを配置することができます。 また、|==|や|<,|>|を使用して特定のバージョンを固定することもできます。
個人的には、Jeff HeatonのYoutube チャンネルで、ML向けのApple シリコンの詳細とアップデートを見ることをお勧めします。 私がここで紹介する多くは、このビデオからの情報です:
Apple Metalバックエンドを使用してTensorflowをインストール🤘
注意: 最新のモンテレー (Mac OS 12) が必要です。
💡
conda env create --file=tf_apple.yml
それから、次のように実行することができます:(以前と同様に、環境をアクティベートする必要があります。)
(以前と同様に、環境をアクティベートする必要があります。)
M1Proのベンチマーク
ここでは、16GPUコアを搭載したM1 Proのパフォーマンスを見ていきます。 私は、チームの一部のエンジニアが、M 1 Maxマシンを注文したことを把握しています。利用可能なマシンがあればアップデートします! また、M1(Proではないモデル)を研究している共同創設者のCVPからの去年のレポートを確認していない場合は、そちらをご確認ください。素晴らしいスタートとなります。
手順 📓
ベンチマークでは、3 4つの異なるコンピュータを使用しました。
- 7コアGPUを搭載したエントリーレベルMacbook Air: M1_7
- 16コアGPUを搭載した14インチMacBookPro:16GBのRAMを搭載したM1Pro。
- NEW: 32コアGPUを搭載した16インチMacBook PRO: 64GBのRAMを搭載したM1 MAX。(only for RestNet50 benchmarks) ( RestNet50ベンチマークのみ)
- 8コアCPUと16GB RTX5000を搭載したPaperspaceのLinuxワークステーション:| RTX5000
- NEW: 16コアCPUとRTX 3090とRTX 3080を搭載したLinuxワークステーション
- NEW:ディープラーニングの古き王、GTX 1080 Ti
( K80の基本的なGoogle Colabインスタンスを切り替えることもできますが、非常に遅くなります。)
私たちのモデルでは、次の2つのバリアントでMobileNetV2���トレーニングしました。
- 「モデルのヘッドを微調整する」が実行され、モデルのヘッドのみが約20kのパラメータで微調整されました。
- 「フルモデルトレイン」では、2.5MパラメータのMobileNetV2をトレーニングしました。
プロットの各セットでは、両方が実行されます。
結果
ノートパソコンに使用されるエネルギーは、GPUマシンと比較して非常に低いことがわかります。 これはもちろん普通の結果であり、使用されるエネルギーに関して意味のある結果を得るためには、モバイルGPUに対してベンチマークを行う必要があります。
all runs
0
以下のグラフでは、サンプル/秒を見ることもできます。
注意:最初のエポックでは、おそらくキャッシュで何かが起こっているため、NVIDIAカードの速度は遅くなりますが、その後はフルスピードになります。
💡
これは、モデルのヘッドを微調整するときにのみ起こります。 完全にトレーニング可能なネットワークの場合、違いは小さく、RTX5000はM1Proよりも約55%高速です。RTX2060mに匹敵する速度が得られますが、RTX2060が4倍の電力を使用することを考えると、この結果は悪くありません。
(注意: NVIDIAのNGC TensorFlowコンテナ内の実行は、conda環境の実行よりもかなり高速です。 |ngc|としてタグ付けされているので、切り替えを選択できます。 これらのコンテナは、できるだけ高速に実行できるように調整および最適化されており、GoogleとNVIDIAによってメンテナンスされています。 現在、Appleの同等品はありません。)
fine-tune model's head
0
train full model
0
おまけ: Resnet50
バックボーンをResnet50に交換するとどうなるでしょう? ここでは、フルモデルをトレーニングし、合計23.5Mのパラメータを使用します。 こちらに🟩緑色の電源が表示されますが、ノートパソコンのGPUはワークステーションカードとは比較されません。
train full model
0
結論
16コアGPUを搭載したM1Proは、M1チップへのアップグレードです。GPUコアは2倍になり、メモリ帯域幅は2倍以上になります。 メモリはCPUとGPUで共有されるため、大量のメモリにアクセスできます。テンソルをデバイス間で移動する必要がないため、ディープラーニング・パイプラインに最適です。 また、64GBのRAMを搭載した構成を入手できます。これは実際、ダントツで現在の市場における最大のモバイルGPUです。
予想通り、M1 Pro MaxはM1 Proの2倍の速度です( GPUコア数の2倍)。 低消費電力のノートパソコンGPUでは、RTX5000のほぼ同等のパフォーマンスを実現します。
M1はワークステーションのビデオカードの代わりにはなりませんが、外出先でモデルを微調整するためのコンピューティングを提供してくれます。 バッテリー電源のテストを実行しましたが、パフォーマンスに影響は見られませんでした。 それ以上に、M1の素晴らしい点は、ジェットエンジンのような音を立てる私のXPS15と比較すると、コンピュータがやや暖かく静かな状態で維持されるということです✈🔊。
結論としては、これは革新的なものになるかもしれません。
それでは、Pytorch🔥は??
この間、Pytorchの主任開発者であるSoumith Chintalaは、この重大ニュースを発表しました!

Add a comment
Iterate on AI agents and models faster. Try Weights & Biases today.