Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
ArkEdge LT #1 dalance
Search
dalance
June 08, 2023
Programming
3
540
ArkEdge LT #1 dalance
dalance
June 08, 2023
Tweet
Share
More Decks by dalance
See All by dalance
OSS Silicon EDA #1
dalance
0
91
Make CPU #3 dalance
dalance
1
490
RTL talk #17 dalance
dalance
0
550
Shinjuku.rs #8 dalance
dalance
2
670
RTL talk #16 dalance
dalance
1
860
Rust LT #3 dalance
dalance
1
830
Other Decks in Programming
See All in Programming
Polarsの成長: v0.14からv1.0までの変遷と今後の展望
zerebom
1
350
CSC307 Lecture 11
javiergs
PRO
0
240
【Go言語】golangci-lintの使い方
tomo1227
0
270
Xcode 16のPreviewModifierと@Previewableを活用した効率的なプレビュー方法の考察
ojun9
2
160
Product Management LT会_クアンド新家
shinshin
0
210
3 Effective Rules for Success with Signals in Angular
manfredsteyer
PRO
0
120
HMSコンペ 11th Solution (team : kansai-kaggler)
t88
1
680
コード生成を伴うLLMエージェント - 2024.07.18 Tokyo AI
smiyawaki0820
11
4.1k
TiDB Serverless ~理想のServerless DBを考える~
soso_15315
1
160
リハビリmruby
kishima
1
160
今こそ始める、CDKコンストラクトライブラリ開発 ― 入門から実践まで
tmokmss
1
930
The rollercoaster of releasing an Android, iOS, and macOS app with Kotlin Multiplatform | droidcon Berlin
prof18
0
110
Featured
See All Featured
How to Think Like a Performance Engineer
csswizardry
4
590
10 Git Anti Patterns You Should be Aware of
lemiorhan
652
58k
Designing Experiences People Love
moore
136
23k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
29
2.5k
Atom: Resistance is Futile
akmur
261
25k
How to train your dragon (web standard)
notwaldorf
79
5.5k
Documentation Writing (for coders)
carmenintech
63
4.2k
Building Effective Engineering Teams - LeadDev
addyosmani
47
2.2k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
26
1.6k
Web Components: a chance to create the future
zenorocha
307
41k
Build your cross-platform service in a week with App Engine
jlugia
227
17k
The World Runs on Bad Software
bkeepers
PRO
63
11k
Transcript
RustでLSI開発 PEZY Computing 初田 直也
自己紹介 名前:初田 直也 dalance @ GitHub 所属:PEZY
Computing スーパーコンピュータ向けのプロセッサLSIの設計 LSI設計のサポートにRustを使っている
Rustの使いどころ SystemVerilog周りのツール SystemVerilog:ハードウェア記述言語の1つ ツールサポートが弱い → 自作するしかない
プロセッサの命令セット周りの自動化ツール 独自プロセッサなのでコンパイラからドキュメントまで自作する必要あり ハードウェアの検証サポート
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
命令セット周りのツール scx_isa TOMLで命令セットを定義して、いろいろなものを自動生成するツール 生成できるもの 命令をデコードするSystemVerilogのソースコード
命令をデコードするRustのソースコード RestructuredText形式のドキュメント scx_random ↑のTOMLを読み込んで、ランダム検証用のアセンブリを生成するツール 2021年に夏季インターン(2名 x 2か月)で作ってもらった
検証サポート 命令セットシミュレータ プロセッサの挙動をソフトで書いて、SystemVerilog記述との一致を確認する ハードウェア設計中にソフトウェアエンジニアがプロセッサの挙動を確認する scx_forest_rs
メニーコアプロセッサ(~4096コア)の挙動をマルチスレッドで高速に実行する 昔はC++実装だったがマルチスレッドがなかなか安定しなかったのでRustに移行