FPGA開発日記

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

BOOM Explorerの論文を読む (2. 問題の定式化)

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

前の記事はこちら。

msyksphinz.hatenablog.com

ieeexplore.ieee.org


事前知識

RISC-V BOOMコア

BOOMはRISC-VのオープンソースアウトオブオーダCPUコアで、実用可能かつ低消費電力、組み込みアプリケーションに適している。

  • BOOMの内部構成
  • Frontend : 命令をL2キャッシュからフェッチし、命令をパックし、IDUに渡す。
  • IDU : 命令をデコードし害乙するユニットにディスパッチする。
  • EU : 命令を実行する。
  • LSU : メモリアクセスを実行する

BOOMは様々な場所がパラメタライズされている。表1.

f:id:msyksphinz:20220320010456p:plain
画像は本論文から引用

いくつかのコンフィグレーションの組み合わせは無効となり、Verilogを生成できない。

https://s3.us-west-2.amazonaws.com/secure.notion-static.com/d308d9e5-d43a-46e2-bd0c-f728985f7eae/Untitled.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Credential=AKIAT73L2G45EIPT3X45%2F20220319%2Fus-west-2%2Fs3%2Faws4_request&X-Amz-Date=20220319T160522Z&X-Amz-Expires=86400&X-Amz-Signature=82cc2b7b9d316e0bc8eb5322a9c03da8ab85e90e2061dce85fd422bebed9341a&X-Amz-SignedHeaders=host&response-content-disposition=filename%20%3D%22Untitled.png%22&x-id=GetObject

このような制約を加えた結果、有効なマイクロアーキテクチャの設計空間は$1.6\times 10^{8}$となる。

B. 定式化

  • 定義:マイクロアーキテクチャのデザイン
    • マイクロアーキテクチャのデザインとは、上記表1の組み合わせを選択することである。その組み合わせは表2の制約を満たす必要がある。
    • マイクロアーキテクチャのデザインは全体的な設計空間Dの中の機能ベクトルとしてエンコードされる。機能ベクトルは $$ x $$ として表現される。
  • 定義:電力
    • 電力は動的な消費で円力の加算地として表現される。
  • 定義:クロックサイクル

同じベンチマークを異なるコンフィグレーションで実行した場合、クロックサイクルと消費電力はトレードオフとなる関係にある。より少ないサイクル数で実行するということは、デザイン中により多くのハードウェアリソースを統合するということになり、その分消費電力を必要とする。この指標は、マイクロアーキテクチャの設計の良し悪しに影響する。消費電力とクロックサイクルを$y$と表記する。

  • 定義4 (パレート最適性)
    • 定n 次元最小化問題において、以下の場合、目的ベクトル $f(x)$ は $f(x’)$ に支配されているという。

https://s3.us-west-2.amazonaws.com/secure.notion-static.com/3cb0b7dc-24a0-456f-ad37-e3a5295fd7d6/Untitled.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Credential=AKIAT73L2G45EIPT3X45%2F20220319%2Fus-west-2%2Fs3%2Faws4_request&X-Amz-Date=20220319T160549Z&X-Amz-Expires=86400&X-Amz-Signature=5f9bdc06632cfcc52267d293072116a10990eb06c3a25c726bf090408b769684&X-Amz-SignedHeaders=host&response-content-disposition=filename%20%3D%22Untitled.png%22&x-id=GetObject

この方法では、 $$ x’ ≥ x $$ と表記する。設計空間全体において、他に支配されない設計の集合をパレート最適集合と呼び、この空間においてパレート最適を形成する。

本論文では、定義4に示した定義に関して、電力とクロックサイクルにおいて様々なBOOMのマイクロアーキテクチャにおけるパレート最適性を探索することを目的とする。電力とクロックサイクルはともに負の相関性を持っており、パレート最適性では、片方のパラメータを犠牲にすることなくもう一つのパラメータを向上させることは出来ない。結果の品質を高く保証するためには、セクション1で導入した粗粒度のシミュレーション環境を使うのではなく、商用のEDAツールとVLSIフローを用いて評価を行った。上記の定義を用いて、私たちの問題は以下のように定式化することができる。

探索空間Dを、特徴ベクトル$$x$$に関するマイクロアーキテクチャの探索空間とする。電力とクロックサイクルによって、電力―性能空間yを生成する。VLSIフローによって、電力とサイクルの空間$y$ を$x$にyyって得る。BOOMマイクロアーキテクチャの設計空間探索は、特徴ベクトルXを探索することによって、パレート最適性を探索することである。

BOOM-Explorer

A. BOOM-Explorerの概要

図2にBOOM-Explorerの概観を示す。まず、能動学習アルゴリズム MicroAL を採用し、大規模な設計空間から初期マイクロアーキテクチャのセットをサンプリングする。このステップでは、初期設計のサンプリングを導くための事前情報として、ドメイン固有の知識が使用される。次に、深層カーネル学習関数を用いたガウス過程モデル(DKL-GP)が初期セットに対して構築される。最適なマイクロアーキテクチャを探索するために,パレート超体積の期待改善度を獲得関数とし,DKL-GPモデルを代理モデルとして,多目的ベイズ最適化アルゴリズムが使用される.このプロセスにおいて、BOOM-ExplorerはVLSIフローと対話し、さまざまなベンチマークに従ってデザインの正確なパーフォーマンスとパワーの値を取得する。最後に、BOOM-Explorerの出力は、反復最適化プロセスで探索されたマイクロアーキテクチャの集合であり、その集合からパレート最適性が得られる。

f:id:msyksphinz:20220320010639p:plain

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

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

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

一つの方法としては、マイクロアーキテクチャをランダムに探索することである。これは先行研究[18][19]にて行われている。各特徴ベクトルの重要度を適切な距離測定で評価することで、Greedyサンプリングは設計選択を容易にすることができる。

さらに、直交設計 [6], [21] を用いて、設計空間に直交して分布する異種マイクロアーキテクチャを抽出し、サンプリングの精度を向上させる。しかし、上記の方法では、消費電力と性能のトレードオフに大きな影響を与える、異なるマイクロアーキテクチャの主要な構成要素を捉えることができない。

さらに、高位合成[22][23]、ディープニューラルネットワークコンパイルと展開[24]などのデザイン空間探索において、トランスダクティブ実験デザイン(TED: Transudative Experiment Design)が大きな性能改善を達成したことが報告されている。我々は、この手法をマイクロアーキテクチャの探索に初めて導入した。