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
VSP専用プロセッサ設計と実行エンジンIyokanについて
Search
VTb
February 08, 2020
Technology
0
250
VSP専用プロセッサ設計と実行エンジンIyokanについて
VTb
February 08, 2020
Tweet
Share
More Decks by VTb
See All by VTb
MR1を支えた Ethernet&ROS システム
pibvt
3
1.2k
3日間で作る フルスクラッチHTTPサーバー on STM32F767 Nucleo
pibvt
14
5.7k
Hello_UEFI_で学ぶC言語ポインタ.pdf
pibvt
0
140
64bit UEFIからxv6を起動してみた
pibvt
0
450
Other Decks in Technology
See All in Technology
生成AIが変えるデータ分析の全体像
ishikawa_satoru
0
170
Why App Signing Matters for Your Android Apps - Android Bangkok Conference 2024
akexorcist
0
130
Flutterによる 効率的なAndroid・iOS・Webアプリケーション開発の事例
recruitengineers
PRO
0
120
10XにおけるData Contractの導入について: Data Contract事例共有会
10xinc
6
660
Taming you application's environments
salaboy
0
190
Evangelismo técnico: ¿qué, cómo y por qué?
trishagee
0
360
強いチームと開発生産性
onk
PRO
35
11k
Application Development WG Intro at AppDeveloperCon
salaboy
0
190
BLADE: An Attempt to Automate Penetration Testing Using Autonomous AI Agents
bbrbbq
0
320
第1回 国土交通省 データコンペ参加者向け勉強会③- Snowflake x estie編 -
estie
0
130
エンジニア人生の拡張性を高める 「探索型キャリア設計」の提案
tenshoku_draft
1
130
データプロダクトの定義からはじめる、データコントラクト駆動なデータ基盤
chanyou0311
2
330
Featured
See All Featured
Building an army of robots
kneath
302
43k
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
16
2.1k
Fontdeck: Realign not Redesign
paulrobertlloyd
82
5.2k
It's Worth the Effort
3n
183
27k
Bootstrapping a Software Product
garrettdimon
PRO
305
110k
The Pragmatic Product Professional
lauravandoore
31
6.3k
GitHub's CSS Performance
jonrohan
1030
460k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
31
2.7k
Building Adaptive Systems
keathley
38
2.3k
StorybookのUI Testing Handbookを読んだ
zakiyama
27
5.3k
Building Flexible Design Systems
yeseniaperezcruz
327
38k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
44
2.2k
Transcript
VSP専用プロセッサ設計 と実行エンジンについて 松本 直樹(@PiBVT) 2020/02/08 カーネル/VM探検隊@関西 10回目
Agenda • 自己紹介 • VSP専用プロセッサ設計について • 並列実行エンジン Iyokan について
自己紹介 松本 直樹 (@PiBVT) 京都大学工学部情報学科3回生 未踏プロジェクトでの担当 • VSP専用プロセッサ設計 • 実行エンジンの基本設計,試作実装
VSP専用プロセッサ設計について VSPはプロセッサ設計が必要 暗号処理はゲートレベルで行われる -> プロセッサ設計は平文と同様のものが利用できる FHEゲートの演算のコスト -> 出来る限りゲート数が少ない設計が必要
VSP専用プロセッサ設計について 出来る限り少ないゲート数,省ROM,RAM -> 専用のISAとそのプロセッサ設計を開発することに ※ROM,RAMはそれぞれ512byteでも20,000ゲート以上あるた め、全体のゲート規模にかなり影響がある
時系列でみるVSP専用プロセッサ設計 2019年6月 プロジェクト開始 7月 rv32k-garnet 開発中止 8月 rv16k-amethyst(RV16Kv2準拠 マルチサイクル)完成 9月 rv16k-aquamarine(RV16Kv2準拠
5段パイプライン)完成 10月 cahp-diamond(CAHPv3準拠 5段パイプライン)完成 2020年1月 cahp-emerald(CAHPv3準拠 スーパースカラ)完成
cahp-emeraldについて • VSP専用プロセッサ第5世代設計 • CAHPv3(16bit/24bit混合命令長) 準拠 • 5段パイプライン • 最大2命令同時発行インオーダースーパースカラ
• 約8,000ゲート(cahp-diamond が約4,000 ゲート) • IPC 1.1(cahp-diamondが0.78) • このままだと不採用の危機(ゲート規模的に)
cahp-emeraldのアーキテクチャ 5段パイプライン・インオーダースーパースカラ
混合命令長のつらさ • 16bit/24bitで偶数倍長の関係にないため、アライメントをまたぐ命 令アクセスが起こる • ジャンプでの命令フェッチで余計なストールが発生する • ゲート規模が膨らむ
• 32bitブロックでのROMアクセスを行ったとしてもブロック間をまたぐ 命令が存在する -> ブロック間をまたぐ命令アクセスを実現する機構が必要 混合命令長のつらさ その1
一度読み込んだブロックをキャッシュに保持し、ブロックをまたい だアクセスを実現 -> ジャンプが起きると....?
並列実行エンジン Iyokan について • 回路情報を元にFHEゲートを評価する並列実行エンジン • TFHEpp(CPU)/cuFHE(GPU)を暗号処理のバックエンドとして利 用可能 • verilogファイルからの回路合成は外部ツール(yosys)を利用
ゲートの評価順には依存関係がある • ネットリスト上のゲートは上流から下流へと順に評価する
ネットリストをDAG(有向非循環グラフ)で表現 1. 上流ノードを持たないノードを評価待ちとする 2. 評価待ちのノードを評価 3. 辺経由で下流のノードに評価済みであることを通知 4. 入力の上位ノードすべてが評価済みならノードを評価待ちとする 5.
評価待ちノードが存在する場合、2へ戻る
CPU/GPU対応 • CPU対応はライブラリのTFHEppで簡単に実現 -> しかし、AVX2等を使っても遅い -> V100などを用いたGPGPUで高速化した例がある • GPU対応で、ホスト,デバイス間のメモリ一貫性は? ->
毎回転送? -> すべてGPUオンメモリ?
CPU/GPU対応 • ゲートの出力値を保持する変数は高々数100KB • 一度転送すれば暗号処理自体は10ms程度処理にかかる • H2D,D2Hのメモリ転送の影響は限りなく小さい • かなりのCPUバウンドな処理のため、MPIでもスケールする...? •
CPUとGPUの両者を用いたスケジューラを開発中 毎回転送することにした