ICEはINT8でのMACを4000個搭載している。そして、FP16とINT8、INT4/2/1での演算ができる。さらに、ReLUなどの非線形演算やPoolingもサポートしている。Spring Hillは、これに加えてVP6 DSPを搭載している。DSPのベクトルプロセサは512ビットのデータを5命令のVLIWで実行できる。そして、DL Compute Gridが扱えない浮動小数点などの演算を分担する。

ICEは、ディープラーニングに最適化した専用のDMAを備えている。このDMAは、圧縮、伸長もサポートしている。そして、ICEは4MBという大容量のローカルSRAMを持っており、頻繁にアクセスするデータをこのローカルメモリに入れて高速にアクセスすることが可能になっている。

  • Intel

    ICEはML計算を行うDL Compute Engineと汎用の数値計算を行うVP6 DSPを持っている。それに4MBのローカルSRAMが付き、ML計算に適した多次元のアドレスを行うDMAを持っている

DL Compute Gridと書かれた次の図が、マシンラーニング(ML)計算を行う部分である。この計算の中心はProcessing Units/Arrayと書かれた部分で、4000個のMAC演算器のアレイである。そして演算器アレイに重みデータを供給するWeight Memoryがあり、もう一方のオペランドはInput Memoryから供給される。

下側には、演算結果を格納するOutput Register Fileが付いており、その下にはPost Processingを行うユニットが付いている。

DL Compute Engineと書かかれた部分はコントローラで、ディープラーニングでテンソルをアクセスするのに必要となる5次元のストライドのDMA機能が実装されている。

また、Algorithm Controllersと書かれている部分は、メモリアクセスのアドレスなどを決めるアルゴリズムをフレキシブルに変更する機能などを持っていると思われる。

これらの機能を使ってC=128 、K=128で1×1のコンボリューションの計算を行った場合は、計算効率~95%が得られるとのことである。

  • Intel

    ML演算部はProcessing UnitとInput Memory、Weight Memory、それにOutput Register Fileで構成されている。ML計算の多次元テンソルをアクセスするため5次元のDMA機能を持つ

ベクタ処理エンジンはTensilicaのVision P6 DSPを使っている。このベクトルプロセサは5命令を纏めて発行するVLIWになっており、512bit長のデータを扱う。P6 DSPは2つのベクタロードポートを持ち、飛び飛びアクセスのスキャッタ/ギャザーをサポートしている。そして、扱えるデータ型はINT8、16、32とFP16である。

なお、Full Bi-directional Pipelineについては、念のために会場での発表を録音したデータを聞き直してみたがまったく触れられておらず、良く分からない。

  • Intel

    ベクタエンジンはTensilicaのVision P6 DSPを使っている。5命令をひとまとめにしたVLIWプロセサで、512ビット長のデータを扱う。スキャッタ/ギャザーをサポートし、飛び飛びのメモリアクセスが可能

次の図の左側の図はメモリの階層を示すもので、各レベルのメモリのバンド幅を示している。外付けのDRAMのバンド幅を1xとすると、Spring Hillチップに内蔵されている24MBのLLCは~10xのバンド幅があり、ICEに存在する4MBのDeep SRAMや3MBのSPメモリはほぼ~100xのバンド幅がある。そして、DL Compute Gridに入っているProcessing Unitに直接接続されている1.5MBの重みメモリや384KBの入力メモリ、3MBの出力メモリには~1000xのバンド幅を持たせている。

右側の図は24MBのLLCの接続を示す図で、IAコアとICEの配置、8個の3MBのLLCスライスの配置を描き、LLCのスライスが逆方向の2つのリングバスで接続されていることを示している。ICEの角にあるRSはリングバスに接続するRing Stopであろう。

Intelのリングバスはコヒーレンシを取っており、24MBのLLCはIAコアやICEから見ると共有メモリとなっている。

  • Intel

    左はSpring Hillのメモリ階層と各メモリのバンド幅を示す図。右はチップの概略のレイアウトを示し、24MBのLLCを接続するリングバスを示す図

ちょっと難しい図であるが、Spring Hillの持つ各種のリソースを柔軟性の高い順に並べた図で、それらがどの処理レイヤーを担当しているかが右横に書かれている。

最上位はXeonホストで汎用のプロセサでML処理もやれるがSpring HillのML処理とは直結していない。NNP-IのIAコアは、各種のコントロールや例えばJPEGイメージのデコードなどML処理以外の処理を担当する。このIAコアは普通のIAプロセサであり、プログラムが容易で、同一チップに収容されているので上下のレイヤーと短レーテンシで通信が行なえる。

NNDMAやLLCはデータの並べ替えや圧縮などを行い、演算のためのデータを用意する。DSPのベクタユニットは、主に数値演算を担当する。そして、DL Compute Gridが畳み込みなどの演算やプ―リングなどのDL演算を行う。

  • Intel

    各階層の処理エンジンと主な分担を示す図である。NNP-IのIAコアは全体の制御やMLとは別の処理を担当する。DMA&LLCはデータの準備を行う。ベクタプロセサはML計算以外の汎用の数値計算を分担し、DL Compute GridはINT8でのML計算などを実行する

Spring HillのResNet-50でのイメージ認識の性能は、360イメージ/秒/Wである。これは最低電力の10Wでの動作であるので、毎秒3600フレームの認識ができるという性能である。次の図の右側の図はCompute Gridの演算器だけでは処理性能は2520FPS(Frame per Second)であり、分散型のローカルメモリを付加すると2725FPSに上がり、コントローラの最適化で2950FPSになり、ハードウェアによる同期機構の付加で3280FPSになり、Elementwiseの演算、非線形、Maxpoolなどの層の処理を融合することで3600FPSまで向上させたとのことで、いろいろな改善の積み上げで4.8TOPS/Wという開発目標を達成したという。

ICEコアを2個使用した場合と比べて、12個使用すると5.85倍の性能とのことで、ICEコアの数と性能は、ほぼリニアに比例している。

また、マシンラーニングの標準ベンチマークとして開発されているMLPerf0.5の結果をMLPerfに提出する予定であり、遠からず公開されるはずである。

  • Intel

    ResNet-50の実行で、10Wの消費電力で3600フレーム/秒の処理を達成した。右の図のように色々な改善の積み上げでこの性能を実現している。この結果,4.8TOPS/Wという目標を達成できた。2ICEに比べて12ICEでは性能が5.85倍になり、ほぼリニアにスケールしている。MLPerf0.5のベンチマーク結果を提出する予定であり、遠からず公表されるはずである

まとめであるが、Spring Hillは、データセンタ向けの推論ワークロードに対して、最高の性能/電力を持ち、広い範囲の消費電力でスケールした性能が得られる。また、高いプログラム性を持っている。

Spring Hillはすでに採用を決定した顧客が付いており、この次の世代の推論エンジンの開発に着手している。さらにその次の世代も計画しているとのことである。

  • Intel

    Spring Hillは、データセンタ向けの推論ワークロードに対して、最高の性能/電力を持ち、広い範囲の消費電力でスケールした性能が得られる。また、高いプログラム性を持っている