このページの本文へ

前へ 1 2 3 次へ

ロードマップでわかる!当世プロセッサー事情 第665回

Windowsの顔認証などで利用されているインテルの推論向けコプロセッサー「GNA」 AIプロセッサーの昨今

2022年05月02日 12時00分更新

文● 大原雄介(http://www.yusuke-ohara.com/) 編集●北村/ASCII

  • この記事をはてなブックマークに追加
  • 本文印刷

 久々にAIプロセッサーの話だ。今回はIntel GNA(Gaussian mixture model and Neural network Accelerator)の詳細を説明する。今年4月に開催されたLinley Spring Processor Forum 2022で突如インテルはGNAの詳細を説明したからだ。

 GNAそのものはIce Lakeの世代で搭載されたという話を連載525回で触れている。このGNA、最初に発表されたのはICASSP 2017なのだが、実はこの際の発表はポスター(論文をベースに発表するのではなく、要点をまとめた物を1枚のポスターにまとめて張り出す)であって、内容もあまり深い話は掲載されていない。

インテルが発表したポスター

 この時点で発表された内容をもう少し細かく説明すると、2017年時点で利用されているニューラルネットワークの中では、さまざまな特殊処理が利用されるケースが多いとされていた。具体的にはレイヤーモデル(それぞれの層を構成)では以下のものが使用される。

  • affine(アフィン変換)
  • diagonal affine(斜交アフィン変換)
  • Gaussian mixture model(混合ガウスモデル)
  • recurrent(循環)
  • convolutional1D(一次元畳み込み)
  • transpose(転置行列)
  • Interleave/Deinterleave(インターリーブ化/インターリーブ解除)

 アクティブファンクションとして以下のものが使われるケースが多い。

  • PLW(PieceWise Linear:区分線形関数)

 ところが通常のALUやFPUではこれを短いサイクルで実行できる機能はないので、これらのアルゴリズムをプログラムで処理する必要があり、これが非常に時間がかかる。

 そこで、こうした処理を専用に受け持つがGNAとなる。構造は下の画像のとおりで、各層の特徴をレイヤー・ディスクリプターに記述しておき、GNAはこれらと必要なデータ、パラメーターを読み込んで、結果を再びメモリーに返すという、典型的なアクセラレーター的な動作を行なう仕組みだ。

GNAの構造。レイヤー・ディスクリプションやウエイト、バイアスなどを格納するために専用のSRAMが必要となる

 使い方もおもしろい。GNAはIntel Deep Learning SDK Deployment ToolやDeep Learning SDK Inference Engineといったツール経由で利用する以外に、GNA native libraryで利用できるとしているのだが、そのGNA native libraryというのが下の画像だ。

こともあろうにIntel Quarkである。おそらくSIMDエンジンとは別に、制御用にQuarkが搭載されていたのだと思うが、なにもQuarkでなくても……。当時手頃なCPUが他になかったのかもしれないが、それにしてもQuarkとは……

 久しぶりに黒歴史記事を書きたくなるIntel Quarkが使われており、この上で動くRTOS(リアルタイムOS)向けのAPIと、それとは別にSIMDエンジンを直接叩けるミドルウェアAPIが用意されていたそうで、普通のアプリケーションはこのGNAxxxx()を呼び出して使う形になっていたと思われる。

 ポスターでは、このGNAを利用した際の効果として、ビデオ映像にリアルタイムで字幕を付ける処理について、GNAを併用するとCPU負荷が半分になるとしていた。

1.1GHzのAtomで100%だった負荷が50%になったという話なので、そもそもそれほど負荷が高くないという考え方もできる

前へ 1 2 3 次へ

カテゴリートップへ

この連載の記事

注目ニュース

ASCII倶楽部

プレミアムPC試用レポート

ピックアップ

ASCII.jp RSS2.0 配信中

ASCII.jpメール デジタルMac/iPodマガジン