在過去的十年里,量子計算從學(xué)術(shù)實驗室躍入主流。初創(chuàng)公司和大型公司都在加大努力構(gòu)建更好的量子計算機。雖然我們還不清楚還有多久才可以利用量子優(yōu)勢處理常見問題,但很明顯,現(xiàn)在是時候構(gòu)建有價值的量子應(yīng)用所需要的工具了。?
首先,我們需要在理解量子算法方面取得進展。去年,NVIDIA 宣布推出 cuQuantum,這是一款用于加速量子計算模擬的軟件開發(fā)套件 (SDK)。在 GPU 上使用 cuQuantum 模擬量子電路,使算法研究的性能和規(guī)模遠遠超過了目前在量子處理單元 (QPU) 上可以實現(xiàn)的性能和規(guī)模。這為理解如何充分利用量子計算機取得突破性進展鋪平了道路。
除了改進量子算法之外,我們還需要充分利用 QPU 以及經(jīng)典計算資源:CPU 和 GPU。7 月 13 日,NVIDIA ?宣布推出量子優(yōu)化設(shè)備架構(gòu) (QODA),這是一個混合量子-經(jīng)典計算平臺,其使命是實現(xiàn)這一效用。?
隨著量子計算的發(fā)展,所有有價值的量子應(yīng)用都將采用混合形式,量子計算機將與高性能經(jīng)典計算協(xié)同工作。GPU 純粹為圖形而打造,并已轉(zhuǎn)變?yōu)楦咝阅苡嬎?(HPC) 的必備硬件。這需要使用新軟件來實現(xiàn)功能強大且直接的編程。量子計算機從科學(xué)實驗向?qū)嵱眉铀倨鞯霓D(zhuǎn)變也需要新的軟件。
量子軟件的新時代將助力實現(xiàn)高性能混合計算,并為更廣泛的科學(xué)家和創(chuàng)新者增加量子計算機的可訪問性。
NVIDIA QODA 是率先用于混合量子-經(jīng)典計算的平臺,其應(yīng)用涵蓋藥物研發(fā)、化學(xué)、天氣、金融、物流等領(lǐng)域
量子編程概況
在過去五年中,針對小規(guī)模、噪聲量子計算架構(gòu)的量子編程方法得到了發(fā)展。這一發(fā)展對算法開發(fā)者來說意義重大,并使標(biāo)準(zhǔn)量子算法以及混合變分方法的早期原型化成為可能。
由于缺乏量子資源和硬件實施的實用性不足,大多數(shù)編程方法都處于純 Python 級別,支持基于云的遠程執(zhí)行模型。
隨著量子架構(gòu)的改進,以及算法開發(fā)者開始考慮現(xiàn)有經(jīng)典異構(gòu)計算的真正量子加速,一個問題出現(xiàn)了:我們應(yīng)該如何在傳統(tǒng)的高性能計算環(huán)境中支持量子協(xié)同處理?
在開發(fā)高性能計算編程模型、異構(gòu)編譯器平臺和高級應(yīng)用庫方面,NVIDIA 一直是真正的先行者,這些高級應(yīng)用庫使用一個或多個 NVIDIA GPU 加速傳統(tǒng)的科學(xué)計算工作流。
NVIDIA 將量子計算視為異構(gòu)高性能計算系統(tǒng)架構(gòu)的另一個元素,并設(shè)想了一種編程模型,將量子協(xié)同處理無縫整合到現(xiàn)有的 CUDA 生態(tài)系統(tǒng)中。在這方面,目前從 Python 語言層面開始的方法是不夠的,最終將限制經(jīng)典計算資源和量子計算資源的性能集成。
適用于高性能計算的 QODA
NVIDIA 正在開發(fā)一個開放性規(guī)范,用于在高性能計算環(huán)境中對混合量子-經(jīng)典計算架構(gòu)進行編程。NVIDIA 將宣布推出 QODA 編程模型規(guī)范和相應(yīng)的 NVQ++ 編譯器平臺,以實現(xiàn)與后端無關(guān)(物理、模擬)、來源單一且使用現(xiàn)代 C++ 的方法,以助力量子加速的高性能計算。
QODA 在本質(zhì)上可以與現(xiàn)有的經(jīng)典并行編程模型(例如 CUDA、OpenMP 和 OpenACC)互操作。此編譯器實施還可將量子-經(jīng)典 C++ 源代碼表征降級為二進制可執(zhí)行文件,這些二進制可執(zhí)行文件原本就面向支持? cuQuantum 的模擬后端。
這種編程和編譯工作流通過與 GPU 處理和電路模擬的標(biāo)準(zhǔn)互操作性,為加速混合算法的研究和開發(fā)活動提供了一個高性能的編程環(huán)境,這些 GPU 處理和電路模擬可從筆記本電腦擴展到分布式多節(jié)點、多 GPU 架構(gòu)。
如代碼示例所示,QODA 提供了一種基于核的類 CUDA 編程方法,并將重點放在現(xiàn)代 C++ 上。? 你可以將量子設(shè)備代碼定義為獨立的函數(shù)對象或帶有 __qpu__ 標(biāo)注的 lambda,以表明將在量子設(shè)備上編譯和執(zhí)行這些代碼。
通過依靠函數(shù)對象而不是自由函數(shù)(CUDA 核方法),你可以實現(xiàn)一種構(gòu)建通用標(biāo)準(zhǔn)量子庫函數(shù)的高效方法,可以將任何量子核表達作為輸入。
這方面的一個簡單示例是,標(biāo)準(zhǔn)采樣 QODA 函數(shù) (qoda::sample(...)),它采用一個量子核實例和任何要為其評估核的任何具體參數(shù)作為輸入,并將觀察到的量子位測量位字符串的熟悉映射返回到相應(yīng)的觀察次數(shù)。
QODA 核程序員可以訪問與量子計算相關(guān)的某些內(nèi)置類型(qoda::qubit、qoda::qreg、qoda::spin_op等)、量子門運算以及所有繼承自 C++ 的傳統(tǒng)經(jīng)典控制流。
之前我們詳細(xì)介紹了語言編譯方法的一個有趣的方面,即能夠編譯包含 CUDA 核、OpenMP 和 OpenACC 雜注的 QODA 代碼,以及更高級別的 CUDA 庫 API 調(diào)用。這一功能將使混合量子-經(jīng)典應(yīng)用開發(fā)者能夠真正協(xié)同利用多 GPU 處理與量子計算。
未來的量子計算用例將需要進行經(jīng)典的并行處理,比如數(shù)據(jù)預(yù)處理和后處理、標(biāo)準(zhǔn)量子編譯任務(wù)和用于量子糾錯的校驗子譯碼等。
搶先了解量子-經(jīng)典應(yīng)用
變分量子特征求解算法 (VQE) 是一種原型混合量子經(jīng)典算法,面向嘈雜的短期量子計算架構(gòu)。VQE 的目標(biāo)是依靠量子力學(xué)的變分原理,計算給定量子力學(xué)運算符(如哈密頓算符)對參數(shù)化狀態(tài)制備電路的最低特征值。
你需要使用給定的一組門旋轉(zhuǎn)參數(shù)來執(zhí)行狀態(tài)制備電路,并執(zhí)行由量子力學(xué)運算符結(jié)構(gòu)決定的一組測量,以計算這些具體參數(shù)的期望值。然后,使用用戶指定的經(jīng)典優(yōu)化器,通過改變這些參數(shù)來迭代搜索較低期望值。
借助 QODA 編程,你可以看到通用的類 VQE 算法的外觀模型:
所需的主要組件是參數(shù)化的 ansatz QODA 核表達式,代碼示例中所示為 lambda,采用 std::vector
這個 lambda 的實際主體取決于當(dāng)前要處理的問題,但你可以自由地使用標(biāo)準(zhǔn)的 C++ 控制流、范圍內(nèi)的量子核調(diào)用和量子內(nèi)部運算的邏輯集來構(gòu)建此函數(shù)。
你需要的下一個組件是在計算期望值時所需的運算符。QODA 使用內(nèi)置 spin_op 類型表示這些內(nèi)容,你可以使用 Pauli x(int)、y(int) 和 z(int) 函數(shù)調(diào)用,以編程的方式來構(gòu)建這些內(nèi)容。
接下來,你需要一個經(jīng)典函數(shù)優(yōu)化器,這是 QODA 語言規(guī)范中的一個通用概念,意思是將基于梯度或無梯度的特定優(yōu)化策略歸入子類。
最后,該語言公開了一個標(biāo)準(zhǔn)庫函數(shù),用于調(diào)用整個 VQE 工作流。它會在 QODA 核實例上進行參數(shù)化,該實例對狀態(tài)準(zhǔn)備 ansatz 進行建模,以下值是你需要的運算符:
最小特征值
經(jīng)典優(yōu)化實例
變分參數(shù)總數(shù)
然后,你會返回一個結(jié)構(gòu)化綁定,用于編碼狀態(tài)準(zhǔn)備電路的最佳特征值和相應(yīng)的優(yōu)化參數(shù)。
前面的工作流非常普遍,有助于開發(fā)變分算法,這些算法最終在量子核表達式、感興趣的旋轉(zhuǎn)運算符和經(jīng)典優(yōu)化例程方面是通用的。
但它也展示了 QODA 編程模型的基本理念:提供用于描述量子代碼表達式的核心概念,然后促進通用標(biāo)準(zhǔn)函數(shù)庫的實用性,從而實現(xiàn)混合量子經(jīng)典算法組合。?
QODA 早期興趣計劃
量子計算機有望幫助我們解決一些非常重要的問題。我們正在向高性能計算和 AI 已經(jīng)發(fā)揮關(guān)鍵作用的領(lǐng)域中的科學(xué)家和專家開放量子計算,并支持將目前較為出色的現(xiàn)有軟件與量子軟件輕松集成。這將顯著加速量子計算機發(fā)揮其潛力。
QODA 提供了一個開放平臺來實現(xiàn)這一目標(biāo),NVIDIA ?也很高興能與整個量子社區(qū)合作,使實用的量子計算成為現(xiàn)實。申請參加 QODA 早期興趣計劃,隨時了解? NVIDIA 量子計算發(fā)展新動態(tài)。
審核編輯:湯梓紅
評論