25
FPGAによる量子コンピュータ シミュレーションシステムの開発 三好 健文 2020.2.8 藤井PM,鈴木TA

FPGAによる量子コンピュータ シミュレーションシステムの …FPGAならスループットは変わらない(回路は複雑になる) 量子コンピュータシミュレーション

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Page 1: FPGAによる量子コンピュータ シミュレーションシステムの …FPGAならスループットは変わらない(回路は複雑になる) 量子コンピュータシミュレーション

FPGAによる量子コンピュータシミュレーションシステムの開発

三好 健文2020.2.8

藤井PM,鈴木TA

Page 2: FPGAによる量子コンピュータ シミュレーションシステムの …FPGAならスループットは変わらない(回路は複雑になる) 量子コンピュータシミュレーション

このプロジェクトについて

● 量子コンピュータのシミュレーションの高速化・大規模化・高精度化は嬉しい

● はたしてFPGAに専用演算器を実装したら問題が解決するか?

● 要素演算と,データ転送機構を実装○ 1コアを実装したFPGAではCPUより一桁程度遅い

● 高速化・大規模化・高精度化に向けて

背景

クエスチョン

成果

とても

今後の展望

2

Page 3: FPGAによる量子コンピュータ シミュレーションシステムの …FPGAならスループットは変わらない(回路は複雑になる) 量子コンピュータシミュレーション

複素確率振幅に対する行列計算を使う

量子コンピュータのシミュレーション

3

U U

U U

11 12

21 22

α

β

U U U U

U U U U

U U U U

U U U U

11 12

21 22

c

c

c

c

00

01

10

11

31 32

41 42

13 14

23 24

33 34

43 44

1量子ビットに対する操作

2量子ビットに対する操作

CNOT =

1 0

0 1I =

0 1

1 0X =

0 -i

i 0Y =

1 0

0 -1Z =

1 1

1 -11/√2H =

1 0 0 0

0 1 0 0

0 0 0 1

0 0 1 0

12

4x4行列

2x2行列

|0 =

|1 =

10

10

Page 4: FPGAによる量子コンピュータ シミュレーションシステムの …FPGAならスループットは変わらない(回路は複雑になる) 量子コンピュータシミュレーション

n-qubitによる 2 個の確率振幅に対する行列計算

量子コンピュータのシミュレーション

・・・

これを操作

~~ ~~

n

4

~~ ~~

U U

U U

11 12

21 22

U U

U U

11 12

21 22

U U

U U

11 12

21 22

~~ ~~ ~~ ~~

これとこれを操作

4x4行列

4x4行列

n

n2

Page 5: FPGAによる量子コンピュータ シミュレーションシステムの …FPGAならスループットは変わらない(回路は複雑になる) 量子コンピュータシミュレーション

量子コンピュータのシミュレーションに必要なメモリ

10K

10T

10M

10G

10P

5

Page 6: FPGAによる量子コンピュータ シミュレーションシステムの …FPGAならスループットは変わらない(回路は複雑になる) 量子コンピュータシミュレーション

速く・たくさんのデータを演算したい

一つのプロセッサではちょっと太刀打ちできない

複数プロセッサを並べる(扱えるメモリ量を増やす)

GPUのような並列計算に強いプロセッサを利用する

プロセッサ

プロセッサ

プロセッサ

プロセッサ

メモリ

メモリ

メモリ

メモリ

NW

6

Page 7: FPGAによる量子コンピュータ シミュレーションシステムの …FPGAならスループットは変わらない(回路は複雑になる) 量子コンピュータシミュレーション

速く・たくさんのデータを演算したい

一つのプロセッサではちょっと太刀打ちできない

複数プロセッサを並べる(扱えるメモリ量を増やす)

GPUのような並列計算に強いプロセッサを利用する

プロセッサ

プロセッサ

プロセッサ

プロセッサ

メモリ

メモリ

メモリ

メモリ

NW

7

量より質への転換が必要!!

FPGAでカスタムハードウ

ェア化するのはどうか

な?

Page 8: FPGAによる量子コンピュータ シミュレーションシステムの …FPGAならスループットは変わらない(回路は複雑になる) 量子コンピュータシミュレーション

