1. トップ
  2. 新着ニュース
  3. IT
  4. IT総合

メモリーに演算ユニットを内蔵した新興企業のEnCharge AI AIプロセッサーの昨今

ASCII.jp / 2023年2月6日 12時0分

 今回取り上げるEnCharge AIは、創業したのが昨年2月なので、やっと1年経ったばかりというできたてホヤホヤなスタートアップ企業である。一応プロトタイプのシリコンは存在するようだが、外部に評価用チップを出荷できるような状況ではない。

 さらに言えば同社がステルスモードを抜けたのは今年1月のこと。今年1月に同社は総額2170万ドルの投資を複数のベンチャーキャピタルやファンドから受けており、これに合わせてステルスモードから抜けた格好だ。なのだが、実は同社の技術は過去6年に渡って蓄積されてきたものである。

2021年に試作したチップと思われる

 創業者はNaveen Verma教授(CEO)とKailash Gopalakrishnan博士(Chief Product Officer)、Echere Iroaga博士(COO)の3人である。Verma教授はプリンストン大のECE(Electrical and Computer Engineering)学部の教授職を現在も継続しながらEnCharge AIを立ち上げた格好だが、CPOのGopalakrishnan博士は2022年3月まではIBMのフェロー職にあり、COOのIroaga博士はIkanos CommunicationsからApplied Micro経由で、EnCharge AIに合流直前まではMACOMでVP&GM, Connectivity Business Unitというポジションにおられた。

 ちなみにApplied Microは2017年にMACOMに買収された(連載446回参照)ので、これにともなってApplied MicroからMACOMに移籍された格好だ。

長年研究してきた演算ユニット内蔵メモリーを商品化

 そんなEnCharge AIであるが、核となる技術はアナログベースのCIM(Compute-In-Memory)である。実はこれはVerma教授の研究テーマでもあり、プリンストン大でVerma教授はこの技術をずっと研究してきていた。冒頭に書いた過去6年の技術と言うのは、プリンストン大の中で行なわれてきた研究をさしている。

 実際この技術は2021年のISSCCで“A Programmable Neural-Network Inference Accelerator Based on Scalable In-Memory Computing”として発表されている。発表したのはHongyang Jia博士以下7名であるが、これはVerma教授の研究室のメンバーであり、それもあって最後に指導教官であるVerma教授も名前を連ねている。ここで研究してきた技術をベースに実製品を構築する目的で創業されたのがEnCharge AIというわけだ。

 さてそのEnCharge AIのコアであるが、先に書いたようにアナログベースのCIMである。CIMはこれまでも何度か説明してきたように、メモリーアクセスのコスト(主に消費電力)が圧倒的に低下することもあり、性能/消費電力比を引き上げるのには非常に効果的な仕組みとなっている。

 デジタルベースで言えばSamsungのPIMやSK HynixのGDDR6-AiMがそうだし、Compute-Near-Memoryで言えばCerebrasのWSEやGraphCoreのTSPやインテルの試作AIプロセッサーなど多数ある。

 ただデジタルベースでは、現実的には膨大なSRAMを搭載してここに演算ユニットを埋め込む形になるので、とにかくダイサイズが巨大化するという欠点があった(CerebrasのWSEなどその極北に位置する製品である)。

 別のアプローチが、SRAM以外のメモリーを利用する方式である。TetraMemのmemristorやNORフラッシュを使うMythicのAMPやSyntiantのNDPなどがその例で、メモリー素子を利用してそのままアナログ的に畳み込み演算をすることで高効率化を図るというアプローチだ。EnCharge AIのアプローチも、このアナログ演算に近いのだが、最大の違いはメモリスタでもNORフラッシュでもないことである。

1152個のMAC演算を一発で行なうSIMD方式

 まず基本的な構造を説明したい。ここから説明する構造は、2021年のISSCCの論文をベースとしたものなので、実際にEnCharge AIが開発しているチップとはディテールが多少異なるかもしれないが、基本的な仕組みは変わらないと考えられる。

 下の画像がチップ全体の構造である。2021年にも試作チップが紹介されているが、これはCIMA(Compute-In-Memory Array)が16個の構成である。

