Support QASM 在不同的胸動設備上打開 - Amazon Braket

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

Support QASM 在不同的胸動設備上打開

對於支援 Open QASM 3.0 的裝置,此action欄位支援透過GetDevice回應執行新動作,如下列範例中的Rigetti和IonQ裝置所示。

//OpenQASM as available with the Rigetti device capabilities { "braketSchemaHeader": { "name": "braket.device_schema.rigetti.rigetti_device_capabilities", "version": "1" }, "service": {...}, "action": { "braket.ir.jaqcd.program": {...}, "braket.ir.openqasm.program": { "actionType": "braket.ir.openqasm.program", "version": [ "1" ], …. } } } //OpenQASM as available with the IonQ device capabilities { "braketSchemaHeader": { "name": "braket.device_schema.ionq.ionq_device_capabilities", "version": "1" }, "service": {...}, "action": { "braket.ir.jaqcd.program": {...}, "braket.ir.openqasm.program": { "actionType": "braket.ir.openqasm.program", "version": [ "1" ], …. } } }

對於支持脈衝控制的設備,該pulse字段顯示在GetDevice響應中。下列範例顯示Rigetti裝置的此pulse欄位。

// Rigetti { "pulse": { "braketSchemaHeader": { "name": "braket.device_schema.pulse.pulse_device_action_properties", "version": "1" }, "supportedQhpTemplateWaveforms": { "constant": { "functionName": "constant", "arguments": [ { "name": "length", "type": "float", "optional": false }, { "name": "iq", "type": "complex", "optional": false } ] }, ... }, "ports": { "q0_ff": { "portId": "q0_ff", "direction": "tx", "portType": "ff", "dt": 1e-9, "centerFrequencies": [ 375000000 ] }, ... }, "supportedFunctions": { "shift_phase": { "functionName": "shift_phase", "arguments": [ { "name": "frame", "type": "frame", "optional": false }, { "name": "phase", "type": "float", "optional": false } ] }, ... }, "frames": { "q0_q1_cphase_frame": { "frameId": "q0_q1_cphase_frame", "portId": "q0_ff", "frequency": 462475694.24460185, "centerFrequency": 375000000, "phase": 0, "associatedGate": "cphase", "qubitMappings": [ 0, 1 ] }, ... }, "supportsLocalPulseElements": false, "supportsDynamicFrames": false, "supportsNonNativeGatesWithPulses": false, "validationParameters": { "MAX_SCALE": 4, "MAX_AMPLITUDE": 1, "PERMITTED_FREQUENCY_DIFFERENCE": 400000000 } } }

前面的欄位詳細說明了以下內容:

連接埠:

描述除了指定連接埠的相關內容之外宣告的QPU預先製作外部 (extern) 裝置連接埠。此結構中列出的所有端口都預先聲明為用戶提交的OpenQASM 3.0程序中的有效標識符。連接埠的其他屬性包括:

  • 連接埠識別碼 (portId)

    • 在 Open QASM 3.0 中宣告為識別碼的連接埠名稱。

  • 方向 (方向)

    • 連接埠的方向。驅動端口傳輸脈衝(方向「tx」),而測量端口接收脈衝(方向「rx」)。

  • 連接埠類型 (portType)

    • 此端口負責的動作類型(例如,驅動器,捕獲或 FF-快通量)。

  • DT (DT)

    • 代表指定連接埠上單一取樣時間步長的時間 (以秒為單位)。

  • 量子位映射()qubitMappings

    • 與給定端口相關聯的量子位。

  • 中心頻率 (centerFrequencies)

    • 連接埠上所有預先宣告或使用者定義框架的關聯中心頻率清單。如需詳細資訊,請參閱框架。

  • QHP特定屬性 (qhpSpecificProperties)

    • 可選地圖,詳細說明有關特定於的連接埠的現有性質QHP。

框架:

描述在上宣告的預先製作外部框架,QPU以及與影格相關聯的屬性。此結構中列出的所有框架都預先聲明為用戶提交的OpenQASM 3.0程序中的有效標識符。框架的其他屬性包括:

  • 影格識別碼 (frameId)

    • 在 Open QASM 3.0 中宣告為識別碼的框架名稱。

  • 連接埠識別碼 (portId)

    • 框架的相關硬體連接埠。

  • 頻率 (頻率)

    • 幀的默認初始頻率。

  • 中心頻率 (centerFrequency)

    • 該幀的頻率帶寬的中心。通常情況下,幀只能調整到中心頻率周圍的一定帶寬。因此,頻率調整應保持在中心頻率的給定增量範圍內。您可以在驗證參數中找到頻寬值。

  • 階段 (階段)

    • 影格的預設初始階段。

  • 關聯的閘門 (associatedGate)

    • 與給定框架相關聯的門。

  • 量子位映射 () qubitMappings

    • 與給定幀相關聯的量子位。

  • QHP特定屬性 (qhpSpecificProperties)

    • 一種可選地圖,詳細說明有關特定框架的既有性質QHP。

SupportsDynamicFrames:

描述框架是否可以通過OpenPulsenewframe函數聲明caldefcal塊。如果這是假的,只有在幀結構中列出的幀可以在程序中使用。

SupportedFunctions:

描述除了給定OpenPulse函數的關聯引數、引數類型和傳回類型之外,裝置支援的函數。若要查看使用OpenPulse函數的範例,請參閱OpenPulse規格。此時,布拉克特支持:

  • 移位相

    • 以指定值移動影格的相位

  • 設定相位

    • 將幀的相位設置為指定值

  • 移位頻率

    • 通過指定值移動幀的頻率

  • 設定頻率

    • 將幀的頻率設置為指定值

  • 播放

    • 排程波形

  • 捕獲 _v0

    • 返回捕獲幀上的值到位寄存器

SupportedQhpTemplateWaveforms:

描述裝置上可用的預先建置波形函數,以及相關的引數和類型。默認情況下,Braket Pulse 在所有設備上提供預構建的波形常式,這些設備包括:

常數

顯示帶有參數 t,tau 和 iq 的常數函數的數學方程式,其中輸出始終等於 iq。

τ是波形的長度,iq是複數。

def constant(length, iq)

高斯

顯示具有參數 t、tau、西格瑪、A = 1 和 ZAe=0 的高斯函數的數學方程式。

τ是波形的長度,σ是高斯的寬度,A是振幅。如果設定ZaETrue,則高斯會偏移並重新縮放,使其在波形的開始和結束處等於零,並達到A最大值。

def gaussian(length, sigma, amplitude=1, zero_at_edges=False)

DRAG高斯

具有參數 t,tau,西格瑪,β,A = 1 和 ZAe=0 的DRAG高斯分佈的數學方程式。

τ是波形的長度,σ是高斯的寬度,β是一個自由參數,A是振幅。如果設置ZaETrue,則通過絕熱門(DRAG)高斯移除導數被偏移並重新縮放,使其在波形的開始和結束處等於零,並且實部達到最大值。A有關DRAG波形的更多信息,請參閱用於消除弱非線性量子位中洩漏的簡單脈衝

def drag_gaussian(length, sigma, beta, amplitude=1, zero_at_edges=False)

SupportsLocalPulseElements:

描述是否可以在defcal區塊中本機定義脈衝元件,例如連接埠、訊框和波形。如果值為false,則必須在cal圖塊中定義元素。

SupportsNonNativeGatesWithPulses:

描述我們是否可以與脈衝程序結合使用非本機門。例如,我們不能在程序中使用非本地H門,而不必先定義所使用量子位defcal的門。您可以在設備功能下找到本機門nativeGateSet密鑰的列表。

ValidationParameters:

描述脈衝元素驗證邊界,包括:

  • 波形的最大刻度/最大振幅值(任意和預建)

  • 提供的中心頻率的最大頻寬,以 Hz 為單位

  • 最小脈衝長度/持續時間 (秒)

  • 最大脈衝長度/持續時間 (秒)

開啟時支援的作業、結果和結果類型 QASM

要了解每個設備支持的 Open QASM 3.0 功能,您可以參考設備功能輸出上action字段中的braket.ir.openqasm.program鍵。例如,以下是可用於 Braket 狀態向量模擬器SV1的支援作業和結果類型。

... "action": { "braket.ir.jaqcd.program": { ... }, "braket.ir.openqasm.program": { "version": [ "1.0" ], "actionType": "braket.ir.openqasm.program", "supportedOperations": [ "ccnot", "cnot", "cphaseshift", "cphaseshift00", "cphaseshift01", "cphaseshift10", "cswap", "cy", "cz", "h", "i", "iswap", "pswap", "phaseshift", "rx", "ry", "rz", "s", "si", "swap", "t", "ti", "v", "vi", "x", "xx", "xy", "y", "yy", "z", "zz" ], "supportedPragmas": [ "braket_unitary_matrix" ], "forbiddenPragmas": [], "maximumQubitArrays": 1, "maximumClassicalArrays": 1, "forbiddenArrayOperations": [ "concatenation", "negativeIndex", "range", "rangeWithStep", "slicing", "selection" ], "requiresAllQubitsMeasurement": true, "supportsPhysicalQubits": false, "requiresContiguousQubitIndices": true, "disabledQubitRewiringSupported": false, "supportedResultTypes": [ { "name": "Sample", "observables": [ "x", "y", "z", "h", "i", "hermitian" ], "minShots": 1, "maxShots": 100000 }, { "name": "Expectation", "observables": [ "x", "y", "z", "h", "i", "hermitian" ], "minShots": 0, "maxShots": 100000 }, { "name": "Variance", "observables": [ "x", "y", "z", "h", "i", "hermitian" ], "minShots": 0, "maxShots": 100000 }, { "name": "Probability", "minShots": 1, "maxShots": 100000 }, { "name": "Amplitude", "minShots": 0, "maxShots": 0 } { "name": "AdjointGradient", "minShots": 0, "maxShots": 0 } ] } }, ...