FPGA開発日記

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

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

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

これも量としてはかなりあるので、DeepLにお世話になりながらさっくりと日本語を読んで概要をつかんでみることにした。 面白そうなものだけピックアップして読むことにしてみよう。まずは前半。後半は明日。

carrv.github.io


設計セッション1

完成すれば最大の電波望遠鏡となるスクウェア・キロメター・アレイは、エクサスケール時代とその先にあるコンピューティングの模範例の一つです。演算性能とエネルギー効率は、現在のトップレベルのスーパーコンピュータよりも少なくとも2、3桁優れていることが求められます。これらの要求を満たすために、GPUFPGAアクセラレータが何度も検討されてきましたが、ソリューションのアルゴリズムアーキテクチャの特性に根ざした制限のために、約束された可能性を満たすには至っていません。

SKAのデータ処理を有意義な時間とリソースの範囲内で行うためには、クリーンスレートのアプローチが有効であると考えています。このポジションペーパーでは、SKAのデータ処理ニーズに特化して設計されたオープンソースドメインスペシフィック・システムオンチップである「RISKA」を提案します。現在の提案の範囲は、SKAのサイエンス・データ・プロセッサ・スーパーコンピュータ(SKA-SDP)の要件に対応することであり、将来的には他のシステムに拡張することを意図している。RISKAは、オープンソースRISC-V CPUコアと、SKA-SDPに特化したカスタムデザインのアクセラレータおよびオンチップメモリを組み合わせたもので、SKA-SDPの性能およびエネルギー効率のボトルネックを解消するための予備的なデザインについて説明します。最後に、RISKAの開発は、オープンソースのコラボレーションモデルに基づいて行われるべきであると提案します。

電波望遠鏡のデータ処理のために設計されたSoCであるRISKAの発表。なんか電波望遠鏡については昔にも論文を読んだことがあるような気がする。

  • NeuralScale: クラウドでのAI推論を促進するRISC-Vベースのニューラルプロセッサ

ここ数年、クラウドコンピューティング用のAIチップが非常に増えてきました。特化したAIチップのほとんどは、特定のアプリケーションを最適化するために設計されており、プログラマビリティや柔軟性に欠けています。本論文では、クラウドにおけるAI推論のためのRISC-Vベースのニューラル・プロセッサ・コア・アーキテクチャであるNeuralScaleを紹介します。NeuralScaleは、競争力のある性能と効率性を維持しながら、RISC-Vベクトル拡張によりプログラマビリティを大幅に促進します。当社の工業製品であるP920は、32個のNeuralScaleコアを搭載し、TSMC 12nm FinFETプロセス技術を用いて、1.0GHzのクロック周波数で256TOPS(INT8)および128TFLOPS(FP16)のピーク性能を達成しています。典型的な推論ワークロードでの評価結果は、本プロセッサが最先端のスループットと電力効率性能を実現していることを示しています。

RISC-Vのベクトルサポートのクラウドコンピューティング用のAIチップの紹介。

  • RISC-V Dataflow Extension

データフローアーキテクチャは、フォン・ノイマン(コントロールフロー)アーキテクチャに代わるもので、性能の向上とエネルギー消費の低減が可能です。既存のデータフローアーキテクチャには、明示的なものとハイブリッドなものがあります。明示的なデータフロー・アーキテクチャは、不規則なワークロードに対して高いパフォーマンスを提供しますが、コントロールフロー・アーキテクチャは、効果的な制御投機と正確な割り込み/例外処理を提供します。ハイブリッド・データフロー/ボン・ノイマンアーキテクチャーは、データフロー・アーキテクチャー・モデルとコントロール・フロー・アーキテクチャーの両方を組み合わせたものである。

既存のハイブリッドアーキテクチャの多くは、データフローの要素をフォン・ノイマン計算機モデルに統合したものである。本研究では、RISC-Vアーキテクチャのために、明示的なデータフロー命令を実行可能なISA(Instruction Set Architecture)拡張を設計しました。また、データフロー/フォン・ノイマン型のヘテロジニアスなCPUモデルをGem5シミュレータに実装しました。いくつかのマイクロベンチマークを実行した結果、最大で7.5%の性能向上が見られ、データフローISA拡張とデータフロー/フォン・ノイマンヘテロジニアスなアーキテクチャの可能性が示されました。

RISC-VのISAをデータフロー向けに拡張したということ?

