以下の内容はhttps://msyksphinz.hatenablog.com/entry/2024/03/16/040000より取得しました。


RISC-Vの高性能アウト・オブ・オーダCPU XiangShanについての資料を読む (2. XiangShanのAgile Development)

HPCA2024で開催された、RISC-Vのアウト・オブ・オーダCPU XiangShanについての資料が公開されていたので、読んでみることにした。 じっくり読みたいので、1ページずつ要点を抑えていく。

xiangshan-doc.readthedocs.io


https://github.com/OpenXiangShan/XiangShan-doc/blob/main/tutorial/20240302-HPCA24-1-Introduction-XiangShan.pdf より引用

次に、XiangShanを支えるAgile Developmentについて見て行く。

https://github.com/OpenXiangShan/XiangShan-doc/blob/main/tutorial/20240302-HPCA24-1-Introduction-XiangShan.pdf より引用

最初のアプローチとしては、Chiselを使って開発するというものである。

https://github.com/OpenXiangShan/XiangShan-doc/blob/main/tutorial/20240302-HPCA24-1-Introduction-XiangShan.pdf より引用
https://github.com/OpenXiangShan/XiangShan-doc/blob/main/tutorial/20240302-HPCA24-1-Introduction-XiangShan.pdf より引用

新しいハードウェア記述言語を使用することによって、デザインのオブジェクト指向化を行い、よりコンフィギャラブルにすることが目的である。

https://github.com/OpenXiangShan/XiangShan-doc/blob/main/tutorial/20240302-HPCA24-1-Introduction-XiangShan.pdf より引用

Agile Developmentにおいて必要な要素は何か?それは検証である。

https://github.com/OpenXiangShan/XiangShan-doc/blob/main/tutorial/20240302-HPCA24-1-Introduction-XiangShan.pdf より引用
https://github.com/OpenXiangShan/XiangShan-doc/blob/main/tutorial/20240302-HPCA24-1-Introduction-XiangShan.pdf より引用

Agile Developmentを支える検証ツールチェインについて見て行く。

https://github.com/OpenXiangShan/XiangShan-doc/blob/main/tutorial/20240302-HPCA24-1-Introduction-XiangShan.pdf より引用

Difftestというテスト環境を用意する。命令がコミットされると、命令セットシミュレータが同じ命令を実行し、結果を比較する。

https://github.com/OpenXiangShan/XiangShan-doc/blob/main/tutorial/20240302-HPCA24-1-Introduction-XiangShan.pdf より引用
https://github.com/OpenXiangShan/XiangShan-doc/blob/main/tutorial/20240302-HPCA24-1-Introduction-XiangShan.pdf より引用

性能評価のために、RTLシミュレーションとチェックポイントの機能を導入する。 チェックポイントによって、コンパイル20分と、シミュレーションはおよそ5時間で実行することができる。

https://github.com/OpenXiangShan/XiangShan-doc/blob/main/tutorial/20240302-HPCA24-1-Introduction-XiangShan.pdf より引用

これには4つのステップが必要である:

  1. 高速なシミュレータを使って、命令群をスライスしながらシミュレーションする
  2. クラスタリングアルゴリズムを用いて、代表的なスライスを選出する
  3. RTLシミュレーションを実行する
  4. 再構築する
https://github.com/OpenXiangShan/XiangShan-doc/blob/main/tutorial/20240302-HPCA24-1-Introduction-XiangShan.pdf より引用

この手法によって、17個の新しいツールを作成して、検証を高速化した。この成果はMICRO2022に掲載された。

https://github.com/OpenXiangShan/XiangShan-doc/blob/main/tutorial/20240302-HPCA24-1-Introduction-XiangShan.pdf より引用

XiangShanでは、3つのポイントのうち2.5個を達成した。

https://github.com/OpenXiangShan/XiangShan-doc/blob/main/tutorial/20240302-HPCA24-1-Introduction-XiangShan.pdf より引用

研究のための理想的なインフラストラクチャについて考える。

https://github.com/OpenXiangShan/XiangShan-doc/blob/main/tutorial/20240302-HPCA24-1-Introduction-XiangShan.pdf より引用
https://github.com/OpenXiangShan/XiangShan-doc/blob/main/tutorial/20240302-HPCA24-1-Introduction-XiangShan.pdf より引用
  • Imprecise Store Exceptions (ISCA23)で使用された。
  • Fast, Robust and Transferable Prediction for Hardware Logic Synthesis (MICRO23)で使用された。
https://github.com/OpenXiangShan/XiangShan-doc/blob/main/tutorial/20240302-HPCA24-1-Introduction-XiangShan.pdf より引用



以上の内容はhttps://msyksphinz.hatenablog.com/entry/2024/03/16/040000より取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14