FPGAとは?

論理回路の素 (LUT+FF)

柔軟な配線リソース

I/O

8

Page 9: FPGAによる量子コンピュータ シミュレーションシステムの …FPGAならスループットは変わらない(回路は複雑になる) 量子コンピュータシミュレーション

既存プロセッサ vs FPGA(独自プロセッサ)

既存プロセッサ FPGA(独自プロセッサ)

データ型 8bit, 16bit, 32bit, 64bitが基本IEEE 754 浮動小数点数

ユーザが自由に決められるビット数,表現形式も自由

演算器の構成 プロセッサ設計時点で決定 ユーザが自由に決められるパイプライン並列による高速化

外部I/O プロセッサ設計時点で決定 自由にI/Oと演算を接続できる

メモリ帯域 高速,キャッシュ・プリフェッチ 既存プロセッサと比べると低速

動作周波数 高速 低速(~1/10)

(手軽な)実行環境 汎用プロセッサ,GPGPU,クラウド

安価なFPGAボード,クラウド

9

Page 10: FPGAによる量子コンピュータ シミュレーションシステムの …FPGAならスループットは変わらない(回路は複雑になる) 量子コンピュータシミュレーション

PCIe

FPGAによる量子コンピュータシミュレータ既存シミュレーションソフトウェア(Qulacs)との連携

PCIe

FPGAカードFPGAカードFPGA

外部メモリ(8-64GB)演算カーネル 1-qubit演算 (2x2行列演算) 2-qubit演算 (4x4行列演算)

命令列(コマンド+カーネル行列)

量子ビットデータ(確率振幅の配列)

Kick: j L1L1: li a0, 10 # a0 = 10 li a1, 0 # a1 = 0Loop: beq a0, a1, End Q1, a1, 2, 2, 2, 3 addi a1, a1, 1 j LoopEnd: j Kick

0: 0+0i1: 1+0i2: √2+0i3: -√2+0i...

FPGAカード

10

Page 11: FPGAによる量子コンピュータ シミュレーションシステムの …FPGAならスループットは変わらない(回路は複雑になる) 量子コンピュータシミュレーション

実装の鍵

実装の鍵(1) ー 専用演算回路

実装の鍵(2) ー アドレス生成・アクセス管理

11

Page 12: FPGAによる量子コンピュータ シミュレーションシステムの …FPGAならスループットは変わらない(回路は複雑になる) 量子コンピュータシミュレーション

実装の鍵(1) 専用演算回路{1, 2}-qubit操作専用演算器をFPGA上に実装

4ns毎に2個の結果が得られる

250MHzで動作

10-qubitに対し2.23u秒

入力

出力

12

// 1-qubit操作psi[dst0] = U[0] * q0 + U[1] * q1;psi[dst1] = U[2] * q0 + U[3] * q1;

// 2-qubit操作psi[dst0] = U[0] *q0 + U[1] *q1 + U[2] *q2 + U[3] *q3;psi[dst1] = U[4] *q0 + U[5] *q1 + U[6] *q2 + U[7] *q3;psi[dst2] = U[8] *q0 + U[9] *q1 + U[10]*q2 + U[11]*q3;psi[dst3] = U[12]*q0 + U[13]*q1 + U[14]*q2 + U[15]*q3;

https://github.com/qulacs/qulacs のコードを参考に

Page 13: FPGAによる量子コンピュータ シミュレーションシステムの …FPGAならスループットは変わらない(回路は複雑になる) 量子コンピュータシミュレーション

実装の鍵(2) アドレス生成・アクセス管理専用演算器を間断なく動作させるための仕組みを実装

外部メモリ

専用演算器 1-qubit向け演算器 2-qubit向け演算器

外部メモリ

$ $

FPGA

(1) 余裕はない (2) バーストアクセス必須

アクセス範囲のパタンがターゲットqubitによって全然違う

16GBps

演算に必要なアドレスを各ポートに転送

演算に必要なデータを$から取り出し供給

重複チェック,$の空き容量チェック

演算器が必要とするアドレスを先行して計算

メモリから読み出したデータを適切な$に分配

貴重なI/O帯域を節約 13

