2018年8月に開催された「Hot Chips 30」では、Armの「ML Processor(MLプロセッサ)」の中身が明らかになった。その詳細を解説する。
2018年3月に、「ArmのAI戦略、見え始めたシナリオ」という記事を書かせていただいたが、この時には内部構造が一切明らかにされなかったArm MLプロセッサの詳細が、この8月に開催された「Hot Chips 30」でArmのIan Bratt氏(Distinguished Engineer and Director of Technology, ML)によって説明された。そこで、この中身をご紹介したいと思う。
Arm MLプロセッサの基本的な特徴が図1である。
ポイントとなるのは多分、最後の"First design targers mobile"である。つまりArmはMLプロセッサを単体のIP(Intellectual Property)として提供するというよりは、Mobile SoCのアクセラレータ的に利用することを念頭に置いているということだ。実はこのマーケット、例えばQualcommはDSPベースのNPE(Neural Processing Engine)を、HiSiliconはKirin SoCにNPU(Neural Processing Unit)をそれぞれアクセラレータとして搭載しており、これの代替を狙っているのが明白である。
まずラフな内部構成が図2である。
最大16個のCompute Engineが集積され、この外側にDMA EngineとBroadcast Networkおよび、両者(とCompute Engine)を制御するControl Unitが用意されるという構成である。外部I/Fに関しては後で。恐らく、AXI程度の用意はDMA EngineないしControl Unitの中にあるのではないかという気がする。
さて設計目標はConvolution(畳み込み演算)で4TOP/sec@1GHzとあるので、Compute Engine1個当たり256Ops/CycleのConvolutionが実行できる計算になる。ターゲットが7nmで3TOP/Wとあるのは意外に控えめな感じがする。それと7nmプロセスで2.5mm2というエリアサイズはかなり大きめに感じるが、恐らくこれはCompute Engine当たり1MB(つまり16Compute Engineで合計16MB)という巨大なSRAMのためだろう。
扱うデータは8bit Integer(整数)で、これはまぁ妥当なところだろう。FPGAであれば1bitとか2bitにデータサイズを減らしても、それに合わせて内部構成を最適化することができるから、その分並列度を上げやすいが、汎用プロセッサでこれは難しい(無理に1〜2bit幅のデータ型を用意するとなると、むしろ回路構成が複雑になりすぎて無駄が多くなる)。むしろ8bit幅のまま、4TOP/secをいかに実現するかに専念した方が効果的という判断であろう。
Copyright © ITmedia, Inc. All Rights Reserved.