本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
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
函數聲明cal
或defcal
塊。如果這是假的,只有在幀結構中列出的幀可以在程序中使用。
SupportedFunctions:
描述除了給定OpenPulse函數的關聯引數、引數類型和傳回類型之外,裝置支援的函數。若要查看使用OpenPulse函數的範例,請參閱OpenPulse規格
-
移位相
-
以指定值移動影格的相位
-
-
設定相位
-
將幀的相位設置為指定值
-
-
移位頻率
-
通過指定值移動幀的頻率
-
-
設定頻率
-
將幀的頻率設置為指定值
-
-
播放
-
排程波形
-
-
捕獲 _v0
-
返回捕獲幀上的值到位寄存器
-
SupportedQhpTemplateWaveforms:
描述裝置上可用的預先建置波形函數,以及相關的引數和類型。默認情況下,Braket Pulse 在所有設備上提供預構建的波形常式,這些設備包括:
常數
![顯示帶有參數 t,tau 和 iq 的常數函數的數學方程式,其中輸出始終等於 iq。](images/ConstantFunction.png)
τ
是波形的長度,iq
是複數。
def constant(length, iq)
高斯
![顯示具有參數 t、tau、西格瑪、A = 1 和 ZAe=0 的高斯函數的數學方程式。](images/GaussianFunction.png)
τ
是波形的長度,σ
是高斯的寬度,A
是振幅。如果設定ZaE
為True
,則高斯會偏移並重新縮放,使其在波形的開始和結束處等於零,並達到A
最大值。
def gaussian(length, sigma, amplitude=1, zero_at_edges=False)
DRAG高斯
![具有參數 t,tau,西格瑪,β,A = 1 和 ZAe=0 的DRAG高斯分佈的數學方程式。](images/DRAGGaussianFunction.png)
τ
是波形的長度,σ
是高斯的寬度,β
是一個自由參數,A
是振幅。如果設置ZaE
為True
,則通過絕熱門(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 } ] } }, ...