Page 14: FPGAによる量子コンピュータ シミュレーションシステムの …FPGAならスループットは変わらない(回路は複雑になる) 量子コンピュータシミュレーション

実装結果

https://github.com/qulacs/qulacs のデータに 本実装のFPGA実装の予測値 (estimated)を追加

FPGA

使用量 VU9P(AWS-F1)

LUT 75,111(6.35%) 1,182,240

FF 127,552(5.39%) 2,364,480

DSP 684(10%) 6,840

専用演算器のリソース使用量

Tesla V100 PCIe

E5-2694 v4 @2.6GHz

14

Page 15: FPGAによる量子コンピュータ シミュレーションシステムの …FPGAならスループットは変わらない(回路は複雑になる) 量子コンピュータシミュレーション

このプロジェクトについて

● 量子コンピュータのシミュレーションの高速化・大規模化・高精度化は嬉しい

● 果たしてFPGAに専用演算器を実装したら問題が解決するか?

● 要素演算と,データ転送機構を実装○ 1コアを実装したFPGAではCPUより一桁程度遅い

● 高速化・大規模化・高精度化に向けて

背景

クエスチョン

成果

とても

今後の展望

15

Page 16: FPGAによる量子コンピュータ シミュレーションシステムの …FPGAならスループットは変わらない(回路は複雑になる) 量子コンピュータシミュレーション

既存プロセッサ vs FPGA(独自プロセッサ)

既存プロセッサ FPGA(独自プロセッサ)

データ型 8bit, 16bit, 32bit, 64bitが基本IEEE 754 浮動小数点数

ユーザが自由に決められるビット数,表現形式も自由

演算器の構成 プロセッサ設計時点で決定 ユーザが自由に決められるパイプライン並列による高速化

外部I/O プロセッサ設計時点で決定 自由にI/Oと演算を接続できる

メモリ帯域 高速,キャッシュ・プリフェッチ 既存プロセッサと比べると低速

動作周波数 高速 低速(~1/10)

(手軽な)実行環境 汎用プロセッサ,GPGPU,クラウド

安価なFPGAボード,クラウド

再掲

16

Page 17: FPGAによる量子コンピュータ シミュレーションシステムの …FPGAならスループットは変わらない(回路は複雑になる) 量子コンピュータシミュレーション

高速化への展望

演算カーネルの対象量子ビット数を増やす= 並列数の増加 or より大きい演算器を実装する

必要なメモリアドレスの算出

演算

対象量子ビット数が多くなれば負荷が大きくなるFPGAならスループットは変わらない(回路は複雑になる)

量子コンピュータシミュレーション

リソース使用量とHBMの帯域から考えると8倍くらいは高速化できる見込み

対象量子ビット数が増えるとスループットは増加する

17

Page 18: FPGAによる量子コンピュータ シミュレーションシステムの …FPGAならスループットは変わらない(回路は複雑になる) 量子コンピュータシミュレーション

高速化への展望

演算カーネルの対象量子ビット数を増やす= 並列数の増加 or より大きい演算器を実装する

必要なメモリアドレスの算出

演算

対象量子ビット数が多くなれば負荷が大きくなるFPGAならスループットは変わらない(回路は複雑になる)

量子コンピュータシミュレーション

リソース使用量とHBMの帯域から考えると8倍くらいは高速化できる見込み

対象量子ビット数が増えるとスループットは増加する

18

FPGA

Tesla V100 PCIe

E5-2694 v4 @2.6GHz

FPGA8 threads

FPGA64 threads

FPGA128 threads

Page 19: FPGAによる量子コンピュータ シミュレーションシステムの …FPGAならスループットは変わらない(回路は複雑になる) 量子コンピュータシミュレーション

大規模化への展望

FPGA間ネットワーク

・・・

FPGAボード FPGAボード FPGAボード

10Gbps - 400Gbps

メモリ

データ転送

演算処理

FPGA

メモリ

データ転送

演算処理

FPGA

メモリ

データ転送

演算処理

FPGA

データ転送と演算処理の密結合で,低レイテンシ・高スループットの演算を実現複数のFPGAボードのメモリを使って量子ビット数を増やすことができる

I/Oと演算を直結できることの活用

19

