1.AppleのM1プロセッサが機械学習に与える影響(2/2)まとめ
・GPUとニューラルエンジンを組み合わせると高性能を発揮できるポテンシャルがある
・M1に最適化したTensorFlow 2.4はIntel版に比べて3~4倍近い性能を発揮した
・Apple M1が最高性能を発揮するためにはソフトウェアがサポートする事が必要となる
2.AppleのM1プロセッサと機械学習関連ソフト
以下、medium.comより「How is the Apple M1 going to affect Machine Learning?」の意訳です。元記事の投稿は2020年11月16日、Tommy Shroveさんによる投稿です。
アイキャッチ画像のクレジットはPhoto by Priscilla Du Preez on Unsplash
ニューラルエンジン
M1プロセッサには、機械学習プロセス用に特別に設計されたAppleの業界をリードするニューラルエンジン(Neural Engine)も搭載されています。ニューラルエンジンは、以前はiPadとiPhoneのAシリーズプロセッサに追加されていましたが、従来のMacにはまだ搭載されていません。Appleは、新しい16コアのニューラルエンジンで11 TOPS(Trillion Operations Per Second)の性能を主張しています。
11 TOPS?
これは11 TFLOPSを意味していますか?もし、11 TFLOPSであるならば、この分野で競争力を持つ可能性があります。この速度を統合メモリ(応答遅延の短縮)と20時間稼働のバッテリ容量に組み合わせると、外出中のデータサイエンティストにとって大きな変革をもたらされる可能性があります。
MacBook Airのフォームファクタである業界最高水準のシングルコアスコアだけでなくRTX2080 Superに匹敵するGPU、そして18~20時間のバッテリ寿命も得られます。すごい!
これに関する別の考えは、いくつかのMLフレームワークがGPUとニューラルエンジンの両方を利用して推論をトレーニングおよび実行できるかどうかです。
Apple M1のソフトウェアサポート
それでは、ソフトウェアのサポートについてお話ししましょう。ここでの私の質問は次のとおりです。
M1は最も使用されているソフトウェアのいくつかで動作しますか?(例:Python、VSCode、Jetbrains、Anaconda、Excel、Juypter Notebooks)
(1)Python
Apple Siliconは、ARMベースの命令セットアーキテクチャを使用しています。 Pythonは、ARM、MIPS、PowerPC、i386、x86–64などの他の多くのプラットフォームですでに実行されています。 Pythonに問題はないはずです。
(2)Juypter Notebook
Juypter NotebookがApple M1プロセッサで動作するかどうかは現時点では不明です。dockerを使用してARMアーキテクチャでJuypter Notebookを実行しているリンクをgithubで見つけました。時間がたてば動くかどうかわかると思います。多分、VSCodeが本番環境に対応すると、Juypterの拡張機能が動作するようになります。
(3)VSCode
Microsoftは2020年11月10日にTwitterで、Apple M1用と共用できる(Universal build)VSCodeに取り組んでいると発表しました。これを書いている時点で、彼らはcode.visualstudio.comにARM用の実験ビルドを公開しています。
(4)Microsoft Excel
マイクロソフトはまた、2020年11月11日に、新しいApple M1プロセッサをサポートするMacOffice 2019ベータ版の新しいユニバーサルビルドをリリースすると発表しました。実際のところ、Erik SchwiebertはTwitterで、Microsoftが同日ベータチャネルでベータバージョンをリリースすると発表しました。しかし、彼らは一般公開の日程を発表していません。
M1はMLフレームワーク(Tensorflow、Scikit-Learn、Kerasなど)で動作しますか?
(1)Tensorflow
Apple M1イベントで、AppleはTensorflowのサポートについて言及しました。 私はその主張に関する詳細をまだ見つけていません。Tensorflowフレームワークは、x86_64アーキテクチャとNvidia GPU用に構築されています。 ARMまたはApple M1アーキテクチャ用の他のビルドはありません。
Apple Converterを利用することで、Tensorflowモデルから推論を実行できると主張する人もいます。www.inovex.deでは、TFモデルからCore MLへの変換について解説してます。他の数人は、Swift for Tensorflowに言及しています。
現在は詳細は不明であり、参照先も見つかりませんでした。
(2)Scikit-Learn
Scikit-learnはAppleM1で動作するでしょうか?簡単な答えは「多分動く」です。
つまり、PythonはM1のARMアーキテクチャで動作しますし、Scikit-learnはGPUを利用しません。従って、理論的には、Scikit-learnはApple M1で機能するはずです。
その他のMLで使用される全てのライブラリ(PyTorch、Kerasなど)については、切りがないので先に進みます。
まとめ
・Apple M1:8コアCPU、8コアGPU、16コアニューラルエンジン、チップ上にメモリが統合されています。
・Apple M1 CPUは、最高のシングルコアスコア1687、そこそこのマルチコアスコア7433を達成しました。Intel i9–9880H(Macbook Pro 16インチ)は1029シングルコア、6012マルチコアスコアです。
・Apple M1 GPUは2.6TFLOPSの性能です。NvidiaGeForce RTX 2080 Super(Razerラップトップ)は11.2TFLOPSです。
・Apple M1 Neural Engineは、毎秒11TOPS(Trillion Operators Per Second)の性能を喧伝しています。ここでの問題は、TOPSを一般的に使われる性能指標であるTFLOPS(FP32)と見なして良いかです。11TFLOPSであれば、11.2TFLOPSのNvidia GeForce RTX 2080Superに匹敵します。
・Apple M1にはソフトウェアサポートがありますか?
Software | Support |
Python | Yes |
Juypter notebook | Maybe(Docker?) |
VSCode | Yes(Beta Channel) |
Microsoft Excel | Yes(Beta Channel) |
Tensorflow | Mac-optimized version of TensorFlow 2.4 |
Scikit-learn | Yes |
免責事項
私はまだApple M1を手に入れていません。注文しましたが、まだ受け取っていません。
私はソフトウェアサポートについて主張するために調査しただけです。 私の調査結果に基づいて購入を決めるのではなく、購入する前に独自の調査を行ってください。
Apple M1 MacBook Proを受け取ったら、調査結果を使って新しいストーリーを執筆予定です。
更新情報
M1チップのサポートに関してDockerが公式プレスリリースを行っています。(訳注:開発中との事です。)
3.AppleのM1プロセッサが機械学習に与える影響(2/2)関連リンク
1)medium.com
How is the Apple M1 going to affect Machine Learning?
2)github.com
Mac-optimized TensorFlow and TensorFlow Addons
3)code.visualstudio.com
Download Visual Studio Code Insiders