當前位置:
首頁 > 知識 > 開創性提供量子計算機從軟到硬的完整可編程性!Delft提出可執行量子計算指令集eQASM

開創性提供量子計算機從軟到硬的完整可編程性!Delft提出可執行量子計算指令集eQASM

機器之心發布

機器之心編輯部

傳統計算機硬體的計算單元與控制單元一樣,都是數字電路,能夠輕易集成在一塊處理器上;傳統軟體輸出的二進位代碼則可以直接在處理器上運行。量子計算機與此不同,其計算單元是量子比特,而控制媒介是模擬信號,通常需要由獨立於量子晶元的控制單元產生。額外的量子控制架構,作為量子軟體與量子硬體之間的橋樑,構成了量子計算機與傳統計算機在系統結構上最核心的區別之一。但在量子計算工程領域,以往量子軟體與量子硬體的研究相對獨立,這導致二者的設計及實現難以有機地聯接在一起。

去年 8 月,荷蘭代爾夫特理工大學博士生付祥及其所在團隊提出了一種針對超導量子計算機的控制微體系結構,首次有機地連接了量子軟體和量子硬體,並使傳統處理器的設計技術能夠為量子控制處理器所用(MICRO 2017 最佳論文獎)。

針對現有量子彙編語言信息密度低、無法在量子硬體上直接執行、難以支持量子程序流控制(如反饋控制)等問題,近日,該團隊又開創性地提出了一種可執行的量子計算機指令集架構 eQASM,旨在為量子軟體提供一個通用靈活的硬體抽象,實現量子計算機從軟體到硬體的完整可編程性。該論文已於近日被計算機體系結構頂會 HPCA 2019 接收。

研究團隊表示,希望 eQASM 能夠像 RISC-V 指令集(一款傳統計算機領域十分流行的開源指令集)一樣,成為量子計算領域可供業界、學界自由使用的開源指令集。

從量子控制微體系結構出發的指令集架構

以往量子計算工程方面的研究主要集中在兩端上:頂層的軟體系統(如演算法設計、語言設計、編譯器、優化、低階彙編語言等);和底層的物理系統實現(如超導、半導體、光子等不同的量子比特的實現、量子晶元結構的設計、量子比特的具體控制等)。由於這兩個方向的發展都還很初級,二者相對獨立,彼此之間的互動有限。這導致了量子軟體與量子硬體之間的鴻溝:即量子軟體的輸出無法在量子硬體上直接執行,而需要額外的中間翻譯步驟來將二者聯繫起來。

具體做法是,量子軟體先輸出低階的量子彙編程序,然後額外的中間層軟體將彙編程序轉換為多個數字化表示的波形。這些波形包含了所需的全部量子操作。將這些波形上傳到任意波形發生器之後,任意波形發生器通過數模轉換產生出這些模擬波形並打到量子比特上,從而實現量子操作。

但這種方式有三個主要弊端:

模擬設備開銷很大,擴展性較差;

系統的配置時間長,降低了量子比特的使用效率;

量子軟體提供的靈活的編程能力無法被硬體支持。

針對這些問題,去年 8 月,荷蘭代爾夫特理工大學從計算機工程的角度出發,提出了一個通用可編程的量子計算機的全系統層次的結構方案(如圖+1 所示),以及一種針對超導量子計算機的控制微體系結構 QuMA(對應圖+1 綠色部分)。QuMA 首次有機地連接了量子軟體和量子硬體,使得傳統計算機處理器的設計技術能夠為量子控制處理器所用。

圖+1:量子計算系統層次概覽(X. Fu et al. MICRO-50, 2017)

經典計算機軟體程序在用高級編程語言(如 C++)描述之後,會被編譯器(如 GCC)翻譯為一組指令集(如 x86)中的指令,最後被相應的處理器(如 Intel 處理器)執行。在這個過程中,指令集作為軟體與硬體之間的介面存在,其地位至關重要。

基於 QuMA 的系統與此類似,量子編譯器(如 OpenQL)可以編譯量子程序產生該團隊提出的量子微指令集 QuMIS 中的指令,並在量子控制微體系結構 QuMA 上執行,最後靈活地控制量子比特的操作。

由於無法實現基於對量子比特測量結果的反饋控制、與具體硬體耦合過於緊密等問題,量子微指令集 QuMIS 無法實現完整的量子程序流控制,不是一個合格的量子計算指令集體系結構(quantum instruction set architecture, QISA,對應圖+1 黃色部分),從而無法像經典計算機中的 x86 等指令集一樣,成為量子計算機軟硬體之間的通用介面。