エッジコンピューティングの台頭や暗号・誤り訂正符号の高度化に伴い、携帯機器用プロセッサには、ガロア体演算をベースとした多様なアルゴリズムの処理が求められています。これらの演算がプロセッサの命令セットに含まれている場合、汎用プロセッサの実行時間を効率を低下させることなく最適化するためには、速度と消費電力のトレードオフが必要です。本研究では、ガロア体演算の乗算用RISC-V命令セットを実装し、Nexys A7 FPGA上でSweRV-EL2 1.3を用いて検証しました。AESやReed-Solomonコードのようないくつかのアルゴリズムでは、論理使用率がわずかに増加するものの、性能が向上しています。

"ガロア体演算の乗算用RISC-V命令セット"なんじゃそりゃ!?

解析セッション

  • 機能指向プログラミングによるRocket Chipの性能カウンター設計バリエーション

パフォーマンスカウンタは、開発者にとって、自分のアプリケーションが特定のプラットフォーム上でどの程度動作するかという重要な情報を提供します。現在、Rocket Chipジェネレーターには、パフォーマンスカウンタシステムが搭載されていますが、そのバリエーションは、カウントレジスタの数のみとなっています。RISC-Vが幅広いアプリケーションで魅力的であるためには、他のバリエーションも可能であるべきです。例えば、マイクロアーキテクチャのイベントにしか興味がない開発者がいるとします。例えば、マイクロアーキテクチャのイベントだけに興味がある場合、特定の機能の中だけでカウントした方がより多くの情報が得られる可能性があります。

そこで、パフォーマンスカウンタのサブシステムを、Rocket Chipに適用可能な個別の直交する機能ユニットに再構成し、その機能を単独または組み合わせて適用するツールを開発しました。Scalaの抽象構文木を操作して機能を適用し、機能の依存関係を自動的に判断するツールを開発しました。また、このような機能を構築するためのシンプルなドメイン固有言語を設計しました。

パフォーマンスカウンタの実装を機能に特化させることで、Rocket Chipの開発者には、より多くの実装の可能性を提供しています。開発者は、RISC-Vイベントの任意のサブセットを選択して監視することができます。モニタリング対象のプロセッサに新しいイベントを簡単に導入できます。必要に応じて、プログラムカウンタの特定の範囲内でのみイベントをカウントすることができます。

我々の機能や他の興味深い設計上のポイントを用いて、現在のパフォーマンスカウンタを再構築しました。これらの構成に必要なリソースを示す結果を示します。

Rocket-Chipのためのパフォーマンスカウンタを新たに設計してRocket-Chipに組み込んだということ。

  • Linux用性能解析ツール(Perf)によるRISC-Vパフォーマンスカウンターのサポート

クラウド、データセンター、オートモーティブ、ネットワーキングなどの分野でRISC-Vへの注目が高まっており、RISC-Vをハイパフォーマンス・コンピューティングのシナリオに組み込む動きが活発化しています。しかし、強力なパフォーマンス・モニタリング・ツールがないと、アプリケーションが十分に最適化されず、結果的にコンピューティング・パフォーマンスが制限されてしまいます。RISC-V ISAはすでにハードウェア・パフォーマンス・モニター(HPM)を定義していますが、現在のソフトウェアでは、パフォーマンスをモニターするためのサポートが限られています。本論文では、RISC-V性能監視仕様の完全なサポートを実現するために、Linux用の性能解析ツール(perf/perf_events)、Linuxカーネル、およびOpenSBIの拡張および修正を紹介します。予備的なテストと評価を、FPGAブートのCVA6 CPU(旧称Ariane)上で動作するLinux 5.7で実施したところ、モニタリングのオーバーヘッドは0.283%でした。

こちらはソフトウェアの修正。LinuxのPerfを使用するためにperf, Linuxカーネル、OpenSBIに修正を追加したということ。

マイクロプロセッサの設計、デバッグ、検証の研究開発は、さまざまな抽象度のモデリングとシミュレーションに基づいて行われるようになってきています。マイクロアーキテクチャレベルのシミュレータは、抽象度の低いレベルに比べてシミュレーションのスループットが高いため、性能評価に最もよく使われるツールとなっていますが、その代償としてハードウェアの精度が損なわれることがほとんどです。その結果、研究者やマイクロプロセッサの設計者にとって、マイクロアーキテクトのシミュレータの実装、速度、精度はますます重要になってきています。マイクロアーキテクチャーシミュレータの最も重要な点の一つは、マイクロアーキテクチャーの様々な側面が設計の改良に伴って変化する中で、設計基準を正確に表現する能力です。一方、最近のマイクロプロセッサのモデルは、専用のハードウェア実装に依存しているため、設計空間の探索には時間がかかり、高レベルモデルからハードウェア・プロトタイピングまで、さまざまな方法を用いて行われます。そのため,シミュレーションの速度と精度の間のトレードオフが大きく変化し,アプリケーションの性能測定が不確実になることがあります。

