コンテンツにスキップ

データフローアーキテクチャとは

データフローアーキテクチャとは、命令を1つずつ取り出して実行するかわりに、データの流れそのものが計算を進める組み立て方です。 中間の結果をメモリへ戻さず隣の演算器へ手渡すことで、運ぶ電力と時間を削ります。効率を決めるのは、流す計算の形と経路の形が合うかどうかです。合わせ方には、経路を動作中に組み替える方式と、種類の異なる演算器を並べて選ぶ方式があります。

中間結果を隣へ手渡せば、メモリとの往復が減る

Section titled “中間結果を隣へ手渡せば、メモリとの往復が減る”
中間結果の行き先
演算ごとに実行演算A演算B演算Cメモリ中間結果がメモリを往復データフロー演算A演算B演算Cメモリ中間結果を隣へ手渡すメモリとの往復が減る順に実行する演算器流れでつないだ演算器メモリ
演算ごとに実行すると中間結果がそのたびにメモリを往復し、データフローでは隣へ手渡すので、メモリとの往復が減ります。

命令を順に実行する形では、演算のたびに命令を取り出し、レジスタやメモリとやり取りします。命令を順に追う形ならどんな計算でも書けますが、同じ形の演算を大量に繰り返す推論では、命令を取り出す手間と中間結果の往復が重なります。データフローでは演算器を経路としてつなぎ、結果を隣へ手渡しながら進めるので、中間の結果をメモリへ返す回数が減ります。代表的な流れの形がシストリックアレイです。

製品の例に、SambaNovaのRDU(Reconfigurable Dataflow Unit)があります。同社は、RDUではデータがAIの演算から次の演算へ組み立てラインのように流れるとしています1。演算を1つずつカーネル単位で回すのではなく、PCUとSRAMのPMUを格子状に並べて流れを組みます。ある演算を計算している間に次の演算のデータを並行して取り込み、途切れない流れ作業にします。SambaNovaは、チップ上でメモリと演算を並列に置くことで中間の活性化値をすべてチップ内にとどめ、不要なデータ移動を大幅に減らすとしています。同社はさらに、3層の構成で複数のモデルを載せたまま切り替えて動かせるとしています。

経路を動作クロックごとに組み替え、必要な回路だけを動かす

Section titled “経路を動作クロックごとに組み替え、必要な回路だけを動かす”

固定の経路なら速く動きますが、合う相手はその形のネットワークに限られます。動的再構成は、回路の結び方を動作中に組み替えてこの固さを緩めます。NEDOの発表によると、動的再構成プロセッサー(DRP)はチップ内の演算器の回路接続構成を処理内容に応じて動作クロックごとに切り替え2ながらアプリケーションを実行し、必要な演算回路だけが動くので、消費電力が小さく高速化もできます。クロックの1拍ごとに経路の形が変わる点が、固定経路との違いです。

このDRPと積和演算ユニット(AI-MAC)を一体化したものが、AIアクセラレーターのDRP-AIです。積和演算を流す経路そのものを、処理に合わせて組み替えられます。

不規則な枝刈りでも演算を飛ばせるのが、組み替えの効きどころ

Section titled “不規則な枝刈りでも演算を飛ばせるのが、組み替えの効きどころ”
枝刈りとスキップ
枝刈り後の演算演算量を90%削減残る演算は不規則に散らばるDRP-AIが飛ばす実行する演算だけ最大10倍の高速化1W当たり最大10TOPS認識精度の低下は3%程度
枝刈りで演算量を90%削った後に残る演算は不規則な位置に散らばり、DRP-AIは飛ばす演算を回路の切り替えでスキップして、残りだけを処理します。

推論を軽くする手段に、認識精度に影響の小さい演算を削る枝刈りがあります。NEDOの発表は、AIモデルの中で認識精度に影響のない演算は不規則に存在するのが一般的で2、ハードウェア処理の並列性と枝刈りの不規則性に差があるため効率よく処理できないことが大きな課題だったとしています。

