[AI]Mythic
用語
バッチサイズ
https://qiita.com/kenta1984/items/bad75a37d552510e4682
DLのように内部で確率的勾配降下法を使う場合、データセットを幾つかのサブセットに分けて学習する。
幾つかのサブセットに分けて学習する理由は、学習する際に異常値の影響を小さくするため。
この幾つかに分けたぞれぞれのサブセットに含まれるデータの数をバッチサイズと呼ぶ。
例えば、1,000件のデータセットを200件ずつのサブセットに分ける場合、バッチサイズは200。
参考情報
機械学習とかDeep Learningを学ぶ前に知っておくべき基礎の基礎
https://dev.classmethod.jp/machine-learning/fundamental-matters-to-know-before-learning-machine-learning-and-deep-learning/
Mythic YouTube
12:26 Other Applications Are Similar
Decision Making : Cicumstances(状況、環境、境遇) to Actions
Actuation : Physical Goals to Motor Control
Speech Processing : Waveforms to Words/Phonems(音素)
Text to Speech : Words to Waveforms
18:49 DNN Processing is All About Weight Memory
AlexNet、ResNet-18などのNetwork
それぞれのWeightが61M、11M (10+Mの保存すべきパラメータがある)
積和演算機MACの数は、725M、1.8Bなどもある。
これらを@30FPSの処理で考えると、MACの30倍の22B、54Bといった計算量になる。(20+Bのメモリアクセスになる)
これらのリソースをエッジソリューションにフィットさせる事は非常に難しい。
19:09 Energy Efficiency Translates to Performance
ResNet-50 @ 4K(579B MACs/Frame)を考えてみる。
1 秒間に 1 ジュールの仕事が行われるときの仕事率が 1 ワット。 W = J / s
1pJ(ピコジュール) = 1E^-12 J
もし1MACあたり、1pJの消費電力量だったら、1Wあたり1E^12(=1000G)個のMACを動かす事が出来る。
Camera System = Thermal Limit of 5W
50pJ/MAC > 5W制限では100GMAC/sを動かす事が出来る > 1Frameで579B MACs必要だから、0.17FPS分のMAC計算量しかない。
同様に、10pJ/MACだったら0.86FPS、0.5pJ/MACだったら17.3FPS。
つまり、1MACが0.5pJで動いても17.3FPSしか処理出来ない。
17.3FPSならUsable。
セキュリティカメラなら有用。
33:53 Revisiting Matrix Multiply
入力データと掛け合わせるNeuron Weights行列をFlash Transistorsで構築する。
34:00 Analog Circuit Give us the MAC we need
35:13 DACs& ADCs Give us the flexible Architecture
Programmability (XLA/ONNX -> Mythic IPU)
TensorFlow コンパイラ 「XLA」を提供
https://developers-jp.googleblog.com/2017/03/xla-tensorflow-compiled.html
https://www.itmedia.co.jp/news/articles/1709/08/news051.html
36:25 Mythic Mixed Signal Computing
Single Tile = DAC -> Weight Storage & Analog Matrix Multiplier -> ADC, SRAM, RISC-V, SIMD, Router
タイルがお互いに通信する。
37:17 Mythic Mixed Signal Computing
Single Tile --> Tiles connected in a Grid --> Expandable Grid of Tiles(Exmaple DNN mapping(Post-Silicon) )
・我々はそれらをチップの異なる領域にマッピングすることによってシステム上の複数のアプリケーションをサポートすることができる。
・そのため、アプリケーションを物理的なハードウェアのグリッドにマッピングするFPGAのように考えることができます。
・FPGAで複数のアプリケーションをサポートしたい場合は、FPGAを複数の領域に分割することができます。
37:49 System Overview
Intelligence Processing Unit (IPU)
・システムは完全にタイルベースの設計なので、システムは高度に設定可能で拡張可能です。
・we have our initial product which has 50 million weight capacity PCI Express 2.1 with four channels
・すぐに別バージョンをテープアウトする。
- Envisioned(想像される) Customization
Up to 250M weight
PCIe 2.1 x16
USB3.0/2.0
Direct Audio/Video interfaces
Enhanced Control Processor (e.g. ARM)
38:51 System Overview
Mythic is a PCIe Accelerator
Mythic IPU (Inference Model (*1) <----(data via PCIe)-- / --(inference result via PCIe)--> Host SoC(OS, App, Interface, Mythic IPU Driver)
バッチサイズ
https://qiita.com/kenta1984/items/bad75a37d552510e4682
DLのように内部で確率的勾配降下法を使う場合、データセットを幾つかのサブセットに分けて学習する。
幾つかのサブセットに分けて学習する理由は、学習する際に異常値の影響を小さくするため。
この幾つかに分けたぞれぞれのサブセットに含まれるデータの数をバッチサイズと呼ぶ。
例えば、1,000件のデータセットを200件ずつのサブセットに分ける場合、バッチサイズは200。
参考情報
機械学習とかDeep Learningを学ぶ前に知っておくべき基礎の基礎
https://dev.classmethod.jp/machine-learning/fundamental-matters-to-know-before-learning-machine-learning-and-deep-learning/
Mythic YouTube
12:26 Other Applications Are Similar
Decision Making : Cicumstances(状況、環境、境遇) to Actions
Actuation : Physical Goals to Motor Control
Speech Processing : Waveforms to Words/Phonems(音素)
Text to Speech : Words to Waveforms
18:49 DNN Processing is All About Weight Memory
AlexNet、ResNet-18などのNetwork
それぞれのWeightが61M、11M (10+Mの保存すべきパラメータがある)
積和演算機MACの数は、725M、1.8Bなどもある。
これらを@30FPSの処理で考えると、MACの30倍の22B、54Bといった計算量になる。(20+Bのメモリアクセスになる)
これらのリソースをエッジソリューションにフィットさせる事は非常に難しい。
19:09 Energy Efficiency Translates to Performance
ResNet-50 @ 4K(579B MACs/Frame)を考えてみる。
1 秒間に 1 ジュールの仕事が行われるときの仕事率が 1 ワット。 W = J / s
1pJ(ピコジュール) = 1E^-12 J
もし1MACあたり、1pJの消費電力量だったら、1Wあたり1E^12(=1000G)個のMACを動かす事が出来る。
Camera System = Thermal Limit of 5W
50pJ/MAC > 5W制限では100GMAC/sを動かす事が出来る > 1Frameで579B MACs必要だから、0.17FPS分のMAC計算量しかない。
同様に、10pJ/MACだったら0.86FPS、0.5pJ/MACだったら17.3FPS。
つまり、1MACが0.5pJで動いても17.3FPSしか処理出来ない。
17.3FPSならUsable。
セキュリティカメラなら有用。
33:53 Revisiting Matrix Multiply
入力データと掛け合わせるNeuron Weights行列をFlash Transistorsで構築する。
34:00 Analog Circuit Give us the MAC we need
35:13 DACs& ADCs Give us the flexible Architecture
Programmability (XLA/ONNX -> Mythic IPU)
TensorFlow コンパイラ 「XLA」を提供
https://developers-jp.googleblog.com/2017/03/xla-tensorflow-compiled.html
・TensorFlow は柔軟で拡張可能なシステムを目指して設計されており、任意のデータフロー グラフを定義して、それらのグラフをCPU や GPU などのさまざまな計算デバイスに分散させ、効率的に実行できるようになっています。
・XLA は、ユーザーが作成した TensorFlow グラフを JIT コンパイル技術により実行時に分析します。ランタイムにおける実際の次元や型に応じて特化したグラフをを生成し、複数の演算をまとめて、CPU や GPU、カスタム アクセラレータ(Google の TPU など)などで効率的に実行できるバイナリコードを生成します。
https://www.itmedia.co.jp/news/articles/1709/08/news051.html
・米Microsoftと米Facebookは9月7日(現地時間)、AI(人工知能)開発者がフレームワーク間のスイッチを簡単にできるようにするオープンソースプロジェクト「Open Neural Network Exchange(ONNX)」を公開したと発表した。GitHubで公開されてる。
・ONNXは、あるAIフレームワークで構築した学習モデルを異なる機械学習システムに簡単に切り替えることを目的としており、Facebookの「Caffe2」と「PyTorch」、Microsoftの「Cognitive Toolkit(CNTK)」をサポート。
36:25 Mythic Mixed Signal Computing
Single Tile = DAC -> Weight Storage & Analog Matrix Multiplier -> ADC, SRAM, RISC-V, SIMD, Router
タイルがお互いに通信する。
37:17 Mythic Mixed Signal Computing
Single Tile --> Tiles connected in a Grid --> Expandable Grid of Tiles(Exmaple DNN mapping(Post-Silicon) )
・我々はそれらをチップの異なる領域にマッピングすることによってシステム上の複数のアプリケーションをサポートすることができる。
・そのため、アプリケーションを物理的なハードウェアのグリッドにマッピングするFPGAのように考えることができます。
・FPGAで複数のアプリケーションをサポートしたい場合は、FPGAを複数の領域に分割することができます。
37:49 System Overview
Intelligence Processing Unit (IPU)
・システムは完全にタイルベースの設計なので、システムは高度に設定可能で拡張可能です。
・we have our initial product which has 50 million weight capacity PCI Express 2.1 with four channels
・すぐに別バージョンをテープアウトする。
- Envisioned(想像される) Customization
Up to 250M weight
PCIe 2.1 x16
USB3.0/2.0
Direct Audio/Video interfaces
Enhanced Control Processor (e.g. ARM)
38:51 System Overview
Mythic is a PCIe Accelerator
Mythic IPU (Inference Model (*1) <----(data via PCIe)-- / --(inference result via PCIe)--> Host SoC(OS, App, Interface, Mythic IPU Driver)
スポンサーサイト