FPGA開発日記

カテゴリ別記事インデックス https://msyksphinz.github.io/github_pages , English Version https://fpgadevdiary.hatenadiary.com/

BOOM Explorerの論文を読む (3. 問題の形成)

BOOM Explorerという論文を読んでいる。ずいぶん時間が空いたが続き。VLSIの最適化された設計空間を探すのは時間がかかって大変。どうやって適切な探索空間を見つけだすかが問題となる。

読み進めていくと定式化のためにかなり複雑なことをしている。マイクロアーキテクチャの論文でこんなに数式にお目にかかるとは思ってもいなかった。

前の記事はこちら。

msyksphinz.hatenablog.com

ieeexplore.ieee.org


B. マイクロアーキテクチャを考慮したアクティブラーニングアルゴリズム

VLSIフローは時間がかかるため、限られた数のデザインのみを合成して電力と性能を調査する。初期化時の2つの原則として、

  1. 特徴ベクトルは設計空間全体をカバーする必要がある
  2. その特徴ベクトルはデザイン空間の特徴を完全に表現されていなければならない

方法1. マイクロアーキテクチャをランダムに探索する(Greedyサンプリング)。先行研究[18][19]。かく特徴ベクトルの重要度を評価することで設計選択を容易にする。

方法2. 直交設計を用いる方法[6][21]。設計空間に直行して分布する異種マイクロアーキテクチャを抽出し、サンプリングの精度を向上させる(弱点あり?)消費電力と性能のトレードオフに大きな影響を与える。

方法3. 高位合成[22][23]、ディープニューラルネットワークコンパイルと展開[24]などのデザイン空間探索において、トランスダクティブ実験デザイン(TED: Transudative Experiment Design)が大きな性能改善を達成したことが報告されている。この方法を使った。

transductive : 漏出性?

TEDは、設計空間全体から最も多くの情報を保持するために、特徴空間に広がることができるマイクロアーキテクチャを選択する傾向がある[16]。TEDでは、新たにサンプリングしたデザインとサンプリングしていないデザインの距離行列を繰り返し最大化することで、相互発散の大きい代表的な特徴ベクトルのプールを獲得することができる。アルゴリズム1はTEDのバックボーンを示しており、fは距離行列Kを計算する際に使用する距離関数を表している。fは距離行列Kの計算に用いる距離関数を表し、任意の適切な距離関数を無制限に適用できることに注意。

TEDの設計にはマイクロアーキテクチャの事前知識を埋め込むことができない。このため良好な初期データセットを生成することを完全に保証することはできない。このため、TEDの性能を向上させるためにマイクロアーキテクチャの知識を埋め込んでいく必要がある。

例えば、 DecodeWidth は、対応するマイクロOpcodeとして同時にデコードされる命令の最大数を決定する。その結果、EUとLSUの実行帯域幅(クロックサイクルあたりの実行命令数)に影響を与えることができる。 DecodeWidth に大きな候補値を割り当て、バランスよくハードウェア資源を割り当てることで、より大きな性能向上が期待できる。一方、消費電力は大幅に増加する。

そこで、まずは DecodeWidthクラスタリングをすることを考える。図3DecodeWidthクラスタリングした場合のクロックサイクル性能と消費電力の関係性を表現しており、各クラスタにおいて同様の電力、性能特性を達成していることが見て取れる。

f:id:msyksphinz:20220322221747p:plain

クラスタ内では、初期データセットを拡大するために、重心(centroid)を選択するという単純な方式ではなくAlgorithm1を適用している。

f:id:msyksphinz:20220322221805p:plain

DecodeWidthを用いたクラスタリングは、TEDとともにMicroALを形成し、その疑似コードはAlgorithm 2に詳述されている。

f:id:msyksphinz:20220322221826p:plain

まず、DecodeWidthの次元に沿ってより高いペナルティを持つ距離関数であるΦに従って、設計空間全体をクラスタリングする。一つの可能な代替案は、Φ = (x i - c j ) T Λ(x i - c j ) であり、i ∈ { 1, - - , |U|} と j ∈ { 1, - - , k } とすることができる。ここで、Λはあらかじめ定義された対角重み行列である。次に、各クラスタに対してTEDを適用し、最も代表的な特徴ベクトルをサンプリングする(Algorithm 2の9行目)。最後に、サンプリングされたすべてのマイクロアーキテクチャを含む、初期データセットが形成される。(うーんようわからん

ガウス過程を用いたディープカーネル学習

初期のデータセットでは、まだデザイン空間の特性を完全に把握する信頼性の高いモデルを構築することは困難である。

しかし、ガウス過程(GP)モデルには頑健性とノンパラメトリックな近似の特徴があるため、様々な領域で応用されている[24]-[26]。BOOM-Explorerガウス過程モデルに基づく学習を行った。

特徴ベクトル $X = { x_1, x_2,\cdots x_n }$ があり、それらが対応する電力またはクロックサイクルの集合 $y = { y_1, y_2 ,\cdots, y_n }$ をインデックスしていると仮定する。GP は,値関数 f に対して $f(x) \thicksim GP(\mu, k_θ )$ のような事前分布を与える。ここで,$\mu$ は平均値,カーネル関数 k は θ でパラメータ化される。

f:id:msyksphinz:20220322221856p:plain

ここで、$K{XX|\theta}$ は全特徴ベクトル間の共分散行列で、$\left[K{XX|\theta}\right]{ij} = k\theta (x_i, x_j )$ により算出される。異なるマイクロアーキテクチャ設計によって発生する電力やク ロックサイクルの不確実性をモデル化するために、ガウスシアンノイズ $N(f(x), \sigma2_e )$ が必要である。したがって,新たにサンプリングされた特徴ベクトル x ∗ が与えられれば,y に依存する予測結合分布 $f_∗$ は,式(3)により算出できる。

f:id:msyksphinz:20220322221918p:plain

GPの周辺尤度を最大化することで、θは設計空間全体を感知するように最適化される。しかし、GPの性能は通常、カーネル関数k θ、例えば、放射状バイアス関数などの表現力とハイパーパラメータに依存する。したがって、GP の性能には、適切なカーネル関数が必要である。

近年、ディープニューラルネットワーク(DNN)は、有用な特徴を抽出するブラックボックスモデルとして、様々なアプリケーションやタスクにおいて大きな可能性を示している[27]-[29]。このように、DNNをカーネル関数のメタ学習器として用いることで、カーネル関数のハイパーパラメータのチューニングにかかる作業負荷を軽減することができる。また、多層非線形変換と重みを利用して、式(4)[30]でカーネル関数を較正することにより、ディープカーネル関数はより良い性能を提供することができる。

f:id:msyksphinz:20220322221939p:plain

式(4)のφはDNNが積み重ねた非線形変換層、wはDNNの重みを表す。DNN の表現力によって強化された DKL-GP を構築し、代用モデルとしてベイズ最適化へプラグインする。