アップルM1は機械学習にどう影響するのか? (前編)

Appleは、iPadやiPhoneのラインナップにあるApple Aシリーズプロセッサをベースにした、史上初のAppleシリコンデスクトップ/ノートPCプロセッサを発表した。 この新しいプロセッサを、新しいM1 MacBook Air、M1 MacBook Pro、M1 Mac miniの3つの新しいMacとともに紹介した。

これらの新しいM1 Macは、新しいM1プロセッサを使った驚くべきスペックを宣伝していて、CPUスピードは最大で3.5倍高速になる。 GPUは最大5倍高速化し、新しいNeural Engineを使用することで、機械学習は最大9倍高速化します。 バッテリー駆動時間については、MacBook Airは15時間のワイヤレスウェブサーフィン、18時間の映画再生を宣伝しています(Apple TVアプリを使った映画再生については少し注意書きがあります)。 しかし、Youtubeで誰かがそれをテストするときにのみ、その違いがわかります。 MacBook Proに関しては、そのバッテリー駆動時間はワイヤレスでのウェブサーフィンが17時間、Apple TVアプリでのムービー再生が20時間となっています。 20時間というのはすごいですね。

M1 アーキテクチャ

新しいM1アーキテクチャは、最新の5nmテクノロジーで作られています。 1CPU、1GPU、1Neural Engine、そしてDRAMユニットをプロセッサに内蔵している。 RAMはプロセッサに内蔵されているため、すべてのコンポーネントが同じメモリにアクセスします。 これは何を意味するのでしょうか? つまり、あるコンポーネントから次のコンポーネントにメモリを移動したり、形状を変えたりすることによるパフォーマンスの損失はもうないということです。


CPUは8コアで、4コアはデータ処理や高性能を必要とするタスク用の高性能コア、4コアは「Eコア」と呼ばれる高効率コアでより効率的に処理を行い、低消費電力で動作するよう設計されています。

ウェブサイト上では、AppleはCPU速度を主張していませんが、gadgets.comに掲載されているGeekbenchリストでは、CPU速度は1.5倍となっています。これは、16 インチ Macbook Pro に搭載されている Intel Core i9-9880H プロセッサーのベース周波数よりも高い周波数です。

新しい M1 プロセッサーの Geekbench スコアのいくつかを比較してみましょう。

4 つの非常に人気のある CPU の結果を比較すると、Apple M1 はそのすべてを上回り、シングルコアのスコアでは 16 インチ Macbook Pro の i9 プロセッサでさえ快適なパフォーマンスとなっていました。 マルチコアになるまで、他のプロセッサ、特に AMD プロセッサが M1 と競争するのを見ることはできません。

シングル コア スコアとマルチコア スコアの比較については、ほとんどのデータ プリプロセッシング ライブラリでは、プロセッサの複数のコアを利用しませんので、マルチコア スコアはデータ プリプロセッシングにはほとんど役に立ちません。 シングルコアのスコアが高ければ高いほど、データ前処理に有利です。

GPU

統合GPUは8コアGPUで、25000スレッドを同時実行可能です。 Appleはこれを2.6TFLOPS(FP32)のスループットで「パーソナルコンピュータにおける世界最速の統合グラフィックス」と主張している。 確かにこれは統合 GPU としては素晴らしいものですが、私たちデータ サイエンティストは全体的なパフォーマンスに興味があるのです。 GPUは機械学習にはうまく機能しないでしょう。 しかし、そのようなことはありません。 RTX 2080 Superを搭載したRazer Blade Pro 17のようなものなら、11.2TFLOPSでもっとうまくいくでしょう。 その考えは正しいでしょう。 しかし、AppleはM1で、特に機械学習の効率化のためにプロセッサに統合されたNeural Engineも追加しました。

Neural Engine

M1プロセッサには、特に機械学習プロセスのために設計されたAppleの業界最高レベルのNeural Engineも搭載されています。 このニューラル エンジンは、これまで iPad や iPhone の A シリーズ プロセッサに搭載されていましたが、Mac にはまだ搭載されていません。

Apple は、新しい 16 コアのニューラル エンジンで 11 TOPS (Trillion Operations Per Second) を実現したと主張しています。 11TFLOPSという意味なのだろうか? もし 11 TFLOPS なら、この分野での競争相手になるかもしれません。