Page 20: FPGAによる量子コンピュータ シミュレーションシステムの …FPGAならスループットは変わらない(回路は複雑になる) 量子コンピュータシミュレーション

大規模化への展望

演算カーネル

演算カーネル

プロセッサ

プロセッサ

メモリ

メモリ

メモリ

メモリ

NW

専用ロジックで帯域を有効活用

リクエスト管理機構

リクエスト管理機構

リクエスト管理機構

リクエスト管理機構

リクエスト管理機構をノード間通信の帯域節約に活用することで必要なNW帯域の削減が見込める 20

Page 21: FPGAによる量子コンピュータ シミュレーションシステムの …FPGAならスループットは変わらない(回路は複雑になる) 量子コンピュータシミュレーション

高精度化への展望

FPGAならではの特殊演算器の実装 (ex. √2の演算器)

(a + 1/√2 b) + (c + 1/√2 d)= 1/√2 (√2 a + b) + 1/√2 (√2 c + d)= 1/√2 (√2 (a + c) + (b + d))

(a + 1/√2 b)(c + 1/√2 d)= 1/√2 (√2 a + b) 1/√2 (√2 c + d)= 1/2 (√2 a + b)(√2 c + d)= 1/2 ((2ac + bd) + √2 (ad + bc))

あらわれる無理数を√2に制限すると,性能変わらず高精度化が実現できる

√2 ab

√2 cd

√2 (a+c)

b+d+

√2 ab

√2 cd

√2 (ad+bc)

2ac+bd×

21

Page 22: FPGAによる量子コンピュータ シミュレーションシステムの …FPGAならスループットは変わらない(回路は複雑になる) 量子コンピュータシミュレーション

まとめ

● 量子コンピュータのシミュレーションの高速化・大規模化・高精度化は嬉しい

● 果たしてFPGAに専用演算器を実装したら問題が解決するか?

● 要素演算と,データ転送機構を実装○ 1コアを実装したFPGAではCPUより一桁程度遅い (x8でCPU同等,x64でGPU同等の見込み )

● 高速化・大規模化・高精度化に向けて

背景

クエスチョン

成果

とても

今後の展望

22

Page 23: FPGAによる量子コンピュータ シミュレーションシステムの …FPGAならスループットは変わらない(回路は複雑になる) 量子コンピュータシミュレーション

+α: リクエスト管理機構の転用

演算に必要なアドレスを各ポートに転送

演算に必要なデータをキャッシュから取り出しカーネルに供給

リクエストアドレスの重複チェック$の空き容量チェック

アプリケーションに応じて用意するモジュール(今回は量子コンピュータシミュレーションの1-qubit, 2-qubit演算用)

I/O帯域の節約

ユーザーアプリケーションロジック

外部メモリ

外部メモリから読み出したデータを適切な$に振り分ける

23

Page 24: FPGAによる量子コンピュータ シミュレーションシステムの …FPGAならスループットは変わらない(回路は複雑になる) 量子コンピュータシミュレーション

PCIe

+α: 実機との接続!?既存シミュレーションソフトウェア(Qulacs)との連携

PCIe

FPGAカードFPGAカードFPGA

実機制御用信号処理回路

命令列(コマンド+カーネル行列)

Kick: j L1L1: li a0, 10 # a0 = 10 li a1, 0 # a1 = 0Loop: beq a0, a1, End Q1, a1, 2, 2, 2, 3 addi a1, a1, 1 j LoopEnd: j Kick

0: 0+0i1: 1+0i2: √2+0i3: -√2+0i...

FPGAカード

実機へ

24

Page 25: FPGAによる量子コンピュータ シミュレーションシステムの …FPGAならスループットは変わらない(回路は複雑になる) 量子コンピュータシミュレーション

まとめ

● 量子コンピュータのシミュレーションの高速化・大規模化・高精度化は嬉しい

● 果たしてFPGAに専用演算器を実装したら問題が解決するか?

● 要素演算と,データ転送機構を実装○ 1コアを実装したFPGAではCPUより一桁程度遅い (x8でCPU同等,x64でGPU同等の見込み )

● 高速化・大規模化・高精度化に向けて

背景

クエスチョン

成果

とても

今後の展望

25