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