そのスピードに統合メモリ(レイテンシーの低減)および 20 時間のバッテリー持続時間を組み合わせると、外出中のデータ科学者にとって画期的なものになるでしょう。 RTX 2080 Superに匹敵するGPU、業界最高クラスのシングルコア・スコアを持つCPU、MacBook Airのフォームファクターだけでなく、18~20時間のバッテリー駆動時間を手に入れることができるのです。

この点に関してもう 1 つ考えられるのは、ML フレームワークの一部が、学習と推論を実行するために GPU と Neural Engine の両方を活用できれば、ということです。 ここで私が質問したいのは、

M1は最もよく使われているソフトウェアで動作しますか。 (例: Python、VSCode、Jetbrains、Anaconda、Excel、Juypter Notebooks)

Apple Silicon は ARM ベースの命令セット アーキテクチャを使用しています。 Python はすでに ARM、MIPS、PowerPC、i386、x86-64 を含む他の多くのプラットフォーム上で動作しています。 Python に問題はないはずです。

Juypter Notebook

Juypter notebook が Apple M1 プロセッサで動作するかどうかは、今のところ不明です。 私は、docker を使用して ARM アーキテクチャ上で juypter ノートブックを実行している 1 つのリンクを見つけました。 これは時間が解決してくれるでしょう。 もしかしたら、VSCode が製品化されれば、動作する Juypter 拡張があるかもしれません。

VSCode

Microsoft は 2020 年 11 月 10 日に Twitter で、Apple M1 用の VSCode の Universal ビルドを作成中であることを発表しました。 これを書いている時点では、ARM の実験的なビルドをこちらのサイトに掲載しています。

Microsoft Excel

Microsoft も 2020 年 11 月 11 日に、新しい Apple M1 プロセッサをサポートする Mac Office 2019 ベータの新しい Universal ビルドを開始すると発表しています。 実は、Erik Schwiebert氏がTwitterで、Microsoftが同日にベータ版をベータチャンネルでリリースすることを発表していた。 しかし、一般公開の日程は発表されませんでした。

Does M1 work with ML frameworks (i.e., Tensorflow, Scikit-Learn, Keras, etc)?

At the Apple M1 event, Apple mentioned support for Tensorflow.AppleはApple M1のイベントでTensorflowのサポートについて言及しました。 その主張の周りには、まだ具体的なものが見当たりません。 Tensorflow フレームワークは、x86_64 アーキテクチャと Nvidia GPU 用に構築されています。 ARM や Apple M1 アーキテクチャ用の他のビルドはありません。

Apple Converter を活用することで、Tensorflow モデルから推論を実行できると主張する人もいます。 TF モデルから CoreML への変換についての記事へのリンクはこちらです。

Right now it is unknown, and I can’t find anything referencing it.

Scikit-Learn

Will Scikit-learn work with the Apple M1? 短い答えは「たぶん」だと思います。 私たちが知っているのは、Python は M1 の ARM アーキテクチャで動作し、Scikit-learn は GPU サポートを利用しない、または使用しないということです。 理論的には、Scikit-learn は Apple M1 で動作するはずです。

ML で使用されるすべてのライブラリ (PyTorch, Keras など) を紹介するときりがありませんが、

Synopsis

  • Apple M1: 8 コア CPU、8 コア GPU、チップ上の統合メモリによる 16 コア Neural Engine… 続きを読む
  • Apple M1 CPUは、シングルコアのスコアが1687と最も高く、マルチコアのスコアは7433と、Intel i9-9880H (Macbook Pro 16″) のシングルコア1029、マルチコア6012と比較しても良いスコアとなっている。
  • Apple M1 GPU は 2.6 TFLOPS で、Nvidia GeForce RTX 2080 Super (Razer laptops) は 11.2 TFLOPS です。
  • Apple M1 Neural Engine は 11 兆演算子/秒と宣伝していますが、これは、Nvidia GeForce RTX 2080 Super の 11 兆演算子に対してです。 ここで疑問なのは、それがTFLOPS(FP32)なのか、ということです。 これは、Nvidia GeForce RTX 2080 Superの11.2.2と比較しています。
  • Apple M1にはソフトウェアサポートがありますか?

免責:私はまだApple M1について手を触れていないのです。 注文はしていますが、まだ受け取っていません。 また、このような状況下でも安定した稼動を維持することができます。 私の結果に基づいて購入するのではなく、購入する前に自分で調査してください。

Apple M1 MacBook Pro を受け取ったら、私の発見を新しい記事として書くつもりです。

コメントする