Habana LabsのGoyaとGaudi

Habana Labsも1億2000万ドルという多額のベンチャー資金を集めたスタートアップで、Inference用の「Goya」というチップとTraining用の「Gaudi」というチップを開発した。Goyaはすでに出荷を開始しており、Gaudiの方は6月に発表を行ったが、学会発表という点では、今回のHot Chipsが最初である。

  • Habana Labs

    Hot Chips 31でHabana LabsのGoyaとGaudiを発表するChief Business OfficerのEitan Medina氏

次の表に示すように、学習と推論では要件が異なる。学習では所要時間が長いので、学習時間が短いことが重要である。一方、推論では、一定の時間にどれだけの推論をこなせるか、また、リアルタイムに推論結果を提示する必要がある場合は、推論にかかる時間が問題となる。学習では多くのメモリが必要であるが、推論の場合は、それほどのメモリは必要でない。

学習は計算量が多いのでスケールアウトで、数百台のアクセラレータを使うことも珍しくないが、推論ではスケールアウトはほとんど必要ない。そして、学習は浮動小数点(FP)演算を使うが、推論は整数演算と浮動小数点演算の両方が用いられる。

  • Habana Labs

    学習と推論での性能、メモリ容量、スケールアウト、データタイプに対する要件 (出典:この連載のHabana Labsに関する部分のすべての図はHabana LabsのEitan Medina氏の発表スライドのコピーである)

このように、学習と推論では要件が大きく異なるので、Habana Labsでは、推論用にはGoyaというアクセラレータを開発し、発売を行っている。そして、学習用には、Gaudiというアクセラレータを開発した。Gaudiは現在、サンプル提供中である。

  • Habana Labs

    学習と推論ではこの表のように、計算に対する要件が異なる。このため、Habana Labsは推論用としてGoyaを作り、学習用にはGaudiを作っている。左はGPUのようなPCIカード型のGoya。右はメザニンカード型のGaudi

Goyaは、テンソル演算(TPC)、行列積演算(GEMM)とDMAの3つのエンジンを持つヘテロジニアスな計算アーキテクチャとなっている。任意のアドレスストライドでメモリをアクセスする機能を持ち、テンソルのインデックスでアクセスすることもできる。メモリはDDR4が2チャネルで、40GB/sのバンド幅である。I/OはPCIe4.0のx16を備えている。

  • Habana Labs

    Goysプロセサのアーキテクチャ。テンソル計算のTPC、行列積のGEMM、データ転送のDMAの3つのエンジンを持つヘテロジニアスアーキテクチャ。メモリはDDR4 2チャネルで、バンド幅は40GB/s

表に示すように、FP32でResNet-50を計算するとAccuracyは75.7%であった。GoyaでINT8で計算するとAccuracyは75.3%で、FP32の場合と比較すると0.4% Accuracyが低下しているが、この精度の低下は小さく無視できるものである。そして、GoyaでINT16で計算するとAccuracyは75.7%となり、INT16では精度の低下は発生しない。

  • Habana Labs

    ResNet-50をFP32で計算した場合のAccuracyは75.7%であった。これに対して、Goyaでint8で計算するとAccuracyは75.3%で0.4%低下した。しかし、これは僅かなロスである。Goyaでint16で計算した場合はロスは発生しなかった

Habana Labsのソフトウェアの構成とツールは次の図のようになっている。Habana LabsのSynapseAIはGraph コンパイラを含み、Habanaのライブラリとユーザ作成のライブラリを追加するオープンツールチェーンで構成されている。TensorFlowやPYTORCH、Caffe2などで記述されたモデルをコンパイルして実行モジュールを作成する。

  • Habana Labs

    Habana Labsのソフトウェアツールの階層構造

次の図はResNet-50でのCPU(Intel Xeon 8180)、GPU(NVIDIA T4)とGoyaの推論性能を比較したものである。CPUは1,255イメージ/秒、T4 GPUは4,944イメージ/秒の処理性能であるが、Goyaは15,393イメージ/秒とCPUと比べると12倍、T4 GPUの3倍強のスループットであり、1.01msという短レーテンシで認識できている。

  • Habana Labs

    ResNet-50でのイメージ認識のスループットとレーテンシ。Goyaは15,393イメージ/秒で、CPUの12倍、GPUの3倍強の性能である。また、レーテンシも1.01msで非常に速い

言語解析のBERTであるが、Goyaは、BERTで使われているすべてのオペレータをネーティブにサポートしている。特に、非線形の関数もハードウェアでサポートされている。

BERTの実行のうちの行列積の計算はint16で行い、層ごとの正規化などはFP32で行っている。この方法では、FP32 で学習したモデルと比較したロスは最大0.11%と非常に高い精度が得られた。

  • Habana Labs

    Goyaは言語解析のBERTのすべてのオペレーションをネーティブにサポートしている。GEMMはint16で計算し、層ごとの正規化などはFP32で計算している。このやり方で、すべてFP32で計算した場合と比べて僅か0.11%のロスの増加となっている

NVIDIA T4 GPUとGoyaのBERTでの推論性能の比較を次のグラフに示す。横軸は処理速度で、単位は文/秒である。Batch=12の場合、Goyaは毎秒1,273文/秒で処理したのに対して、T4は736文/秒と60%弱の性能である。また、Goyaのレーテンシは9.4msに対してT4は16.3ms掛かっている。

Batch=24では、Goyaの性能は20%程度向上しているがT4ではほとんど性能向上が無いので、GoyaとT4の性能の差が開いている。また、 Batch=24の場合はGoyaのレーテンシは1.7倍になったが、T4のレーテンシははぼ2倍であり、T4の方がレーテンシがより長くなっている。

  • Habana Labs

    BERTでの文章解析の性能のGoyaとNVIDIAのT4 GPUの比較。Batch=12ではGoyaは1.7倍の性能である。Batch=24では約2倍の性能になっている

(次回は9月20日に掲載します)