Upgrade to Pro — share decks privately, control downloads, hide ads and more …

ArkEdge LT #1 dalance

ArkEdge LT #1 dalance

dalance

June 08, 2023
Tweet

More Decks by dalance

Other Decks in Programming

Transcript

  1. RustでLSI開発
    PEZY Computing
    初田 直也

    View Slide

  2. 自己紹介
     名前:初田 直也
     dalance @ GitHub
     所属:PEZY Computing
     スーパーコンピュータ向けのプロセッサLSIの設計
     LSI設計のサポートにRustを使っている

    View Slide

  3. Rustの使いどころ
     SystemVerilog周りのツール
     SystemVerilog:ハードウェア記述言語の1つ
     ツールサポートが弱い → 自作するしかない
     プロセッサの命令セット周りの自動化ツール
     独自プロセッサなのでコンパイラからドキュメントまで自作する必要あり
     ハードウェアの検証サポート

    View Slide

  4. SystemVerilog周りのツール
     sv-parser/svlint/svls
     RustでSystemVerilogのパーサを作成
     作成したパーサを使ってlinterとlanguage serverを作成
     社内リポジトリでのCIチェックなどで使用中
     OSSとしてGitHubで公開
     https://github.com/dalance/sv-parser
     https://github.com/dalance/svlint
     https://github.com/dalance/svls
     Veryl
     SystemVerilogを改善するために新しい言語を作る試み
     次のプロジェクトで実戦投入したい
     https://github.com/dalance/veryl

    View Slide

  5. 命令セット周りのツール
     scx_isa
     TOMLで命令セットを定義して、いろいろなものを自動生成するツール
     生成できるもの
     命令をデコードするSystemVerilogのソースコード
     命令をデコードするRustのソースコード
     RestructuredText形式のドキュメント
     scx_random
     ↑のTOMLを読み込んで、ランダム検証用のアセンブリを生成するツール
     2021年に夏季インターン(2名 x 2か月)で作ってもらった

    View Slide

  6. 検証サポート
     命令セットシミュレータ
     プロセッサの挙動をソフトで書いて、SystemVerilog記述との一致を確認する
     ハードウェア設計中にソフトウェアエンジニアがプロセッサの挙動を確認する
     scx_forest_rs
     メニーコアプロセッサ(~4096コア)の挙動をマルチスレッドで高速に実行する
     昔はC++実装だったがマルチスレッドがなかなか安定しなかったのでRustに移行

    View Slide