FPGA開発日記

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

CARRV 2021の発表論文概観 (2)

ISCA 2021と併設されているCARRV 2021の論文が公開されている。25本近くの論文が公開されているのですべてを読むことは出来ないので、とりあえずカテゴリ別にAbstractだけ読んで日本語にしてみることにした。 今回は後半。

carrv.github.io


シミュレーションと検証セッション

  • RISC-Vのフルシステムシミュレーションをgem5でサポート

RISC-V ISAとそのエコシステムは、産業界と学術界の両方でますます人気が高まっています。gem5は、コンピュータ・アーキテクチャ研究のための強力なシミュレーション・プラットフォームとして広く使用されています。これまでの研究では、シングルコアおよびマルチコアのRISC-Vサポートをgem5に追加してきましたが、システムコールのエミュレーションにとどまっていました。一方、gem5のフルシステム・シミュレーションは、gem5でモデリングされたハードウェア・プラットフォーム上に実際のシステム・ソフトウェアをロードして実行することで、システムの正確な解析を可能にします。 しかし、RISC-V ISAに対するgem5のフルシステム・シミュレーションのサポートは現在のところありません。

この論文では、RISC-Vのフルシステム・シミュレーションをgem5でサポートするための最近の研究成果を紹介します。拡張可能なターゲット・システムをサポートするための実装の詳細と、主要な課題を克服するためのデバッグ手法について説明した後、フルシステム・シミュレーションの実験結果を紹介します。

古システムエミュレーションというのはSoCレベルでのデバイスを含めた全シミュレーションということだろうか?

RISC-Vシステムへの関心が高まり、カスタマイズされたハードウェア・アーキテクチャーを作成する無限の可能性がある中、再構成可能なIoT(Internet of Things)ローエンド機器向けの初のオープンソース・アグノスティック・ハードウェア・オペレーティング・システム(OS)フレームワークであるChamelIoTの最初の概念実証(PoC)の実装を紹介します。現段階では、ChamelIoTは、Rocket Custom Co-Processor Interface(RoCC)を活用して、3種類のOSのスレッド管理とスケジューリングをハードウェアアクセラレーションでサポートしています。RIOT、Zephyr、そしてFreeRTOSです。本論文では、ChamelIoTアーキテクチャ全体の概要と、現在のPoC展開における実装の詳細について説明します。我々の最初の実験はXilinx Arty-35T FPGA Evaluation kitで行われましたが、その予備的な結果は非常に有望で、望ましい不可知論と柔軟性が、決定性と性能上の利点を伴って、ハードウェア資源の妥当なコストで達成できることを示しています。

RoCCを使ったIoT向けのオープンソースOSを設計するということ?

  • RISC-Vコア開発のための柔軟なアンコア・インフラストラクチャ

RISC-Vのオープン性、柔軟性、モジュール性は、コンピュータ・アーキテクチャ研究における新たな開発の扉を開きます。また、同じ特性を持つRISC-Vは、特にFPGAベースのラピッドプロトタイピングと組み合わせることで、学生が独自のコアデザインを実装する際の参入障壁を下げることができるため、教育やコンピュータ・アーキテクチャ教育にとっても非常に魅力的です。しかし、キャッシュ、メモリ一貫性モデル、デバッグプロトコル、制御プロトコルなどの周辺環境の開発が複雑で、コア自体の設計能力を損なうことが多いという大きな課題が残っています。

この課題を解決するために、私たちはFPGAをターゲットとした柔軟なアンコア・インフラストラクチャを提案します。このインフラストラクチャは、可能な限りのRISC-Vコア設計を実装、テスト、使用するために使用できます。このアンコア・インフラストラクチャは、RISC-Vのメモリ・セマンティクスに適合したマルチコア・サポートのための設定可能なキャッシュとメモリ階層を含んでおり、性能指標やデバッグ情報の収集を簡素化するための容易に適応可能な通信プロトコルを備えています。このアプローチにより、性能重視のコアとキャッシュコヒーレントなマルチコアシステムの両方を、対象となるFPGAに最小限のリソースしか必要とせずに開発できることを示しています。また、コア設計者は設計の本質的な部分に集中することができ、研究者や学生にとっても魅力的なフレームワークとなっています。私たちはこのフレームワークを1年生の学士課程で使用し、成果を上げています。

周辺システムを含めた学生向けのUncoreインフラストラクチャの構築。

  • rtlv: ハードウェア上のソフトウェアのプッシュボタン検証

この論文では、ハードウェア上で何サイクルも実行されるソフトウェアの特性を、プッシュボタンで形式的に検証するアプローチであるrtlvを紹介します。例えば、rtlvは、ブートコードを実行するとプロセッサのマイクロアーキテクチャの状態が既知の決定論的な値にリセットされることを証明するために使用することができます。