但現有低層次量子編程語言如 QASM、QASM-HL、Quil、OpenQASM、f-QASM 等,它們的目標是提供在數學上等效於量子線路模型的表達能力,卻較少地考慮了在硬體上的執行能力。這導致某些代碼在語法上可能是正確的,但在硬體上卻不可執行。同時,量子程序不僅描述量子狀態的演變,同等重要的是,它還描述了程序流的控制。

即使低階彙編提供了程序流的控制能力,但國內外現有的量子云平台的硬體,都不具執行具有量子程序流控制的代碼的能力。如 IBM 的 Quantum Experience 和 Rigetti 的 Forest 硬體,都還無法實現量子程序流的控制。

其次,由於有雜訊的中等規模量子(Noisy Intermediate-Scale Quantum, NISQ)設備對環境變化敏感,用於校準量子位和量子操作的實驗需要周期性地執行。這些實驗通常佔據了量子比特使用時間的很高比例。這些實驗的例子包括如測量量子比特的弛豫時間(T_1)和校準量子操作的波形的參數(幅度、相位、頻率等)等。它們需要使用未經校準或不常見的量子操作,並明確地改變操作的時序。現有的量子彙編語言主要基於已經校準好的操作,因此描述能力高度受限甚至不能描述很多各種量子實驗。

再之,因為能夠表達的硬體特性非常有限,量子編譯器很難通過在滿足約束的同時利用可能的硬體特性在各個方面上進行徹底的優化。這一事實在一定程度上限制了量子軟硬體的協同設計。

針對這些問題,基於廣泛使用的量子彙編語言 QASM,代爾夫特研究團隊再次開創性地提出了一種可執行的量子計算指令集 eQASM (executable QASM)。eQASM 定義了一個明確可行的經典與量子相結合的異構編程模型,不僅可以描述量子演算法,還可以描述許多常用的量子校準實驗,可大幅提升對量子比特的可操作性及量子比特的使用效率。

作為軟體輸出,eQASM 可由量子編譯器生成,來描述對應的量子程序;作為硬體輸入,eQASM 可被量子控制微體系結構 QuMA_v2 支持,能直接在量子硬體上執行。eQASM 既包含量子指令,也包含輔助性的經典指令來支持複雜的量子程序流控制。與 IBM 的 OpenQASM 支持參數化的量子操作不一樣,eQASM 支持離散的量子操作指令,這可有效地降低控制硬體的設計複雜度。

eQASM 是個開源的指令集,允許使用者可根據自己需求添加指令,但會由獨立團隊根據開發者需求維持該指令集的一個標準。該研究團隊目前正在開發支持 eQASM 的開源體系結構模擬器及相關工具鏈,助力開發者自由開發用於控制特定的量子晶元的量子控制微體系結構。

相關論文:eQASM: An Executable Quantum Instruction Set Architecture

論文地址:https://arxiv.org/abs/1808.02449

本論文的主要貢獻如下:

全面的量子程序流控制:eQASM 提出了兩類反饋控制以及用於實現這些反饋的微體系結構機制:簡單但快速的快速條件執行和用戶可任意定義的全面反饋控制。在這個基礎上,eQASM 可支持全面的量子程序流控制,包括順序、選擇分支、循環、遞歸等。

靈活的實現:eQASM 是一種 QISA 框架,其定義側重於彙編語法以及將彙編語言映射成二進位語言的基本規則。它需要針對特定平台自定義二進位格式(這個過程被稱為實例化),這有助於 eQASM 高效地控制不同的物理硬體,保證它的實用性。

編譯時可配置的量子操作:經典指令集能夠支持的操作一般是在設計之初就定義好的,與之不同,eQASM 允許編譯器根據應用程序的需要選擇所需的量子運算,這為基於編譯器的優化留下了充足的空間。

eQASM 概覽

作者認為,與 GPU 或 FPGA 類似,通過異構架構來整合量子計算與經典計算是一條可行之路。在量子-經典異構體系結構中,量子部分可作為協處理器,來加速經典處理器難以處理的特定任務。下面將介紹 eQASM 的編程和編譯模型、eQASM 的設計原則、體系結構狀態和指令的概況。

編程及編譯模型

OpenCL 是一種傳統異構並行計算的開放式行業標準,這被用作了定義 eQASM 的基礎。圖 1 展示了 eQASM 的編程和編譯模型。

圖 1:異構式量子編程和編譯模型

一個量子-經典混合程序包含一個主程序以及一個或多個量子核(quantum kernel),這些量子核可加速計算中的特定部分。主程序使用 Python 或 C++ 等經典編程語言描述,量子核使用 Scaffold 或 Q|SI> 等量子編程語言描述。混合編譯基礎架構會使用 GCC 等傳統編譯器將主程序編譯成傳統指令集代碼,之後再由主 CPU 執行。

