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
Rust LT #3 dalance
Search
dalance
March 25, 2019
Programming
1
960
Rust LT #3 dalance
dalance
March 25, 2019
Tweet
Share
More Decks by dalance
See All by dalance
OSS Silicon EDA #1
dalance
0
220
Make CPU #3 dalance
dalance
1
770
RTL talk #17 dalance
dalance
0
760
ArkEdge LT #1 dalance
dalance
3
650
Shinjuku.rs #8 dalance
dalance
2
790
RTL talk #16 dalance
dalance
1
1k
Other Decks in Programming
See All in Programming
When Dependencies Fail: Building Antifragile Applications in a Fragile World
selcukusta
0
110
オープンソースソフトウェアへの解像度🔬
utam0k
16
3.1k
ソフトウェア設計の実践的な考え方
masuda220
PRO
4
620
EMこそClaude Codeでコード調査しよう
shibayu36
0
250
CSC509 Lecture 04
javiergs
PRO
0
300
チームの境界をブチ抜いていけ
tokai235
0
200
はじめてのDSPy - 言語モデルを『プロンプト』ではなく『プログラミング』するための仕組み
masahiro_nishimi
3
720
One Enishi After Another
snoozer05
PRO
0
130
アメ車でサンノゼを走ってきたよ!
s_shimotori
0
230
「ちょっと古いから」って避けてた技術書、今だからこそ読もう
mottyzzz
11
6.9k
スマホから Youtube Shortsを見られないようにする
lemolatoon
27
33k
Google Opalで使える37のライブラリ
mickey_kubo
2
120
Featured
See All Featured
Measuring & Analyzing Core Web Vitals
bluesmoon
9
630
Facilitating Awesome Meetings
lara
56
6.6k
Testing 201, or: Great Expectations
jmmastey
45
7.7k
Unsuck your backbone
ammeep
671
58k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
333
22k
Faster Mobile Websites
deanohume
310
31k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
234
17k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
10
880
Docker and Python
trallard
46
3.6k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
12
1.2k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
27k
Navigating Team Friction
lara
190
15k
Transcript
RustとLSI開発 dalance
LSIの設計とは • ソフトウェアの場合 ◦ ソースコードを書く ◦ コンパイル ◦ 実行 •
LSI の場合 ◦ ソースコードを書く(例えば SystemVerilog などで) ◦ コンパイル(的な何か) ◦ 製造
LSIの設計とは • ソフトウェアの場合 ◦ ソースコードを書く ◦ コンパイル ◦ 実行 •
LSI の場合 ◦ ソースコードを書く(例えば SystemVerilog などで) ◦ コンパイル(的な何か) ◦ 製造 よく似ているので、同じような開発 手法やツールが使える。 CI とか git とか。
ソフトと違うところ • ソフトウェアの場合 ◦ ソースコードを書く ◦ コンパイル ◦ 実行 •
LSI の場合 ◦ ソースコードを書く(例えば SystemVerilog などで) ◦ コンパイル(的な何か) ◦ 製造 ここの規模感はだいぶ違う。 コンパイル 1 回に数日~数週間 中間ファイルが数 GB ~数百 GB
ソフトと違うところ • ソフトウェアの場合 ◦ ソースコードを書く ◦ コンパイル ◦ 実行 •
LSI の場合 ◦ ソースコードを書く(例えば SystemVerilog などで) ◦ コンパイル(的な何か) ◦ 製造 ここの規模感はだいぶ違う。 コンパイル 1 回に数日~数週間 中間ファイルが数 GB ~数百 GB 大きなファイルを素早く扱うための サポートツールをRustで書いてます
作ったもの(1) • amber ◦ いわゆる grep alternative ◦ 大きなファイルを分割してマルチスレッドで検索する ▪
ここだけなら ripgrep にも勝っている(普通の検索は ripgrep ものすごく速いです) • ptags ◦ ctags ( vim 用の tag 生成プログラム)のラッパー ▪ LSI 開発時のリポジトリは 1TB 近くになるので、 ctags を普通に実行すると終わらない ◦ .gitignore と git-lfs を除外して、マルチスレッドで並列実行できる
作ったもの(2) • pipecolor ◦ 標準出力をパイプで受け取って色付けするツール ▪ 正規表現でマッチさせて好きな色を付けられる ◦ LSI 系のツールは
cargo/rustc のように色がつかなくて分かりにくいので • procs ◦ プロセス情報表示ツール( ps alternative ) ▪ 標準でカラー表示できて、簡単に絞り込める ◦ LSI 系のツールは貴重な!ライセンスをつかんだまま死んでしまうことがある
まとめ • LSI 開発で(無理やり?) Rust 使ってます • Rust の良いところ ◦
開発速度が速い: cargo/crates.io のおかげで ◦ 実行速度が速い:データが大きくても困らない ◦ エラーハンドリング:予想外の例外で落ちたりしない