本論文では,RISC-Vアウトオブオーダー・スーパースカラ・マイクロプロセッサ・コアの性能を可能な限り正確にモデリングするための,マイクロアーキテクチャレベルのシミュレーション・モデリング研究を紹介します。広く使用されているgem5シミュレータの重要なマイクロアーキテクチャ・パラメータを調整することにより,マイクロアーキテクチャレベルのシミュレーションで正確な性能モデリングを行うことが,ターゲットデザインのRTLシミュレーションの精度や低いシミュレーション・スループットと比較してどのような課題があるかを調査しました。さらに,マイクロアーキテクチャレベルのモデリングの高精度化を妨げる主なエラーの原因を明らかにしました。

Gem5を使用したサイクル精度RISC-Vアーキテクチャシミュレータの話。

  • SwiftからMightyへ。アプリケーションの性能、消費電力、面積に関するIbexとCV32E40Pのコスト・ベネフィット分析

lowRISCやOpenHW Groupのような非営利の共同エンジニアリング組織の台頭により、オープンソースは、産業界で実行可能なコンピューティングハードウェア開発のパラダイムとして普及し続けています。これらの組織は、RI5CYから派生したIbexおよびCV32E40Pプロセッサの開発を続けています。RI5CYは、初期の、そして最もよく知られた学術的なオープンソースRISC-V設計の一つです[1, 2]。当初、この2つのコアは、それぞれ低コストの制御タスクとエネルギー効率の高い信号処理をターゲットとして、明確に差別化されていました。しかし、Ibexでは、業界水準の検証と規格準拠を確立したことに加え、いくつかの性能重視の機能が追加されたため、コアや構成の選択が明確ではなくなりました。

本研究では、アプリケーション性能、シリコン面積、消費電力の観点から、2つのコアを徹底的に比較しました。Ibexの新機能は、IPC(インストラクション・パー・サイクル)性能を最大で34%向上させる一方で、最大動作周波数に悪影響を与えます。ライトバックステージとシングルサイクル乗算器を組み合わせることで、最高の周波数で最高の性能が得られます。この構成は、性能面ではCV32E40Pと同等ですが、面積は40%少なくて済みます。CV32E40Pは、カスタム命令セットの拡張機能と最適化されたパイプラインを利用することで、制御が少なく計算量の多い信号処理に適しています。

2つのコアIbexとCV32E40Pのコアを比較している。

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

  • Keystoneにおけるデマンド・ページングのための高速かつ安全な決定論的Stash Free Write Only Oblivious RAMの導入

Keystoneは、RISC-Vアーキテクチャをベースにした信頼性の高い実行環境です。メモリを安全なKeystoneプライベート・メモリと安全でない非Keystoneメモリに分割し、Keystoneプライベート・メモリ内にあるコードを安全に実行できるようにしています。Keystoneの単純なデマンドページングでは、Keystoneアプリケーションの機密性の高いアクセスパターンが、悪意のあるオペレーティングシステム(OS)に漏れてしまいます。これは、Keystoneが安全でない非Keystoneメモリにアクセスするためには、OSのサポートが必要だからです。これを緩和するために、KeystoneはOblivious RAM(ORAM)技術を使用してページアクセスパターンを難読化しながら、oblivious demand pagingを実装する必要があります。そのため、アプリケーションの実行速度が大幅に低下してしまいます。

本論文では、Detinistic, stash free, Write only ORAM (DetWoORAM)をoblivious demand pagingに使用することで、Keystoneにおける非セキュアなデマンド・ページングとセキュアなデマンド・ページングのアプリケーション実行時間の間のパフォーマンス・ギャップを解消します。また、Write only ORAMであるDetWoORAMがなぜ oblivious demand pagingに十分なのかを示します。DetWoORAMは、メモリを論理的に主領域と保持領域に分割します。実際のページは主領域に格納されます。我々は、アプリケーションの実行速度の低下を改善するために、DetWoORAMに対する2つの拡張機能を提案します。1つ目は、Eager DetWoORAMと呼ばれるもので、DetWoORAMの決定論的なアクセスパターンを利用したページのプリロードを行い、ORAMのレイテンシーを隠そうとするものです。2つ目の改良点は、Parallel DetWoORAMと呼ばれるもので、複数のスレッドを生成し、各スレッドがDetWoORAMのメモリアクセスアルゴリズムの一部を実行します。DetWoORAMが[1.4x, 2x, 3.24x]の速度低下を示したのに対し、Eager DetWoORAMとParallel DetWoORAMは、k=3, 7, 15の場合、それぞれ[1.2x, 1.8x, 3.2x]と[1.1x, 1.1x, 1.4x]の速度低下を示しました。

  • RISC-VおよびCHERI-RISC-Vに対する過渡応答攻撃のテスト・スイートの開発