rtlvは、2つの重要なアイデアにより、多くのサイクルの回路実行に関する推論を扱うことができます。第一に、rtlvはハイブリッドシンボリック実行を用いて、シンボリック値を持つ回路の推論を行い、シンボリック表現の複雑さを最小限に抑えています。第二に、rtlvは、パフォーマンス・ヒント・インターフェースを備えた再利用可能な回路に依存しないプロパティ・チェッカーの開発を可能にし、開発者は、証明が正しいという信頼性を維持しながら、検証パフォーマンスを最適化することができます。

rtlvを使って、小型(1,300フリップフロップ)のRISC-V SoCの状態消去特性を正式に検証すると、わずか1.3秒で終了します。一方、オープンソースの人気検証ツールであるSymbiYosysは12時間以内に終了することができませんでした。別のケーススタディでは、rtlvは4,300個のフリップフロップを持つ大規模なRISC-V SoCに拡張され、この状態クリア特性を検証するためには、ハードウェア上で実行されるソフトウェアの2万サイクル以上をモデル化する必要があります。rtlvを用いた形式検証では、ベースラインのハードウェアにおけるこの特性の違反を発見して修正することができ、rtlvがバグの発見に有効であることが実証されました。

ふーむ、検証環境の話なんだろうが、良く分からない。ちゃんと論文読んでみよ。

設計セッション2

  • 高度な再構成可能SIMD命令を探求するためのRISC-V ISAの拡張

本論文では、ソフトコアにおけるカスタムSIMD命令を検討するための、新しい非標準的なベクトル命令タイプのセットを紹介します。この新しいタイプは、比較的多くのオペランドへの同時アクセスを可能にし、必要に応じて命令数を減らすことができます。さらに、オープンソースの高性能なRISC-V(RV32 IM)ソフトコアを導入し、カスタムSIMD命令の検討やストリーミング性能の向上に最適化しました。HDL/Verilogによる命令開発のための命令テンプレートを提供することで、効率的なFPGAベースの命令を少数の低レベルコードで開発することができます。カスタムSIMD命令の性能を向上させるために、ソフトコアのキャッシュ階層は、最終レベルのキャッシュに非常に広いブロックを使用するなどして、帯域幅を最適化しています。このアプローチは、FPGA上のメモリ集約型アプリケーションの例で実証されています。今回の研究はソフトコアをベースにしていますが、その目的は、再構成可能な領域を備えた将来のCPUにカスタム命令として搭載可能な高度なSIMD命令を実験する手段を提供することにあります。最後に、このような将来のマイクロアーキテクチャーの課題と有効性について、いくつかの洞察を示します。

ふーむP拡張ではダメだったということなんだろうか?

科学的計算の急速な発展に伴い、ますます多くの研究者や開発者が、様々なデバイス上で様々なワークロード/操作を実装することに尽力しています。これらのデバイスの中で、NVIDIA GPUは、その包括的なドキュメントと優れた開発ツールのため、最も人気のある選択肢となっています。その結果、高性能なCUDAコードを手書きするためのリソースが豊富にあります。しかし、CUDAは主に商用製品のみでサポートされており、オープンソースのH/Wプラットフォームへのサポートはありませんでした。RISC-Vは、その洗練されたデザインとオープンソースライセンスにより、ハードウェアISAとして最も人気のある選択肢です。本プロジェクトでは、これらの既存のCUDAコードをRISC-Vデバイスで利用することを目指しています。具体的には、RISC-V GPUアーキテクチャ上でCUDAソースコードを実行できるパイプラインを設計・実装します。その結果、マルチスレッドやアトミック命令など、いくつかの重要な機能を持つCUDAカーネルRISC-V GPUアーキテクチャ上で実行することに成功しました。

まず、RISC-V GPUアーキテクチャを実装し、これの上にCUDAを動かした。すごいな。

本論文では、RISC-V v0.9ベクトルISA拡張のサブセットを実装した、コンフィギュラブルなハードウェアアクセラレータアーキテクチャであるArrowを紹介します。実験の結果、Arrowコプロセッサは、Xilinx XC7A200T-1SBG484C FPGAに実装した場合、機械学習推論の基本となる一連のベクトルおよび行列ベンチマークを、スカラRISCプロセッサよりも2~78倍高速に実行でき、消費電力は20~99%削減できることがわかった。

ベクトル命令のゴリゴリな実装。実装の詳細はあまり語られず。

近年、RISC-V Open ISAの登場により、オープンソースハードウェアの重要性が高まっています。それに伴い、コンパイラツールから本格的なOSまで、オープンソースのソフトウェアスタックをサポートする動きも加速しています。OpenCLなどのアプリケーション・プログラミング・インターフェースを用いた並列コンピューティングは、コモディティ・マルチコア・プロセッサープログラマブルな並列アクセラレータの並列性を有効に活用できることがわかっています。しかし、我々の知る限り、コモディティRISC-Vプロセッサを対象としたOpenCLの実装は、現在のところ、オープンソース・コミュニティからアクセス可能なものはありません。OpenCLは、RISC-Vを科学的な並列アプリケーションに開放するだけでなく、コンピュータ・アーキテクチャの研究に役立つユニークなジャンルのベンチマークへのアクセスを提供します。本研究では、オープンソースで実装されているOpenCLRISC-V CPU向けに拡張しました。本研究では、マルチコアのRISC-Vプロセッサだけでなく、原子命令やマルチスレッドをサポートしていないロープロファイルの組み込みRISC-V CPUも対象としています。

