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
340
0
Share
VSP専用プロセッサ設計と実行エンジンIyokanについて
VTb
February 08, 2020
More Decks by VTb
See All by VTb
MR1を支えた Ethernet&ROS システム
pibvt
3
1.3k
3日間で作る フルスクラッチHTTPサーバー on STM32F767 Nucleo
pibvt
14
6k
Hello_UEFI_で学ぶC言語ポインタ.pdf
pibvt
0
190
64bit UEFIからxv6を起動してみた
pibvt
0
540
Other Decks in Technology
See All in Technology
20260423_執筆の工夫と裏側 技術書の企画から刊行まで / From the planning to the publication of technical book
nash_efp
3
450
ハーネスエンジニアリングの概要と設計思想
sergicalsix
9
5.4k
The Journey of Box Building
tagomoris
4
3.5k
AWS DevOps Agentはチームメイトになれるのか?/ Can AWS DevOps Agent become a teammate
kinunori
6
770
これからの「データマネジメント」の話をしよう
sansantech
PRO
0
150
ハーネスエンジニアリングをやりすぎた話 ~そのハーネスは解体された~
gotalab555
5
1.8k
Choose your own adventure in agentic design patterns
glaforge
0
150
AgentCore Managed Harness を使ってみよう
yakumo
2
230
国内外の生成AIセキュリティの最新動向 & AIガードレール製品「chakoshi」のご紹介 / Latest Trends in Generative AI Security (Domestic & International) & Introduction to AI Guardrail Product "chakoshi"
nttcom
4
1.4k
扱える不確実性を増やしていく - スタートアップEMが考える「任せ方」
kadoppe
0
320
巨大プラットフォームを進化させる「第3のROI」
recruitengineers
PRO
2
1.2k
Hacobu Tech Deck
hacobu
PRO
0
130
Featured
See All Featured
Mind Mapping
helmedeiros
PRO
1
160
Build your cross-platform service in a week with App Engine
jlugia
234
18k
How To Speak Unicorn (iThemes Webinar)
marktimemedia
1
440
More Than Pixels: Becoming A User Experience Designer
marktimemedia
3
380
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
12
1.1k
Technical Leadership for Architectural Decision Making
baasie
3
340
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
17k
Six Lessons from altMBA
skipperchong
29
4.2k
Navigating Algorithm Shifts & AI Overviews - #SMXNext
aleyda
1
1.2k
Automating Front-end Workflow
addyosmani
1370
200k
Ten Tips & Tricks for a 🌱 transition
stuffmc
0
99
We Have a Design System, Now What?
morganepeng
55
8.1k
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の両者を用いたスケジューラを開発中 毎回転送することにした