本論文では,RISC-Vにおける主要な過渡現象発生攻撃の再現を含む,柔軟で拡張可能なベアメタル・テスト・スイートを紹介します.このテスト・スイートは,オープンソースのアウトオブオーダー・スーパースカラRISC-VプロセッサであるRiscyOOで実証されています.これらの攻撃は、FPGAハードウェアとシミュレーションの両方で特性評価を行っていますが、そのシンプルさは、特にプロセッサ開発時のシミュレーションによる検証に適しています。例として、RiscyOOにCHERIセキュリティ拡張を施したバージョンを評価します。CHERIは、インストラクションセットアーキテクチャ(ISA)のセキュリティ拡張機能で、きめ細かなメモリ保護とコンパートメント化を実現します。これは、メモリの安全性を侵害して特権を得たり、秘密を漏らしたりする過渡実行攻撃の興味深いターゲットとなります。今回の結果は、洗練されたRISC-Vの実装が、主流のアーキテクチャと同様の過渡実行攻撃に対して脆弱であることを明確に示していますが、オープンソースの実装とオープンソースの検証ツールが、開発中の脆弱性の発見と排除に役立つことを期待しています。さらに、CHERI-RISC-Vの命令セットは、過渡的実行攻撃に対する防御を意味するものではありませんが、慎重な実装と積極的なポインタ・バウンディングによって、いくつかの形態の攻撃を緩和できることを示します。我々の拡張可能なテスト・スイートは、RISC-Vシステムにおける過渡実行攻撃とその緩和に関する今後の研究のための共通の基盤となり、オープンソースの高性能で安全なRISC-Vプロセッサの成功への道を開くものと期待されます。

  • RISC-Vオープンハードウェア設計による安全な投機的実行

近年、さまざまなSpectre攻撃をはじめ、最新のプロセッサではマイクロアーキテクチャ脆弱性が悪用されるケースが急増しています。現在のソフトウェアによる緩和策は、重要な性能オーバーヘッドがあり、多くの場合、ソースコードの修正を必要とします。また、アーキテクチャの拡張は、ほとんどがシミュレータで検証されており、実際にハードウェアを実装して評価することはありません。

本プロジェクトでは、安全な投機的実行(SSE-RV)のための効率的なaint-trackingソリューションを提案し、最も有名な投機的実行攻撃から保護します。本プロジェクトでは,RISC-Vのオープンハードウェアエコシステムを活用したセキュアバイデザインアプローチを採用し,最新のバークレーのOut-of-Order Machine(SonicBOOM)にテイントトラッキングカニズムを実装しました.また,Linuxが動作するFPGA上でSSE-RVプロセッサのプロトタイプを作成した.その結果、Spectre-v1, v2, v5からの保護が可能であると同時に、単一の小型BOOMコアの性能として0.66 CoreMark/MHzを達成しました。また,実装コストを評価するために,130nm BiCMOS技術をターゲットとしたプロセッサコアを合成しました。その結果,保護されていないコアと比較して,ゲート数が0.42%増加し,コア全体の消費電力が1.7%増加するだけでした。今回開発した防御方式は一般的なものであり,他の過渡的実行攻撃に対する防御にも拡張可能である.

  • RISC-V GPGPUによる暗号技術の高速化

AESとSHAファミリーは、それぞれ対称暗号とハッシュ化を行う代表的な暗号アルゴリズムです。AESとSHAの呼び出しには高度な並列処理が必要となるため、GPGPUでのハードウェア高速化が望まれています。そこで、既存のGPGPUに暗号実行ユニットを追加し、これらのアルゴリズムの重要な要素を高速化しました。RISC-V暗号拡張ドラフト仕様のサブセットをVortex GPGPUに実装したところ、Vortex上の純粋なソフトウェア実装に比べ、SHA-256で1.6倍、AES-256で6.6倍の高速化を実現しました。