DRP-AIは、動的な回路切り替えの柔軟性を使い、枝単位できめ細かく枝刈りした場合でも演算を効率よくスキップします。NEDOは、演算量を最大90%削減する枝刈り率のモデルで、従来技術に比べ最大10倍の高速化を実現し、1W当たり最大10TOPSの電力効率を達成したとしています2。この性能は10分の1に軽量化された畳み込み層で測った値で、流す計算の形に合わせて経路を組み替えた結果です。モデルにもよりますが、演算量を90%削減しても認識精度の低下は3%程度にとどまったとされています。

DRP-AIの成果は、計算の形が不規則になる枝刈りのモデルで示されています。

種類の異なる演算器を1つのチップに並べ、設計期間を短くする

Section titled “種類の異なる演算器を1つのチップに並べ、設計期間を短くする”

もう1つの合わせ方は、方式の違う演算器を並べて載せ、計算ごとに向くものを使う構成です。産総研などの実証チップAI-OneはCMOS 28nmプロセスで作られ、6種類の独自AIアクセラレータを搭載しました3。CPUは800MHzで動作し、LPDDR4メモリでフルバンド幅24.8GB/sの設計どおりのデータ転送を確かめました。PCIe Gen3 8Gbpsでの通信、QSPI 25MHzでのブート、室温下8時間の動作も確認しています。

AI-Oneの設計期間は従来比45%以下になったとされています3。開発にはNEDO・産業技術総合研究所・東京大学と5社が関わり、複数の設計資産を組み合わせました。方式を並べて載せる構成では、1つずつ設計するより組み合わせる力が要るため、設計期間そのものがこの構成の指標になります。

流れを組むほど効率は上がり、組み替えの負担が増える

Section titled “流れを組むほど効率は上がり、組み替えの負担が増える”

データの流れを組めば、中間の結果を運ぶ回数が減って電力効率が上がります。その代わり、流す計算の形が変われば経路を組み替えることになります。動的再構成を入れれば柔らかくなるものの、組み替えの回路と時間を抱えます。方式を並べて載せれば用途の幅が広がりますが、面積と設計の手間が増えます。どの方式を選ぶかは、流す計算の形がどれだけ決まっているかで決まります。

データフローアーキテクチャとは何ですか?

命令を1つずつ取り出して実行するかわりに、データの流れそのものが計算を進める組み立て方です。演算器を経路でつなぎ、結果を隣へ手渡しながら進めます。

何が良いのですか?

中間の結果をメモリへ戻さずに隣の演算器へ渡せるため、運ぶ電力と時間が減ります。1つの演算を計算している間に次の演算のデータを並行して取り込めば、流れ作業のように途切れずに進みます。

実際の例はありますか?

AIアクセラレーターDRP-AIは、動的再構成プロセッサー(DRP)と積和演算ユニットを一体化しています。SambaNovaは、自社のRDUでデータがAIの演算から次の演算へ組み立てラインのように流れるとしています。

動的再構成とは何ですか?

回路の結び方を動作中に組み替える仕組みです。DRPは演算器の接続を処理内容に応じて動作クロックごとに切り替え、必要な演算回路だけを動かします。

電力効率はどのくらいですか?

DRP-AIは1W当たり10TOPSで、従来技術と比べて最大10倍の電力効率を実現したとされています。演算量を最大90%削減する枝刈りをしたモデルでの値で、モデルにもよるものの、認識精度の低下は3%程度にとどまったとされています。

1つの方式で足りますか?

実証チップAI-Oneは、6種類の独自AIアクセラレータを1つのチップに並べて搭載しました。設計期間は従来比45%以下になったとされています。

メモリの帯域も要りますか?

要ります。AI-Oneでは、LPDDR4メモリでフルバンド幅24.8GB/sの設計どおりのデータ転送を確かめました。

3件を表示
  1. 1
  2. 2
  3. 3