論文にも、この4つのCIMUの塊同士をどう接続するのか、の説明がなかった。実際にはOCNはこの2×2のCIMUだけを接続するのではなく、メッシュ式にすべてのCIMUを縦横でつなぐ(Xeon Scalableのアレである)方式なのかもしれない。そう考えた方が辻褄が合う

 この16個が4つづつの組になっており、それぞれに重みデータロード用のネットワークI/Fが搭載される。また4つのCIMUは、オンチップ・ネットワークで接続される形になっている。

 おのおののCIMUの中核はアナログベースのCIMUであるが、データを格納するためのバッファ、それと畳み込み演算の後のアクティベーションなどを行なうためのSIMDエンジンが組み合わされた格好になっている。アナログベースで計算しても、どこかでデジタルに変換する必要はあるわけで、それも含めてProgrammable Digital SIMDを搭載した格好だろう。

 また、おもしろいのは重みに関してはローカルにバッファーを持たず、CIMUアレイの外にSRAMを用意。個々のCIMUにはその重みにアクセスするためのネットワークだけを搭載していることだ。

 さてその核となるCIMAであるが、実に1152行×256列もの膨大な数の演算コアである。それぞれの演算コアは記憶を担うCL(要するにコンデンサー)と、これをアクセスするためのロジック(W/WB)から構成される。1152行ということは最大で1152個のMAC演算が一発で行なえるわけだ。

 余談だが試作プロセッサーは5mm角で、そこにCIMUが16個収まっている。大雑把に言えばこのCIMUは1個あたり1mm角程度であり、そこに29万4912個のMAC演算ユニットとメモリーが収まる計算になる。つまりメモリー&演算ユニット1つあたり、3.4μm2程度に収まる計算である。

 ちなみに製造プロセスはTSMCの16nmであり、TSMCの発表では16FFのSRAMセルサイズは0.07μm2と以前に発表があった。この0.07μm2は1bit分のサイズなので、8bit分だではそれだけで0.56μm2。ここにMAC演算ユニットを追加したら、3μm2前後になるわけで、現状はSRAMベースのCIMと同程度の効率でしかないが、これは研究用ということも考えれば十分だろう。

 さてここからが肝心な部分だ。MythicやSyntiantは、記憶素子にNORフラッシュを利用した。要するにFloating Gate Flashであるがフラッシュメモリーは基本的にシリコンの上に酸化膜で挟み込む形でフローティングゲートと呼ばれる電荷を保持する領域を構築している(詳細は連載259回参照)。

 ただこれはトランジスタなどと同じ仕組みなので、原理的にそれほど電荷の容量を大きくできない(トランジスタ層だから、高さを稼ぐのが難しい)という欠点がどうしても存在する。

 その容量が大きくできないところにいろいろ工夫をして無理やり電荷を詰め込むわけだから、当然無理が出てくる。そもそもフラッシュの場合動作温度の変動などに敏感であり、常時監視をしてパラメーターを調整したり、場合によっては再キャリブレーションをする必要がある。

 この技術そのものフラッシュメモリーでは一般的なのだが、この監視や調整/再キャリブレーションといった処理は当然デジタル的に行なうわけで、結果アナログ→デジタル→アナログの制御ループを積み重ねることになるので、無駄が多い。

 もちろんフラッシュメモリーのように大容量の記憶セルを扱うのであれば、こうした監視/制御のためのロジックは相対的に小さくなるから無視できる範囲なのだが、CIMに使うにはバカにできない。

 EnCharge AIではフラッシュの代わりに、配線層を利用してコンデンサーを構築し、ここに電荷を貯めるという形で問題を解決した。要は配線層は背も高いし面積も広くとれるので、大容量のコンデンサーを構築しやすい。これの極端な例が、インテルが10nm SuperFinで導入したSuper MIMである。SuperMIMは連載576回で説明したが、配線層の比較的上層に大容量コンデンサーを構築し、これをパスコンとして使うというものである。

