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
570
ArkEdge LT #1 dalance
dalance
June 08, 2023
Tweet
Share
More Decks by dalance
See All by dalance
OSS Silicon EDA #1
dalance
0
160
Make CPU #3 dalance
dalance
1
600
RTL talk #17 dalance
dalance
0
610
Shinjuku.rs #8 dalance
dalance
2
710
RTL talk #16 dalance
dalance
1
910
Rust LT #3 dalance
dalance
1
880
Other Decks in Programming
See All in Programming
Асинхронность неизбежна: как мы проектировали сервис уведомлений
lamodatech
0
620
rails stats で紐解く ANDPAD のイマを支える技術たち
andpad
1
290
たのしいparse.y
ydah
3
120
rails statsで大解剖 🔍 “B/43流” のRailsの育て方を歴史とともに振り返ります
shoheimitani
2
930
Go の GC の不得意な部分を克服したい
taiyow
2
760
複雑な仕様に立ち向かうアーキテクチャ
myohei
0
170
103 Early Hints
sugi_0000
1
220
これでLambdaが不要に?!Step FunctionsのJSONata対応について
iwatatomoya
2
3.6k
クリエイティブコーディングとRuby学習 / Creative Coding and Learning Ruby
chobishiba
0
3.9k
短期間での新規プロダクト開発における「コスパの良い」Goのテスト戦略」 / kamakura.go
n3xem
2
160
tidymodelsによるtidyな生存時間解析 / Japan.R2024
dropout009
1
730
モバイルアプリにおける自動テストの導入戦略
ostk0069
0
110
Featured
See All Featured
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
32
2.7k
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
0
94
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
330
21k
GraphQLの誤解/rethinking-graphql
sonatard
67
10k
Gamification - CAS2011
davidbonilla
80
5.1k
The Illustrated Children's Guide to Kubernetes
chrisshort
48
48k
Optimising Largest Contentful Paint
csswizardry
33
3k
How to Ace a Technical Interview
jacobian
276
23k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
6
510
Scaling GitHub
holman
458
140k
Why You Should Never Use an ORM
jnunemaker
PRO
54
9.1k
How STYLIGHT went responsive
nonsquared
95
5.2k
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に移行