BT

最新技術を追い求めるデベロッパのための情報コミュニティ

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース AppleのML ComputeフレームワークがTensorFlowトレーニングを加速

AppleのML ComputeフレームワークがTensorFlowトレーニングを加速

ブックマーク

原文(投稿日:2020/11/24)へのリンク

最近のmacOS Big Surリリースの一部として、AppleML Computeフレームワークを組み込んでいる。ML Computeは、IntelM1ベースのMacの両方で、CPU上とGPU上において、トレーニングを改善するために最適化された数学ライブラリを提供する。それによって、TensorFlowディープラーニングライブラリを使用してトレーニング時間を最大7倍改善する。

AppleのMachine Learningブログには、ML Computeフレームワークの概要が記載されている。ML ComputeはTensorFlowなどの計算グラフベースのディープラーニングライブラリのパフォーマンスを向上させている。それは、グラフ自体を最適化し、CPUトレーニング用のBNNSやGPU用のMetal Performance Shadersなどの高速ライブラリを、そのプリミティブを実行することによりものである。ML Computeを最大限に活用するために、AppleはプラットフォームをターゲットとしたTensorFlowバイナリのバージョンを提供している。いくつかの人気のあるニューラルネットワークベンチマークでの最適化されたTensorFlowライブラリのテストでは、標準コードと比較して「劇的に速い」トレーニング時間を示している。Appleの新しいM1ハードウェア上の最適化されたライブラリで最大7倍の改善が見られている。

ほとんどの深層学習システムは、TensorFlowやPyTorchなどの計算グラフベースのフレームワークを使用する。これらのシステムでは、ニューラルネットワークが多次元数値配列またはtensorsに対する一連の線形代数演算として記述される。これらの操作は、多くの場合、低レベルのハードウェア固有の実装を使用することで大幅に高速化できる。GPUハードウェアを使用して操作を実行すると、さらに大きくパフォーマンスが向上する。GPUは大規模な線形代数用に特別に設計されているためである。

ただし、ディープラーニングフレームワークでのGPUサポートは、特定のハードウェアプラットフォームのアクセラレーションライブラリ用にコーディングする必要がある。最も人気のある2つのディープラーニングフレームワークであるTensorFlowとPyTorchは、CUDAツールキットを介した高速化のためにNVIDIAのGPUをサポートしている。これは、Macでの深層学習開発に問題を引き起こす。Appleは2010年からMacの統合GPUにIntelハードウェアを使用しており、macOSは外部GPU(eGPU)をサポートしているが、Appleの公式ドキュメントではAMDベースのハードウェアのみを推奨している。NVIDIAハードウェアのサポートは不十分であり、OSのアップグレード後にバグやパフォーマンス低下が報告されている。PlaidMLなど、Macでのディープラーニングアクセラレーションには他にもソリューションがあるが、セットアップが難しい、低レベルのTensorFlowAPIがサポートされていないなどの欠点がある。

最近、Appleは新しいM1「システム・オン・チップ」をリリースした。これには、組み込みGPUがあるだけでなく、1秒あたり11兆回の操作をサポートする16コアの「ニューラルエンジン」も含まれている。Appleは、Neural EngineがML計算が最大で15倍改善すると主張している。同じ頃、AppleはBig Surをリリースした。Big Surは、ML Computeフレームワークを含むmacOSの最新バージョンである。ML Computeは、ニューラルネットワーク操作を実行するためのいくつかの低レベルAPI呼び出しをラップする。CPU上のBNNSとGPU上のMetal Performance Shadersである。

これらのAPIを対象とするようにコンパイルされたTensorFlowフレームワークのバージョンを使用して、Appleはいくつかの一般的なニューラルネットワークモデルをトレーニングし、トレーニング時間をTensorFlowの標準バージョンを使用して取得したものと比較した。実験は、AMD GPUを搭載したIntelベースの2019 Mac Proと、Intel GPUを搭載したIntelベースの2020 MacBookProとM1ベースの2020 MacBook Proの両方で実施された。Appleは生の数値を提供しなかったが、M1ではIntel MacBookと比較して「最大7倍速い」と主張しており、添付のグラフは2019 Mac Proで一部のネットワークでは約1桁のスピードアップを示している。

画像ソース: https://blog.tensorflow.org/2020/11/accelerating-tensorflow-performance-on-mac.html

Hacker Newsのユーザはこの発表を歓迎し、PlaidMLなどの回避策の難しさを指摘した。Twitterで、機械学習コンサルタントのStephen Purpura氏は、NVIDIAのGPUと比較して、新しいM1ハードウェアで優れたパフォーマンスを報告した。

現在テスト中の私のモデルでは、1080または1080 TIを使用しているようなものです。ベンチマークすると、少し速くなるはずなので、速度低下の原因を調べます。

アクセラレーションされたTensorFlowライブラリ用のAppleのバイナリは、GitHubで入手できる。Appleはまだソースコードをリリースしていないが、TensorFlowブログには、AppleのフォークをTensorFlowオープンソースメインラインに統合する計画が述べられている。PyTorchチームは、ML ComputeまたはM1チップのサポート計画を発表していないが、ユーザはGitHubイシューを通じてこれを提案している

この記事に星をつける

おすすめ度
スタイル

BT