各セルにはデータ量に応じた電荷を蓄えてあり、するとMythicの時の原理と同じように個々のキャパシタで乗算が行なわれ、最終的な加算は縦の列の電流の合計という形で行なわれる仕組みである

 EnCharge AIはもう少し配線層の下層にコンデンサーを構築するもので、容量もSuperMIMに比べればずっと小さいが、それでもフローティングゲートに比べれば非常に大きな容量を稼げる。

 そして容量が大きいということはSN比(信号/ノイズ比)を大きくできるということで、精度を上げる(≒データを多値化する)ことも難しくないし、補正やキャリブレーションの頻度も大幅に減らせる(=こうした回路の規模を小さくできる)ことになる。

フラッシュメモリーを使わず CMOSプロセスだけで実現できる

 小型化については実験の結果からも示されている。下の画像はテストチップおよびシミュレーションの結果である。

このSQNRの結果を見れば、商品化に際してはもっとコンデンサーの容量(=コンデンサーの占める面積)を微細化しても問題なさそうで、演算/記憶密度をさらに引き上げられそうである

 左上は、1つのコンデンサーに入力した電荷とその出力であり、きれいに直線的な関係にあることが示されている。その下の2つはADC(Analog/Digital Conversion)にかける前とかけた後の信号とノイズの関係で、非常にノイズが少ない(=入力した値をそれほど補正をかけずに出力として使える)ことを示している。

 右はActivation BitとWeight Bit(アクティベーションと重み、それぞれの精度)とSQNR(Signal-to-Quantization-Noise Ratio:量子化を行なった後の信号とノイズの比率)である。

 EnCharge AIの方法では、重みを8bit(つまり256段階)で取った場合でも、SN比が15dB(つまり信号とノイズの比が32倍弱)という、非常に大きなマージンが取れることになる。これはフラッシュベースのCIMではなかなか実現できない数値である。

 上の画像の下部の表にもあるように、TSMCの16nmで試作したチップは5mm角とそれほど大きいものではないが、重要なのはこれが組み込みフラッシュを利用しない普通のCMOSプロセスだけで実現できることである。したがって、今回はTSMCの16nmでの試作だが、この先10nm/7nm/5nmと微細化することになんの問題もない。

TSMCの16nmで試作したチップ。CIMUのサイズはおおむね1×1mm(もう少し小さいくらい)であることがわかる

 強いていうならばコンデンサーの構築に配線層を使う関係で、7nmあたりまでは微細化の効果は大きそうだが、その先は配線層の微細化が止まりかけている関係もあってそれほど効果はなさそうだが、この試作チップでは121TOPS/Wという驚異的な数字を叩き出しており、他の方式と比べても遜色ない構成であることがわかる。

下段の表の赤いのが今回の結果。従来発表されたものと比較しても非常に優秀な数字であることがわかる。また、上段左のグラフで、シミュレーションと実際のチップの振る舞いが高い精度で一致しているのも特徴的である

 ここまでの発表はあくまでも研究の枠を出ないものであったが、すでにEnCharge AIは製品化に向けての最初の試作チップを完成させており、製品化に向けて着々と進んでいる。

プロトタイプチップが搭載された評価ボードを手にするVerma教授

 この試作チップ、ずいぶん大きなものに見えるのだが、EnCharge AIのサイトに掲載された写真がこの試作チップのものだとすれば、これはPGAパッケージを使っているので極端に大きいのであって、チップそのものは相当小さいように見える。

EnCharge AIのサイトに掲載された写真。一見すると4つのCIMUを組み合わせた塊が16個(つまり全体で64 CIMU)に見えるが、この見立てが正しいかは不明。ずいぶんOCNの面積が大きくなっているようにも思える

 ちなみにこのチップは150TOP/Wを超える効率を発揮する予定、とされている。無事に製品化にこぎつけるまでにはまだいろいろ障害はあるだろうが、乗り越えてがんばってほしいところだ。

この記事に関連するニュース

トピックスRSS

ランキング

記事ミッション中・・・

10秒滞在

記事にリアクションする

記事ミッション中・・・

10秒滞在

記事にリアクションする

デイリー: 参加する
ウィークリー: 参加する
マンスリー: 参加する
10秒滞在

記事にリアクションする

次の記事を探す

エラーが発生しました

ページを再読み込みして
ください