OpenCLRISC-V向けに拡張した話。RISC-Vへの移植の話かな?

セキュリティセッション2

SpectreやMeltdownのようなセキュリティ関連のサイドチャネル攻撃は、マイクロアーキテクチャの実行におけるエッジケースを利用しています。この種の攻撃は、多くのマイクロプロセッサに共通する最新のパフォーマンス機能によって可能になっています。設計段階で潜在的脆弱性を特定するためには、セキュリティホールが存在する可能性のあるハードウェアの状態をすべて探索できる機能検証が必要です。今日の多くのアプリケーションの要件を考慮すると、商業市場では、これらのサイドチャネルの問題を解決することが求められています。設計プロセスにおいてフォーマル検証ツールを活用するには、多大なエンジニアリング・リソースの投資が必要であり、マイクロアーキテクチャ設計の機能が導入され、複雑さが増すにつれて、これらのコストは増加すると考えられます。

本稿では、複雑なRISC-Vマイクロアーキテクチャのマイクロアーキテクチャ設計プロセスにおいて、セキュリティ指向の検証を可能にするための我々の初期の取り組みを紹介する。我々はこの目標を達成するために、サイクルベースの性能評価のために設計された最先端のシミュレーション・フレームワークである Akita と、境界型マイクロアーキテクチャ検証を統合しました。このアプローチにより、コンピュータ・アーキテクトは、新規および既存の性能機能を評価し、トレードオフを行うことができるようになり、また、セキュリティへの影響を単一のフレームワークで評価することができるようになります。本論文では、この統合を可能にする、形式的検証と秋田のイベントベースモデリングとの間の論理的な橋渡しを行う方法を紹介します。秋田モデルを基本コンポーネントに分解し、形式検証用の公理的モデルとして再構築する方法を示す。

  • RISC-Vセキュアコンピュート環境におけるデザインスペース探索の実現

TEE(Trusted Execution Environments)のサイクルレベルのアーキテクチャ・シミュレーションは、これらのセキュア・アーキテクチャのデザイン・スペースを広範囲に渡って探索することを可能にします。TEEをサポートする既存のアーキテクチャ・シミュレータは、ハードウェアレベルの実装に基づくものと、抽象的な解析モデルに基づくものがあります。本論文では、RISCVベースのオープンソースTEEであるKeystoneの実行と評価に必要なgem5モデルの実装について説明し、このシミュレーション環境が、これらの信頼できる環境を設計・研究するための新たな道を開くことを議論します。gem5上でのKeystoneのシミュレーションは、以前に行われたKeystoneのハードウェア評価と同様の性能を示すことを示します。また、3つの簡単な使用例(信頼された実行の速度低下の理由の理解、メモリ暗号化の性能、信頼された実行の性能に対するマイクロアーキテクチャの影響)を説明し、TEEをシミュレーションする能力が、既存の形や強化された設計でのTEEの動作に関する有用な情報を提供できることを示します。

  • ERTOS: Enclaves in Real-Time Operating Systems

エッジコンピューティングやIoT(Internet of Things)デバイスの普及に伴い、組み込みデバイス上で安全に計算を行う必要性が高まっています。一般的に、組み込み機器は異種環境であり、クラウド上のホストと比較して一般的なセキュリティ保護機能を備えていません。組込み機器上で実行されるサードパーティ製のライブラリやアプリケーションが増えてくると、機器のRTOSカーネルでさえ保護できないシステム侵害のリスクに直面します。組込み機器上に信頼性の高い実行環境(TEE)を構築することが求められていますが、現在のTEEの多くは高価なハードウェアを必要とします。私たちは、カスタマイズ可能なTEEを作成するためのフレームワークであるKeystoneをRISC-Vアーキテクチャ上で使用することを提案します。KeystoneでTEEを作成するためのハードウェア要件は、標準的なRISC-Vデバイスで一般的に利用可能です。RISC-Vは、Keystoneのアイソレーションの基礎となるPMPレジスタをすでに提供しているからです。我々は、KeystoneとFreeRTOSを使用して、組み込み機器上で効率的かつ動的なTEEを作成するためのモジュールをFreeRTOSに実装することを提案します。FreeRTOSの新しいモジュールであるERTOSを紹介します。ERTOSは、Keystoneのセキュリティモニタを使用して、他のタスクから強力に隔離された認証可能な安全なタスクを作成することができます。ERTOSは、開発者がエンクレーブで保護されたタスクを作成、実行できるように、使いやすいAPIを公開しています。ERTOSは、エンクレイブ内の計算量の多いタスクに対して無視できる程度のパフォーマンス・オーバーヘッドを追加し、タスク間通信をより効率的に行うための最適化を導入しています。