「risc-v量子拡張の参照実装とマイクロ波制御 量子 ... · 2020. 2. 19. · page. 1...
TRANSCRIPT
Page. 1
「RISC-V量子拡張の参照実装とマイクロ波制御量子ファームウェアの開発 」
担当PM: 徳永PM
提案者名: 山崎清仁(代表者) 新里祐教
今村謙之
2020.02.08
2018・2019年度未踏ターゲット成果報告会
Page. 2
プロジェクトメンバーの紹介
今村謙之
新里祐教
山崎清仁
(代表者)
(2017年8月〜/Maker出品のスピナー)
量子情報、量子計算のOSSコミュニティ「OpenQL Project」を2016年9月に発足し、
運営している。
1/14
あらゆる分野で先端技術を具現化していくフルスタック・エンジニア。
各国で開催されている「Maker Fair」に
様々な自作デバイスを出展。
マイクロ波を扱うプロフェッショナル。
自宅にパラボラアンテナを立てており、
最近はロケットに搭載される通信デバイス
を開発するアビオニクス・エンジニア。
(2019年5月〜/MOMOの高周波無線部を担当)
Page. 3
オープンソースのプロフェッショナルとしての挑戦
量子計算機のための全く新しい仕組みを1から構築するのではなく、
今まで莫大な蓄積がある古典計算機のプログラミング開発基盤や
マイクロ波制御の枠組みを、量子へ拡張することによって
量子計算機の開発環境を作ること。
2/14
Page. 4
古典計算のプログラムとコンパイラ
3/14
int x = 15;int y = x;
fe042623fec427830087e7930047e7930027e7930017e793fef42623fef42423
li a5,15sw a5,-20(s0)sw a5,-24(s0)
47bdfef42623fef42423
高級言語 アセンブラ 機械語
sw zero,-20(s0)lw a5,-20(s0)ori a5,a5,8ori a5,a5,4ori a5,a5,2ori a5,a5,1sw a5,-20(s0)sw a5,-24(s0)
最適化
Page. 5
古典計算のプログラムとコンパイラ
3/14
int x = 15;int y = x;
fe042623fec427830087e7930047e7930027e7930017e793fef42623fef42423
li a5,15sw a5,-20(s0)sw a5,-24(s0)
47bdfef42623fef42423
高級言語 アセンブラ 機械語
sw zero,-20(s0)lw a5,-20(s0)ori a5,a5,8ori a5,a5,4ori a5,a5,2ori a5,a5,1sw a5,-20(s0)sw a5,-24(s0)
最適化
コンパイラは欠かせない存在
Page. 6
量子計算のプログラムの現状
4/14
qint x = 15;qint y = x;
fe042623fec427830087e7930047e7930027e7930017e793fef42623fef42423
q.X([0,1,2,3])...
47bdfef42623fef42423
高級言語 アセンブラ 機械語
q.X(3),q.X(2),q.X(1),q.X(0), q.H(0), q.CNOT(0, 8),
q.X(16), q.Y(16),q.CNOT(16, 8),q.H(16),q.measure(16, 0),q.CNOT(0, 8),
q.CZ(16, 8),....
ほとんど存在しない
ほとんど存在しない最適化処理もない
Page. 7
量子計算のプログラムの現状
4/14
qint x = 15;qint y = x;
fe042623fec427830087e7930047e7930027e7930017e793fef42623fef42423
q.X([0,1,2,3])...
47bdfef42623fef42423
高級言語 アセンブラ 機械語
q.X(3),q.X(2),q.X(1),q.X(0), q.H(0), q.CNOT(0, 8),
q.X(16), q.Y(16),q.CNOT(16, 8),q.H(16),q.measure(16, 0),q.CNOT(0, 8),
q.CZ(16, 8),....
ほとんど存在しない
ほとんど存在しない最適化処理もない
量子コンパイラが必要
Page. 8
新規性と期待される効果
非量子な技術者(既存の計算機のコンパイラ、マイクロ波制御の技術者) にとって理解しやすく、量子分野への参入や開発がしやすくるなることが期待できる。
5/14
コンパイラ最適化などの、古典における既存の効率化の技術を そのまま量子へ活用できる可能性がある。
計算機をスケールした際に高い性能を発揮することは歴史的に見て非常に困難な課題。 ここで改造するオープンソースのアーキテクチャはそのような競争を生き抜いたものである。 そのアーキテクチャを踏襲しつつ、量子に拡張することは、
量子計算機のアーキテクチャとして提案する上でも有力な方法の1つである。
新規性
期待される効果
Page. 9
テーマ「RISC-V量子拡張の参照実装とマイクロ波制御量子ファームウェアの開発」として、
サンプル量子プログラム
量子ファームウェア
量子コンパイラ
量子プロセッサ シミュレーター (マイクロ波
入力・出力)
(RISC-V 量子拡張版バイナリ)
量子ビット回路 シミュレーター
簡単なサンプルとなる量子プログラム
(検証用アプリケーション)
(各コンポーネントの関連図 )
量子ビット・シミュレーター
6/14
開発したアプリケーション
マイクロ波制御のための「量子ファームウェア」
RISC-V量子拡張に対応した「量子コンパイラ」
RISC-V量子拡張が動作する参照実装「量子プロセッサ・シミュレーター」
を開発しました。
Page. 10
古典コンピュータ・アーキテクチャ(前提知識)
プログラム(C言語)
コンパイラ
メモリ
バイナリ・プログラム
CPU 命令 セット レジスタ
・人が理解できる・人が作成する
・最適化される
・CPUが理解する形式
・loadされて実行される
7/14
制御
ファーム ウェア
OS カーネル
外部 IO I/F
Page. 11
開発したソフトウェアの要素の役割り
QPU
量子ファーム ウェア
量子命令 セット
量子 レジスタ
Qubits
制御
8/14
プログラム(C言語)
量子コンパイラ
メモリ
バイナリ・プログラム
CPU 命令 セット レジスタ
・CPUが理解する形式
・loadされて実行される
外部 IO I/F
制御
ファーム ウェア
OS カーネル
・人が理解できるプログラムを CPU/QPUが理解できる形式へ変換する ・コード最適化をほどこす
・CPUのコプロセッサとして量子計算を行う
・プログラマブルなマイクロ波制御 ・量子ゲート命令列をデジタル信号 へ変換する
・人が理解できる・人が作成する
・最適化される
Page. 12
開発したソフトウェアの詳細
(以降は専門知識を含みます)
Page. 13
量子プロセッサ シミュレーター
量子ビット回路 シミュレーター
サンプル 量子
プログラム
開発したソフトウェアの全体像
9/14
高級言語 中間言語
古典計算部分
量子計算部分
量子機械語 (誤り耐性のある)
QPU
バイナリ(古典 + 量子)
古典計算最適化
量子計算最適化
実行
実機実行が 可能な量子命令列
(誤り耐性のない)
物理命令シーケンス
デジタル信号
ハードウェア・シミュレーター
ソフトウェア・シミュレーター パルスシーケンス
GNU Radioによる波形生成処理
量子コンパイラ
コンパイル
量子ファームウェア
Page. 14
量子コンパイラ
• C/C++コンパイラ(GCC)RISC-V量子拡張命令セットをインラインアセンブラで直接記述できるように拡張。
• コンパイラ基盤(LLVM)GO-Likeな独自言語を参照実装として開発。
int main() { … (古典プログラミング処理) … asm volatile(
“qooh.k qa0, qt1,qzero, 1;” “qmeas.k %0, qt1, qzero, 1;” :”=r”(ret) : );}
10/14
func main() { qint x, y; // primitiveな型 var z; x = 0;
y = 1; x = y; // quantum teleportation if x == 1 { // Implicit Measurement write x; }
人間にとって直感的で、意図しないミス がなく実行可能なプログラムを開発する プログラミングを可能にします。
GO-Likeな独自言語な量子プログラム(例)
既存の古典プログラミング資産に 手を加えることなく、容易に量子回路 を組込めるようにしています。
インライン量子アセンブラ(例)
既存のコンパイラを改造、独自言語の開発
Page. 15
量子プロセッサ・シミュレーター
RISC-V量子拡張された量子プロセッサを仮想マシン(VirtualMachine,VM)として開発しました。
RISC-V(標準機能)
基本整数命令セット (RV32I / RV64I )
レジスタ x0 〜 x31, pc
量子拡張(=QPU)
圧縮命令拡張 (RV32C)
乗算・除算命令拡張 (RV32M / RV64M )
浮動小数点数拡張:RVF, RVD
レジスタ f0 〜 f31
浮動小数点数命令セット (RV32F / RV64F ) (RV32D / RV64D )
ベクトル命令拡張 (RV32V / RV64V )
量子命令 セット (RV32K / RV64K )
量子レジスタ q0 〜 q31
アトミック 命令拡張 (RV32A)
特権命令
将来的な拡張 (B, E, H, J, L, N, P, Q )
・・・
q31:::
:q2q1
・・・
・・・
11/14
RISC-Vの標準機能はそのまま RISC-Vの標準機能にある カスタム拡張を利用して拡張
qmeas.kqtelep.k
qoox.k
qooz.kqooh.k
qoos.k
qoosdg.k
qoot.kqootdg.k
qtocx.k
RISC-V謹製のCPUシミュレーターを改造
Page. 16
量子ファームウェア(開発した画面)
・パルス波の制御の基本的なBlockを検討し、枠組みを開発。・QuTipシミュレーターとの接続部分を実装。
SDR(SoftwareDefinedRadio)を用いることにより、ソフトウェアで定義可能なマイクロ波を制御する量子ファームウェア(読み出し、1量子ビット操作)を開発しました。
12/14
GNU Radio の改造
Page. 17
実用化に向けた展望
■「量子プログラミング言語」の利用促進
RISC-V量子拡張の仕様は、CreativeCommonsAttribution4.0Internationalのライセンスのもとriscv-k-specという名称でGithubにて公開予定。
■開発したプログラムの次期バージョンへの展開
本アプリケーションは、開発後も継続して次のような具体的なビジョンがあります。
「量子コンパイラ」
「量子プロセッサ・シミュレーター」
「量子ファームウェア」
・NISQに対応するための命令セットの追加・QPUprofileを定義して量子最適化の機構を変更する仕組みの追加
・量子最適化処理の充実
・任意角回転操作など量子拡張命令の追加・RISC-V量子拡張(QPU)onRISC-V
・メニーコア実行環境で量子拡張シミュレータの動作
・教育用として「視覚的・間隔的なプレゼンテーション」の作成・OpenPulseフォーマットの変換機能の追加
・研究機関と共同で実際の超伝導型量子ビットに対する制御を試していきたい
13/14
Page. 18
情報公開
14/14
https://quantum.siprop.org/ 開発ブログなど
https://github.com/openql-org/
ソース公開 ※プライベートリボジトリにて開発、公開予定。公開準備中。
https://openql.slack.com/ https://openql.connpass.com/
コミュニティ
(※招待制)(Slack)
(勉強会)
Page. 19
ありがとうございました