DNAにある2つの演算ユニット
Convolution EngineとVector Engine
では、もう少し細かい話をしていこう。下の画像がConvolution Engineの内部である。要するに畳み込み演算のみに特化した演算ユニットであり、中は複数のノードから構成される。
このノードは要するに乗加算を行なう形になっており、Configuration(つまりいくつのノードを物理的に実装するか)は変更可能であるが、例えば32×32なら800MHz駆動で1.6TOPSだし、これを64×64にすれば6.4TOPS。そのエンジンを8つ並べれば52.4TOPS相当になるわけだ。
その個々のConvolution Engineの中身が下の画像だ。こちらの構成も、実はいろいろ構成可能であって、この図では6ライン分の3-wide Pipelineが2つある格好だが、このライン数やエンジンの数なども細かく変更できるのはIPベースだからで、このあたりはアプリケーション要件に応じて変更できる。
もちろん「では一番汎用的に使えるのはどんな構成?」という疑問はあるわけだが、それはEdgeCortixとご相談という話になるのだろう。
これともう1つあるのがVector Engineである。これはプーリングとアクティベーション、スケーリング(クォンタイゼーション)の機能を搭載したもので、いわゆるベクトル演算的なSIMDエンジンを想像するとやや外れることになる。
![](/img/2021/12/13/3297113/l/83cab64d558c730f.jpg)
ネットワークは段々収束していくわけで、最初の層にあわせてインターコネクトを設計すると、後の層ではインターコネクトが余るし、逆に後ろの層にあわせて設計すると前の層ではインターコネクトがボトルネックになる。なのでここをReconfigurableにするのは合理的ではある
それよりおもしろいのは、ここにシーケンサーが搭載されることだ。通常こうしたアクセラレーターの場合、それほど高速でない汎用CPUを搭載することが多い。Armで言えばCortex-A55クラスの「性能は高くないが省電力のインオーダー」プロセッサーである。
前回のEspelantoのET-SoC-1ならET-Minionベースと思われるRISC-V CPUが搭載されていた。要するに、処理に応じて処理データなりWeightデータなりをそれぞれロードしたり、あるいは演算結果をホストに返すといった処理がメインであり、こうした処理のために汎用プロセッサーが利用されるというわけだ。
これに対してシーケンサーは、処理だけ見ているとCPUに近いものではあるが「あらかじめ決められたことを、決められた順番で実施する」だけの機能しかないあたりがCPUとは異なる。
要するに、パラメーターに応じて内部で条件分岐をしながら処理する、というようなことはシーケンサーには不可能である。その代わり、CPUよりも小さな規模で実装が可能であり、また処理性能そのものはCPUよりもずっと高速に行なえる。
したがって、それこそConvolution Engineから渡されたデータをPooling Engineに渡して実行を待ち、その結果をホストに送り出すという処理はCPUよりも効率的にできる。ただ逆に言えば柔軟性はまったくないので、もう少し凝ったことをしたければ別にCPUが必要になるのだが、どうもDNAコアではそうした作業は全部ホスト側に渡すつもりらしい。
DNA IPの概要を示す記事冒頭の画像を見たときに“Instruction-DMA Engine”という表記を見て、キャッシュも持たずにDMA Engineだけが配されていることに違和感を感じたのだが、これはホスト側からAXI経由でシーケンサー用の処理コードをDMAで流し込むという動作を想定していたようだ。なかなか激しい割り切り方である。
チップの消費電力やコストの削減に効果的な
Reconfigurabilityという手法
演算ユニットはConvlution EngineなりVector Engineなりを大量に搭載すればとりあえずピーク性能は上がるわけだが、実効性能をどうやって引き上げるか? というのが次の話だ。
ここで登場するのがReconfigurabilityである。プロセッサーの演算ユニットそのものをダイナミックかつ短時間(1~数サイクル)で切り替えることで実効性能を引き上げよう、という試みはいわゆるReconfigure Processorとして知られており、連載595回でも少し触れたが、この方向性は茨の道というのも事実であり、過去多くのベンチャー企業がこれに挑戦して消えていったという話も595回で触れたとおり。
SambaNovaはまだ頑張っているので、ここがうまくいけば初めて商用的に成功したReconfigure Processorになる(ルネサスのDRPはまだ単独で成功したとは言い難いように思える)わけだが、EdgeCortixはここまでチャレンジはしなかった。
EdgeCortixがチャレンジしたのは、「配線へのReconfigure技術の適用」である。
例えばネットワークの最初の方の層を処理しているときは、すべてのエンジンを並列動作させることで処理を高速化させたいが、後ろの層になるほどデータ量が減っていくから、すべてのエンジンを同時に動かしても無駄が多い。
であれば、例えば半分あるいは4分の1のエンジンだけを後ろの層の処理に充て、残ったエンジンは次のデータの最初の層の処理に充てる、ということにすれば効率が上がり、性能向上につながる。
ただしこの場合、エンジンごと/処理ごとに「どこからデータを入力し、どこに出力するか」が変わることになる。1つのアイディアは、大容量のメモリーをどこかに置き、すべてのエンジンはそのSRAMからデータやWeightなどを取り込み、結果をまたSRAMに返すというやり方だが、これだととにかく大量のメモリーが必要になる。
SRAMだとそのエリアサイズが莫大になるからチップコストが大幅に上がるし、外部のDRAMにすると今度はそのDRAMの帯域が問題になる。
もちろんDNAコアにもある程度のSRAMが搭載されるし、外部にはLPDDR4などのメモリーをつなぐこともできるが、基本的にはすべてのエンジンとデータメモリー、ラインバッファ、出力バッファなどを相互につなぎ、あとは処理の進行に応じてどの接続をそのタイミングで有効にするか、をダイナミックに切り替えるという形でこれに対応することにしたという。
ちなみにこの再構成というか動的な変更が可能なのはインターコネクトだけでなく、メモリー自体もそうなるそうだ。
一般論としてこうした仕組みはプログラミングの難易度は上がるが、メモリー利用効率の向上は無駄に大容量メモリーを搭載することを避ける意味で効果的であり、チップの消費電力やコストの削減に効果的なだけに、このあたりは消費電力やコストの削減に舵を切ったというべきか。プログラミングに関しては、後述のMERAでカバーできる、と踏んだのだろう。
![](/img/blank.gif)
この連載の記事
-
第811回
PC
Panther Lakeを2025年後半、Nova Lakeを2026年に投入 インテル CPUロードマップ -
第810回
PC
2nmプロセスのN2がTSMCで今年量産開始 IEDM 2024レポート -
第809回
PC
銅配線をルテニウム配線に変えると抵抗を25%削減できる IEDM 2024レポート -
第808回
PC
酸化ハフニウム(HfO2)でフィンをカバーすると性能が改善、TMD半導体の実現に近づく IEDM 2024レポート -
第807回
PC
Core Ultra 200H/U/Sをあえて組み込み向けに投入するのはあの強敵に対抗するため インテル CPUロードマップ -
第806回
PC
トランジスタ最先端! RibbonFETに最適なゲート長とフィン厚が判明 IEDM 2024レポート -
第805回
PC
1万5000以上のチップレットを数分で構築する新技法SLTは従来比で100倍以上早い! IEDM 2024レポート -
第804回
PC
AI向けシステムの課題は電力とメモリーの膨大な消費量 IEDM 2024レポート -
第803回
PC
トランジスタの当面の目標は電圧を0.3V未満に抑えつつ動作効率を5倍以上に引き上げること IEDM 2024レポート -
第802回
PC
16年間に渡り不可欠な存在であったISA Bus 消え去ったI/F史 -
第801回
PC
光インターコネクトで信号伝送の高速化を狙うインテル Hot Chips 2024で注目を浴びたオモシロCPU - この連載の一覧へ