Quantinuum 提供者
提示
當您建立 Azure Quantum 工作區時,會自動為每個量子硬體提供者取得 500 美元的免費 Azure Quantum 點數 。 您可以使用 Azure Quantum 點數,將第一個量子程式提交到真正的量子硬體。
Quantinuum 可讓您存取具有高精確度、完全連接量子位的捕獲離子系統,以及執行中電路測量的能力。
- 發行者: Quantinuum
- 提供者識別碼:
quantinuum
Targets
下列 targets 項目可從此提供者取得:
Target 名稱 | Target 標識碼 | 量子位數目 | 描述 |
---|---|---|---|
H1-1 語法檢查程式 | quantinuum.sim.h1-1sc | 20 個量子位 | 在提交至 Quantinuum 平臺上的硬體或模擬器之前,使用此方法驗證 H1-1 編譯程式的量子程式。 免費。 |
H2-1 語法檢查程式 | quantinuum.sim.h2-1sc | 56 個量子位 | 在提交至 Quantinuum 平臺上的硬體或模擬器之前,請先對 H2-1 編譯程式驗證量子程式。 免費。 |
H1-1 模擬器 | quantinuum.sim.h1-1e | 20 個量子位 | 使用 H1-1 的實際實體模型和雜訊模型。 |
H2-1 模擬器 | quantinuum.sim.h2-1e | 56/32 量子位 | 使用 H2-1 的實際實體模型和雜訊模型。 56 量子位模擬僅適用於穩定器模擬 |
H1-1 | quantinuum.qpu.h1-1 | 20 個量子位 | 昆蒂努姆的H1-1被困離子裝置。 |
H2-1 | quantinuum.qpu.h2-1 | 56 個量子位 | 昆蒂努姆的H2-1捕獲離子裝置。 |
Quantinuum 的 targets 對應到 QIR Adaptive RI 配置檔。 如需此 target 配置檔及其限制的詳細資訊,請參閱 瞭解 target Azure Quantum 中的配置檔類型。
所有 Quantinuum targets 現在都支援整合式混合式線路。 如需提交整合式混合式作業的詳細資訊,請參閱 整合式混合式運算。
若要開始使用 Azure Quantum 上的 Quantinuum 提供者,請參閱 開始使用 Q# 和 Azure Quantum Notebook。
提示
只要您在彼此之間的一分鐘內將作業排入佇列,會話下提交的量子作業就具有 Quantinuum 硬體的獨佔存取 權。 之後,任何作業都會接受並使用標準佇列和優先順序邏輯來處理。 如需詳細資訊,請參閱 Azure Quantum 中的會話。
語法檢查程式
我們建議使用者先使用語法檢查程式來驗證其程序代碼。 這是驗證適當語法、編譯完成和計算機相容性的工具。 語法檢查程式會使用與量子 target計算機相同的編譯程式。 例如,H1-1 語法檢查程式會使用與 H1-1 相同的編譯程式。 除了實際的量子作業之外,會執行完整的編譯堆疊。 如果程式代碼編譯,語法檢查程式會 success
傳回所有 0 的狀態和結果。 如果程式代碼未編譯,語法檢查程式會傳回失敗狀態,並提供傳回的錯誤,以協助用戶偵錯其線路語法。 語法檢查程式可讓開發人員隨時驗證其程序代碼,即使機器離線也一樣。
- 工作類型:
Simulation
- 數據格式:
honeywell.openqasm.v1
、honeywell.qir.v1
- Target 識別碼:
- H1-1 語法檢查程式:
quantinuum.sim.h1-1sc
- H2-1 語法檢查程式:
quantinuum.sim.h2-1sc
- H1-1 語法檢查程式:
- Target 執行設定檔: QIR Adaptive RI
語法檢查程式使用量免費提供。
系統模型 H1 模擬器
使用語法檢查程式驗證其程式代碼的語法之後,使用者可以利用Quantinuum的系統模型 H1 模擬器、包含實際系統模型 H1 硬體的詳細實體模型和實際雜訊模型的模擬工具。 雜訊模型衍生自硬體的詳細特徵。 系統模型 H1 模擬器使用與系統模型 H1 硬體相同的作業提交 API,讓模擬順暢地轉換到硬體。 為了協助將生產力最大化並縮短開發時間,即使硬體離線,系統模型 H1 模擬器仍可供使用。
如需詳細資訊,請參閱在 [系統模型 H1] 頁面上找到的系統模型 H1 模擬器產品數據工作表。
- 工作類型:
Simulation
- 資料格式:
quantinuum.openqasm.v1
- Target 識別碼:
- H1-1 模擬器:
quantinuum.sim.h1-1e
- H1-1 模擬器:
- Target 執行設定檔: QIR Adaptive RI
系統型號 H1 模擬器使用量隨附硬體訂用帳戶免費。 如需詳細資訊,請參閱 Azure Quantum 定價。
H 系列模擬器(雲端式)
H 系列模擬器可在 Azure Quantum 網站上的 [使用 Azure Quantum 的程式代碼] 頁面上免費取得,您可以在其中撰寫 Q# 程式代碼,並將作業提交至沒有 Azure 帳戶的 Quantinuum H 系列模擬器。 H 系列模擬器是以 statevector 為基礎的量子模擬器,會根據系統模型 H1 量子計算機的一般效能,使用實際的實體雜訊模型和一般化錯誤參數。 執行的量子模擬與 系統模型 H1 模擬器 相同,但傳統線路優化例程會減少以增加輸送量。 整合式混合式運算的支持計劃在未來日期。
系統模型 H1
由 Honeywell 提供電源的量子計算機系統模型 H1 代是由具有一個線性區段的量子充電結合裝置 (QCCD)所組成,目前包含一部計算機 targets:H1-1。 建議使用者在將作業提交至語法檢查程式和系統模型 H1 模擬器之前target,先測試其程式代碼與 H1-1 的相容性。
系統型號 H1 機器在其產品生命週期內持續升級。 用戶可以存取最新、進階且可用的硬體。
如需詳細資訊,請參閱在 [系統模型 H1] 頁面上找到的系統模型 H1 產品數據工作表。
- 工作類型:
Quantum Program
- 數據格式:
honeywell.openqasm.v1
、honeywell.qir.v1
- Target 識別碼:
- H1-1:
quantinuum.qpu.h1-1
- H1-1:
- Target 執行設定檔: QIR Adaptive RI
系統模型 H2 模擬器
使用 H2-1 語法檢查程式驗證其程式代碼的語法之後,使用者可以利用 Quantinuum 的系統模型 H2 模擬器,這是模擬工具,其中包含實際系統模型 H2 硬體的詳細實體模型和實際雜訊模型。 如需雜訊模型的詳細資訊,請參閱在 [系統模型 H2] 頁面上找到的系統模型 H2 模擬器產品數據工作表。 系統模型 H2 模擬器使用與系統模型 H2 硬體相同的作業提交 API,讓模擬到硬體的無縫轉換。 為了協助將生產力最大化並縮短開發時間,即使硬體已脫機,仍可使用 H2 模擬器。
- 工作類型:
Simulation
- 資料格式:
quantinuum.openqasm.v1
- Target 識別碼:
- H2-1 模擬器:
quantinuum.sim.h2-1e
- H2-1 模擬器:
- Target 執行設定檔: QIR Adaptive RI
系統模型 H2 模擬器使用量隨附硬體訂用帳戶免費。 如需詳細資訊,請參閱 Azure Quantum 定價。
系統模型 H2
Quantinuum 系統型號 H2 代量子計算機由 Honeywell 提供,由量子充電結合裝置 (QCCD) 組成,具有兩個連接的線性區段,目前有 1 部機器 H2-1。 如需詳細資訊,請參閱在 [系統模型 H2] 頁面上找到的系統模型 H2 產品數據工作表。 建議使用者先將作業提交至語法檢查程式和系統模型 H2 模擬器,再將其提交至target計算機,以測試其程式代碼的相容性。
如果使用者將作業提交至 H2-1 計算機,且 H2-1 計算機無法使用,則工作會保留在該電腦的佇列中,直到計算機可供使用為止。
系統型號 H2 硬體會在產品生命週期內持續升級。 用戶可以存取最新、進階且可用的硬體。
- 工作類型:
Quantum Program
- 資料格式:
quantinuum.openqasm.v1
- Target 識別碼:
- H2-1:
quantinuum.qpu.h2-1
- H2-1:
- Target 執行設定檔: QIR Adaptive RI
系統模型 H1 和 H2 技術規格
您可以在 Quantinuum 系統模型 H1 和系統模型 H2 頁面上的 Quantinuum 產品數據表中 找到系統模型 H1 和 系統模型 H2 的技術詳細數據,以及 Quantinuum 規格和量子量數據存放庫的連結,以及如何引用 Quantinuum 系統的使用量。
其他功能
這裡列出透過Quantinuum API提供的其他功能。
功能 | 描述 |
---|---|
中電路測量和重設 (MCMR) | 測量線路中間的量子位並重複使用 |
任意角度 ZZ 閘道 | 直接執行 2 量子位任意角度閘道旋轉 |
模擬器雜訊參數 | 實驗 Quantinuum H 系列模擬器中使用的雜訊參數 |
H 系列堆疊中的 TKET 優化 | 實驗在 H 系列堆疊中開啟不同層級的 TKET 優化 |
用戶可以透過線路函式或 Azure Quantum Q# 和 Qiskit 提供者中的傳遞參數,利用這些額外的功能。
中電路測量和重設
中電路測量和重設 (MCMR) 可讓用戶測量電路中間的量子位,並重設它們。 這可啟用量子誤差修正的功能,以及能夠重複使用線路內的量子位。
由於截獲離子量子位的內部層級結構,中電路測量可能會使量子位處於非計算狀態。 如果量子位要在該線路中再次使用,則所有中間電路測量都應該接著重設。 下列程式代碼範例示範這一點。
當量子位子集在電路中間測量時,這些測量中的傳統資訊可以用來條件電路的未來元素。 這些範例也會反白顯示此使用方式。
如需 Quantinuum 系統中 MCMR 的資訊,請參閱系統型號 H1 和系統型號 H2 頁面上的 H 系列產品數據工作表。
在 Q# 中 MResetZ
,函式可用來測量量子位並重設它。 如需此函式的詳細資訊,請參閱 MResetZ
Q# 檔案中的 。
%%qsharp
import Std.Measurement.*;
operation ContinueComputationAfterReset() : Result[] {
// Set up circuit with 2 qubits
use qubits = Qubit[2];
// Perform Bell Test
H(qubits[0]);
CNOT(qubits[0], qubits[1]);
// Measure Qubit 1 and reset it
let res1 = MResetZ(qubits[1]);
// Continue additional computation, conditioned on qubits[1] measurement outcome
if res1 == One {
X(qubits[0]);
}
CNOT(qubits[0], qubits[1]);
// Measure qubits and return results
let res2 = Measure([PauliZ, PauliZ], qubits);
return [res1, res2];
}
任意角度 ZZ 閘道
Quantinuum 的原生閘道包括任意角度 ZZ 閘道。 這有利於減少許多量子演算法和閘道序列的 2 量子位閘道計數。 如需 Quantinuum 系統中任意角度 ZZ 閘道的資訊,請參閱系統型號 H1 和系統型號 H2 頁面上的 H 系列產品數據工作表。
在 Q# 中,任意角度 ZZ 閘道是使用 Rzz
作業實作。
%%qsharp
import Std.Intrinsic.*;
import Std.Measurement.*;
import Std.Arrays.*;
operation ArbitraryAngleZZExample(theta : Double) : Result[] {
// Set up circuit with 2 qubits
use qubits = Qubit[2];
// Create array for measurement results
mutable resultArray = [Zero, size = 2];
H(qubits[0]);
Rz(theta, qubits[0]);
Rz(theta, qubits[1]);
X(qubits[1]);
// Add Arbitrary Angle ZZ gate
Rzz(theta, qubits[0], qubits[1]);
// Measure qubits and return results
for i in IndexRange(qubits) {
resultArray w/= i <- M(qubits[i]);
}
return resultArray;
}
蘇將軍(4) 糾纏門
昆蒂努姆的本地門集包括一般蘇(4)糾纏門。 請注意,提交至硬體的量子線路會重新基底到完全糾纏的 ZZ 閘道和任意角度 RZZ 閘道。 如果使用者選擇進入,線路只會重新調整至一般 SU(4) 糾纏閘道。 如需 Quantinuum 系統中的一般 SU(4) Entangler 資訊,請參閱系統型號 H1 和系統型號 H2 頁面上的 H 系列產品數據工作表。
在 Q# 中,一般 SU(4) 糾纏門是透過 Quantinuum 的 QIR 配置文件來實作。 若要使用它,請使用自定義內部函數來定義符合 QIR 配置檔簽章的函式,並在作業內 SU4Example
使用此函式。
為了確保線路以一般 SU(4) 糾纏閘道執行,請在 H 系列堆疊中傳遞下列選項:
nativetq: Rxxyyzz
以防止重新套用至其他原生閘道。noreduce: True
以避免其他編譯程式優化 (選擇性)。
%%qsharp
import Std.Math.*;
operation __quantum__qis__rxxyyzz__body(a1 : Double, a2 : Double, a3 : Double, q1 : Qubit, q2 : Qubit) : Unit {
body intrinsic;
}
operation SU4Example() : Result[] {
use qs = Qubit[2];
// Add SU(4) gate
__quantum__qis__rxxyyzz__body(PI(), PI(), PI(), qs[0], qs[1]);
MResetEachZ(qs)
}
現在編譯作業:
MyProgram = qsharp.compile("GenerateRandomBit()")
線上到 Azure Quantum、選取 target 機器,然後設定模擬器的雜訊參數:
MyWorkspace = azure.quantum.Workspace(
resource_id = "",
location = ""
)
MyTarget = MyWorkspace.get_targets("quantinuum.sim.h1-1e")
# Update TKET optimization level desired
option_params = {
"nativetq": `Rxxyyzz`,
"noreduce": True
}
提交工作時傳入 noreduce
選項:
job = MyTarget.submit(MyProgram, "Submit a program with SU(4) gate", shots = 10, input_params = option_params)
job.get_results()
模擬器雜訊參數
用戶可以選擇實驗 Quantinuum 模擬器的雜訊參數。 這裡只會反白顯示 一些可用的雜訊參數,示範如何傳遞 Azure Quantum 提供者中的參數。
如需可用之一組完整雜訊參數的詳細資訊,請參閱系統型號 H1 和系統模型 H2 頁面上的 H 系列模擬器產品數據工作表。
首先,匯入必要的套件並起始基底配置檔:
import qsharp
import azure.quantum
qsharp.init(target_profile=qsharp.TargetProfile.Base)
接下來,定義函式。
%%qsharp
import Std.Measurement.*;
import Std.Arrays.*;
import Std.Convert.*;
operation GenerateRandomBit() : Result {
use target = Qubit();
// Apply an H-gate and measure.
H(target);
return M(target);
}
並編譯作業:
MyProgram = qsharp.compile("GenerateRandomBit()")
線上到 Azure Quantum、選取 target 機器,然後設定模擬器的雜訊參數:
MyWorkspace = azure.quantum.Workspace(
resource_id = "",
location = ""
)
MyTarget = MyWorkspace.get_targets("quantinuum.sim.h1-1e")
# Update the parameter names desired
# Note: This is not the full set of options available.
# For the full set, see the System Model H1 Emulator Product Data Sheet
option_params = {
"error-params": {
"p1": 4e-5,
"p2": 3e-3,
"p_meas": [3e-3, 3e-3],
"p_init": 4e-5,
"p_crosstalk_meas": 1e-5,
"p_crosstalk_init": 3e-5,
"p1_emission_ratio": 6e-6,
"p2_emission_ratio": 2e-4
}
}
提交作業時傳入模擬器雜訊選項:
job = MyTarget.submit(MyProgram, "Experiment with Emulator Noise Parameters",
shots = 10,
input_params = option_params)
job.get_results()
若要關閉模擬器雜訊模型,請將 選項設定 error-model
為 False
。 根據預設,這會設定為 True
。
option_params = {
"error-model": False
}
若要使用穩定器模擬器,請將 simulator
選項設定為 stabilizer
。 根據預設,這會設定為 state-vector
。
option_params = {
"simulator": "stabilizer"
}
H 系列堆疊中的 TKET 編譯
提交至 Quantinuum H 系列系統的線路, 除了整合式混合式提交之外,會自動透過 H 系列硬體的 TKET 編譯階段執行。 這可讓線路自動針對 H 系列系統優化,並更有效率地執行。
如需所套用之特定編譯階段的詳細資訊,請參閱 pytket-quantinuum
檔,特別是 pytket-quantinuum
編譯階段 一節。
在 H 系列軟體堆疊中,套用的優化層級會設定為 tket-opt-level
參數。 提交至 H 系列系統之所有線路的預設編譯設定為優化層級 2。
想要實驗 TKET 編譯的用戶會通過,並查看哪些優化會套用至其線路,再提交任何作業,即可在 [範例] 資料夾中看到 Quantinuum_compile_without_api.ipynb 筆記本pytket-quantinuum
。
若要關閉堆疊中的 TKET 編譯,可以設定為 True
內option_params
的不同選項no-opt
。 例如: "no-opt": True
。
如需 的詳細資訊 pytket
,請參閱下列連結:
首先,匯入必要的套件並起始基底配置檔:
import qsharp
import azure.quantum
qsharp.init(target_profile=qsharp.TargetProfile.Base)
接下來,定義函式。
%%qsharp
import Std.Measurement.*;
import Std.Arrays.*;
import Std.Convert.*;
operation GenerateRandomBit() : Result {
use target = Qubit();
// Apply an H-gate and measure.
H(target);
return M(target);
}
並編譯作業:
MyProgram = qsharp.compile("GenerateRandomBit()")
線上到 Azure Quantum、選取 target 機器,然後設定模擬器的雜訊參數:
MyWorkspace = azure.quantum.Workspace(
resource_id = "",
location = ""
)
MyTarget = MyWorkspace.get_targets("quantinuum.sim.h1-1e")
# Update TKET optimization level desired
option_params = {
"tket-opt-level": 1
}
提交作業時傳入優化選項:
job = MyTarget.submit(MyProgram, "Experiment with TKET Compilation", shots = 10, input_params = option_params)
job.get_results()
技術規格
如需系統模型 H1 和 H2 和系統模型 H1 和 H2 模擬器的技術詳細數據,請參閱 System Model H1 和 System Model H2 頁面的 Quantinuum 產品數據工作表,以及 Quantinuum 規格和量子磁碟區數據存放庫的連結,以及如何引用 Quantinuum 系統的使用量。
Target 可用性
Quantinuum H 系列量子計算機的設計目的是要持續升級,讓客戶能夠存取最新的硬體功能,因為 Quantinuum 會持續改善網關精確度、記憶體錯誤和系統速度。
Quantinuum 硬體會迴圈到商業週期和開發期間。 在商業期間,硬體可透過佇列系統處理作業。 在開發期間,硬體會在套用升級時脫機。
每個月,都會將日曆傳送給 Quantinuum 使用者,其中包含商業和發展期間的資訊。 如果您尚未收到此行事曆,請傳送電子郵件 QCsupport@quantinuum.com給 。
target的狀態表示其目前處理作業的能力。 可能的狀態 target 包括:
- 可用: target 已上線、處理送出的工作,並接受新的作業。
- 降級: target 正在接受作業,但目前不會處理這些作業。
- 無法使用: target 離線,不接受新的作業提交。
針對 Quantinuum 量子電腦targets,[可用] 和 [已降級] 會對應至商業期間,而 [無法使用] 則對應至電腦離機進行升級的開發期間。
目前的狀態資訊可以從 Azure 入口網站 工作區的 [提供者] 索引卷標擷取。
定價
若要查看 Quantinuum 的計費方案,請流覽 Azure Quantum 定價。
限制和配額
針對提交至 Quantinuum 量子電腦的工作,以及提交至模擬器之工作的 QPU 使用量信用單位、 H-System Quantum Credit (HQC),以及模擬器 HQC (eHQCs) 的作業,可追蹤 Quantinuum 配額。
HQC 和 eHQC 是用來計算執行作業的成本,而且會根據下列公式來計算:
$$ HQC = 5 + C(N_{1q} + 10 N_{2q} + 5 N_m)/5000 $$
其中:
- $N_{1q}$ 是線路中一個量子位作業的數目。
- $N_{2q}$ 是線路中的原生雙量子位作業數目。 原生網關相當於 CNOT 最多數個一量子位網關。
- $N_{m}$ 是線路中狀態準備和測量 (SPAM) 作業的數目,包括初始隱含狀態準備,以及任何中繼和最終的度量和狀態重設。
- $C$ 是拍攝計數。
注意
HQC 的總成本包括所有條件式分支或控制流程的所有閘道和度量。 這可能會對整合式混合式作業產生更高的影響。
配額是以方案選取為基礎,且可透過支援票證來增加。 若要查看目前的限制和配額,請移至 [點數和配額] 刀鋒視窗,然後選取工作區 Azure 入口網站 的 [配額] 索引卷標。 如需詳細資訊,請參閱 Azure Quantum 配額。
注意
如果您使用 Azure Quantum 點數 方案,而不是計費方案,配額資訊會對應至您配置的點數。 在此情況下,配額會列出您收到的點數總數。