OpenQL 等量子編譯器則會以兩個步驟編譯量子核。第一步,量子核會被編譯成 QASM 或一種在數學上等效於線路模型的格式。這種格式與硬體無關,而且可以移植到不同的量子硬體平台上。第二步會考慮大部分硬體限制,編譯器會在這一步執行量子比特的調度及低層次的優化。其輸出是由 eQASM 指令構成的量子代碼。這種量子代碼既包含量子指令,也包含用於支持包括反饋在內的量子程序流控制的輔助性經典指令。在主 CPU 將量子代碼載入進量子處理器之後,量子代碼就可直接執行了。

設計原則

eQASM 的設計重點是提供在真實硬體上可執行的全面的量子程序表達能力。它應該要能描述不同量子技術的量子應用,而不受限於特定的控制設備。在 NISQ 時代,量子校準實驗通常會佔據相當大比例的量子比特使用時間。eQASM 也有望助益校準量子比特和量子運算所需的實驗。eQASM 的設計遵循五個主要原則:

eQASM 應該包含經典指令,以支持運行時反饋等量子程序流控制。

eQASM 應該包含可明確指定量子操作時序的明確方法。

低層面的硬體信息應該被儘可能多地從 eQASM 彙編語言中抽離,以避免 eQASM 受限於特定的硬體實現。

量子指令編碼的信息密度應該很高,可以採用如經典架構中單指令多數據(SIMD)和超長指令字(VLIW)等方法。

通過配置,eQASM 允許使用不同的量子指令,從而支持不同的量子實驗及激進的編譯器優化技術(比如量子最優控制)。

指令概覽

量子技術發展迅猛,誰也不知道哪種量子技術會造就未來的量子計算機。為避免 eQASM 的格式受限於特定量子技術實現,eQASM 的定義側重於彙編層面以及將彙編代碼映射二進位指令的基本規則。二進位格式在 eQASM 實例化階段定義,可針對具體的控制電路設置和量子晶元定義。這在保證了 eQASM 彙編代碼的表達能力的同時,也給(微)體系結構設計師留下了相當大的自由度,讓他們可以根據微架構的實用性和性能進行設計。

eQASM 程序由混合的量子指令和輔助性的經典指令組成。表 1 給出了 eQASM 指令的概覽。因為主 CPU 可以提供經典計算能力,因此這裡的輔助性經典指令都是用於支持量子指令執行的簡單指令,不包含複雜指令(比如浮點指令)。

表 1:eQASM 指令概覽

eQASM 代碼示例

AllXY 實驗是一個用於檢驗量子操作是否準確的常用實驗。下圖顯示了實現 AllXY 實驗的 eQASM 代碼的一部分。這段代碼中顯示了兩種不同的對量子操作的時序的描述方式:即通過顯式的 QWAIT 指令(第 5 行與第 9 行),或隱式的前置等待時間(第 6 至 8 行)。這兩種方式規定的是前後兩個操作的起始時間差。假定每個單量子比特門的時間為 1 個周期(20 ns),那麼在第 6 行的 Y 門完成之後,第 7 行的兩個量子門 X90 與 X 會緊跟著同時執行。在第二個周期結束之後,第 8 行的測量操作開始執行。用這種方式可以準確地描述了量子門的時序、並行性等。據團隊表示,將量子操作的時序顯式地納入量子彙編語言是 eQASM 的特點之一,這使得 eQASM 能夠高效地支持量子計算實驗與演算法優化對時序的控制需求。

圖 3:描述 AllXY 實現的 eQASM 代碼的一部分

下面的代碼則顯示了 eQASM 的反饋控制能力。在這段代碼中,首先測量量子比特 Q1(第 4 行),在等待 30 個周期(第 5 行,一個周期 20ns)之後,經典指令獲得測量結果,並根據測量結果選擇後續程序分支(第 6 至 8 行):如果對 Q1 的測量結果是 0,那麼對量子比特 Q0 執行一個 X 操作(第 10、11 行),否則對量子比特 0 執行一個 Y 操作(第 13 行)。基於量子指令與經典指令的混編,eQASM 提供了對程序流的控制能力。在硬體上可實現的量子程序流控制,這構成了 eQASM 與其他現有量子彙編語言相比的突出之處。

圖 5:使用輔助性經典指令實現基於量子比特測量結果的反饋控制

eQASM 實例及實驗結果

eQASM 實例化

針對一個七量子比特的超導量子處理器,論文將 eQASM 實例化成一個 32 位的指令集,並通過使用第二代量子控制微體系結構 QuMA_v2(如圖 9)對量子比特進行的控制。其硬體實現如圖 10 所示。

圖 9:支持針對七量子比特超導量子晶元實例化的 eQASM 的量子微體系結構

