$30 off During Our Annual Pro Sale. View Details »
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
460
Other Decks in Technology
See All in Technology
同一クラスタ上でのFluxCDとArgoCDのリソース最適化の話
kumorn5s
0
160
Replit Agent
kawaguti
PRO
2
210
高品質と高スピードを両立させるソフトウェアQA/Software QA that Supports Agility and Quality
goyoki
10
1.7k
問題を認識して解決できる人は何でもできる
i999rri
0
120
WED Company Deck for Engineer
wed
2
3.7k
まだチケットを手動で書いてるの?!GitHub Actionsと生成AIでチケットの作成を自動化してみた話 / 20241207 Yoshinori Katayama
shift_evolve
1
800
Oracle Base Database Service:サービス概要のご紹介
oracle4engineer
PRO
0
15k
Kaggleふりかえり会〜LLM 20 Questions & ISIC 2024
recruitengineers
PRO
2
190
Advancing the 3D Geospatial Ecosystem in Japan via Global Collaborations
osgeojp
0
190
職能を超えたモブプログラミングが品質に与えた良い影響
tonionagauzzi
2
260
セキュリティ系アップデート全体像と AWS Organizations 新ポリシー「宣言型ポリシー」を紹介 / reGrowth 2024 Security
masahirokawahara
0
270
Amazon Bedrock Knowledge BasesがGraphRAGに対応!! ・・・それってつまりどういうコト!? をチョット深堀ってみる
tokushun
0
110
Featured
See All Featured
A Philosophy of Restraint
colly
203
16k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
44
9.3k
StorybookのUI Testing Handbookを読んだ
zakiyama
27
5.3k
Fireside Chat
paigeccino
34
3.1k
VelocityConf: Rendering Performance Case Studies
addyosmani
326
24k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
365
25k
Embracing the Ebb and Flow
colly
84
4.5k
Git: the NoSQL Database
bkeepers
PRO
427
64k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
38
1.8k
Side Projects
sachag
452
42k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
132
33k
The Power of CSS Pseudo Elements
geoffreycrofte
73
5.4k
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の両者を用いたスケジューラを開発中 毎回転送することにした