Skip to main content

Apple M1は、NVIDIA V100よりも速くて安価にモデルをトレーニングできますか?

M1 MacMiniおよびNvidiaV100でのTensorflowトレーニングの実行時間、エネルギー使用量、およびパフォーマンスの分析
Created on January 25|Last edited on February 17
このレポートは、Chris Van Peltによる「Can Apple's M1 help you train models faster & cheaper than NVIDIA's V100?」の翻訳です。



TLDR

トレーニングスクリプトの8つの異なる構成をスイープし、Apple M1が、小規模なアーキテクチャやデータセット向けの Nvidia V100など、はるかに高価でエネルギー効率の低いアクセラレータの範囲内で優れたパフォーマンスを提供することを示しました。




Run set
24



方法論

Cifar 10でMobileNetV2アーキテクチャを使用してコンピュータービジョンモデルをトレーニングしました。NvidiaV100でこのコラボでトレーニングし、16GB M1 MacMiniでtensorflow_macos フォークを使用して同じモデルをトレーニングしました。W&Bスイープを使用して、次のハイパーパラメータを変更しました。
batch_size:
- 32
- 64
img_dim:
- 96
- 128
trainable:
- true
- false
trainableがfalseの場合、ネットワークの最後のレイヤーのみをトレーニングします。訓練可能が真の場合、MobileNetV2のすべての重みを更新します。
M1の優れたメモリアーキテクチャが原因で、トレーニングするウェイトが少ない場合に、m1のパフォーマンスが向上することがわかります。




Trainable
8
Non-Trainable
8



エネルギー

使用したAppleハードウェアは、16GBのRAMを搭載したM1 MacMiniでした。トレーニング中、ファンは聞こえず、ケースは触ると涼しかったです。M1がV100と同じ量の計算を達成するために使用したエネルギーがどれほど少ないかは注目に値します。V100は12nmプロセスを使用し、m1は5nmを使用していますが、V100は一貫して6倍近くのエネルギーを使用しています。



Run set
16



警告

新しい高速化されたTensorflowパッケージを実行するようにMacMiniを設定することは、簡単なことではありませんでした。コンパイルが必要なさまざまなパッケージを取得する最も簡単な方法は、Minicondaのarm64ブランチからであることがわかりました。tensorflowライブラリは、デフォルトでアクセラレーションに最適なパスを選択することになっていますが、次のコードでgpuを使用するようにライブラリに明示的に指示しない限り、一貫したセグメンテーション違反が発生していました。
from tensorflow.python.compiler.mlcompute import mlcompute
mlcompute.set_mlc_device(device_name="gpu")
反復を高速化するためにMobileNetV2を選択しました。ResNet50または他のより大きなモデルを試したとき、M1とNvidiaの間のギャップはより広くなりました。また、入力がM1で196x196の寸法を超えたときに、セグメンテーション違反が発生しました。
これらのエントリーレベルのMacは一般的に、今のところ小規模なアーキテクチャにのみ適していると考えられます。
また、ネットワークの最終層のみをトレーニングしたM1での試行が収束しなかったことも観察しました。これは、Nvidia V100には当てはまりませんでした。さらに実験を行ったところ、学習率を下げることでM1の実行を収束させることができました。M1ハードウェアで学習率の調整がどうしてより気難しいかは不明です。


Apple M1




Run set
8



Nvidia V100




Run set
8



結論

まだ初期の段階ですが、これらの予備的な結果は非常に有望に見えます。Appleがより多くのコアとRAMを備えたProハードウェアをリリースすると、Appleハードウェアで機械学習モデルをトレーニングすることが一般的になる可能性があります。W&Bでは、スタッフ全員が開発にMacハードウェアを使用しており、チームの多くが次世代のハードウェアを手に入れるのを待ちきれません。tensorflow_macosフォークを注意深く監視し、最終的にメインのtensorflowリポジトリに組み込まれます。また、PyTorchチームがApples ML Computeライブラリと統合することを決定したかどうかも知りたいです。現在、Githubで議論が進行中 です。
wandbライブラリの最新リリース(0.10.13)は、このレポートに示されているように、Apple M1ハードウェアからGPUメトリックを自動的にキャプチャします。
他のアーリーアダプターがこれを試してみるのを楽しみにしています!このレポートにコメントを残すか、これらの結果についてご質問ください。


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