圖 10:實現針對七量子比特超導量子處理器實例化 eQASM 的硬體結構。細線和粗線分別代表數字和模擬信號。

可行性驗證

由於目標七量子比特量子晶元在寫作之時仍處於測試中,論文使用了一個具有兩個量子比特的超導量子晶元以驗證 eQASM 設計。在驗證過程中,量子晶元的結構(如比特的數量及其互連結構)通過一個配置文件進行描述。實驗中,量子編譯器 OpenQL 根據這個配置文件產生全部所需的 eQASM 代碼及底層硬體配置。文章表示,使用 eQASM 控制量子實驗顯著提高了量子實驗的效率,拓寬了量子彙編的應用範圍。

文章首先利用圖 3 中的代碼執行了一個兩比特 AllXY 實驗,實驗結果如圖 11。該實驗中,測量結果(藍點)與預期結果(紅線)的吻合表明 eQASM 能夠實現對量子操作的精確控制。

圖 11:兩量子比特 AllXY 結果

為了評估操作時序對量子演算法保真度的影響,論文執行了對單量子比特的隨機化基準測試(single-qubit randomized benchmarking)。這種測試可在常用的的雜訊模型下評估一組量子操作的平均錯誤率。實驗過程中,通過使用 eQASM 的顯示時序控制能力,連續的量子比特門的起始點之間被插入不同間隔時間(320、160、80、40 和 20 ns)。實驗結果如圖 12 所示。數據顯示,量子操作之間的間隔越大,平均每個量子操作的錯誤率就越高。這不僅表明了量子操作的時序對最終計算結果的保真度有顯著影響,更證明了為實現針對特定平台的優化(尤其是編譯層面的優化),在 QISA 代碼中顯示規定量子操作的時序是必要的。

圖 12:量子操作起始點之間不同的間隔時間對單量子比特隨機化基準測試結果的影響。虛線標示了 10% 的錯誤率供參考。

多元化學術背景的科研團隊

據了解,從去年該團隊提出的量子計算控制微體系結構原型,到今年該論文中提出的可執行的量子指令集架構 eQASM,都是由多位分別具有不同背景的工程師與科學家合作完成。兩篇文章中的合作者中,有三位編譯器研究人員,兩位體系結構工程師、兩位高級 FPGA 工程師、兩位電子電路設計工程師、兩位系統軟體開發工程師、兩位物理博士和三位導師。

在做計算機工程的成員加入之間,以往的量子控制設備開發流程是,物理學家提出實際的物理控制需求,電子電路工程師設計實現所需的控制設備、FPGA 工程師針對需求開發固件。在做計算機工程的成員加入之後,團隊分工就變成了:物理學家會提出實際的物理控制需求;編譯器工程師提出軟體輸出需求;做體系結構的人構思軟硬體之間的介面,在滿足軟體輸出需求的同時,極大地優化硬體系統設計;電子電路工程師實現電子電路的設計;FPGA 工程師與體系結構工程師一起實現量子控制微體系結構;編譯器工程師開發高級量子編程語言及量子編譯器。這樣,研究團隊可以構建從量子程序語言到量子編譯器、量子指令集體系結構、量子控制微體系結構、模擬設備、量子晶元的全套系統。

團隊成員科研背景的多元化是這兩項工作的一大特點。這種形式的科研團隊配置,在量子計算這個需要多學科知識背景融合的領域,很好地促進了不同視角理論與經驗的碰撞及融合,也很大程度上保證了體系架構設計思想和邏輯結構的可行性及完備性。以圖 3 為例,在量子彙編語言中顯式地支持量子操作的時序控制,這算是計算機工程服務於物理實驗的一次嘗試。

這兩項工作均由兩篇文章的第一作者付祥領導團隊合作完成。付祥是代爾夫特理工大學計算機工程實驗室與物理系量子計算實驗室聯合培養的博士生,也是該團隊唯一的華人。其導師是來自計算機工程實驗室(現獨立為量子計算體系結構實驗室)的 Koen Bertels 教授與物理系量子計算實驗室的 Leonardo DiCarlo 教授。

提到後續工作,研究團隊表示:一方面會使用 eQASM 來控制其它物理體系的量子處理器,包括量子晶元拓撲結構不同的超導量子處理器以及自旋量子點、鑽石色心等完全不同的量子硬體;另一方面,也更為重要是,團隊會繼續開發 eQASM 相關的工具鏈,使得更多人能夠使用 eQASM。

本文為機器之心發布,轉載請聯繫本公眾號獲得授權。

------------------------------------------------

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 機器之心 的精彩文章:

一個基於PyTorch的目標檢測工具箱,商湯聯合港中文開源mmdetection
谷歌開發者節DevFest&TensorFlowDay,約!

TAG:機器之心 |