Quantinuum은 높은 충실도의, 완전 연결된 큐비트와 중간 회로 측정을 수행할 수 있는 능력을 갖춘 트랩형 이온 시스템에 대한 액세스를 제공합니다.
- 게시자: Quantinuum
- 공급자 ID:
quantinuum
Targets
이 공급자에서 사용할 수 있는 항목은 다음과 같습니다 targets .
| 대상 이름 | 대상 아이디 | 큐비트 수 | Description |
|---|---|---|---|
| H2-1 구문 검사기 | quantinuum.sim.h2-1sc | 56큐비트 | Quantinuum 플랫폼의 하드웨어 또는 에뮬레이터에 제출하기 전에 H2-1 컴파일러에 대해 양자 프로그램의 유효성을 검사합니다. 무료입니다. |
| H2-2 구문 검사기 | quantinuum.sim.h2-2sc | 56큐비트 | Quantinuum 플랫폼의 하드웨어 또는 에뮬레이터에 제출하기 전에 H2-2 컴파일러에 대해 양자 프로그램의 유효성을 검사합니다. 무료입니다. |
| H2-1 에뮬레이터 | quantinuum.sim.h2-1e | 56/32 큐비트 | H2-1의 실제 물리적 모델 및 노이즈 모델을 사용합니다. 56큐비트 시뮬레이션은 안정화 시뮬레이션으로만 사용할 수 있습니다. |
| H2-2 에뮬레이터 | quantinuum.sim.h2-2e | 56/32 큐비트 | H2-2의 실제 물리적 모델 및 노이즈 모델을 사용합니다. 56큐비트 시뮬레이션은 안정화 시뮬레이션으로만 사용할 수 있습니다. |
| H2-1 | quantinuum.qpu.h2-1 | 56큐비트 | Quantinuum의 H2-1 트랩 이온 장치. |
| H2-2 | quantinuum.qpu.h2-2 | 56큐비트 | Quantinuum의 H2-2 트랩 이온 장치. |
Quantinuum의 targets는 QIR Adaptive RI 프로필에 해당합니다. 이 프로필 및 해당 target 제한 사항에 대한 자세한 내용은 Azure Quantum의 프로필 형식 이해를 target 참조하세요.
모든 Quantinuum은 targets 이제 통합 하이브리드 회로를 지원합니다. 통합 하이브리드 작업 제출에 대한 자세한 내용은 통합 하이브리드 컴퓨팅을 참조하세요.
Tip
세션에서 제출된 양자 작업은 각 작업이 1분 이내에 큐에 대기되는 경우 Quantinuum 하드웨어에 독점적으로 액세스할 수 있습니다. 그런 다음 모든 작업이 표준 큐 및 우선 순위 지정 논리를 사용하여 수락되고 처리됩니다. 자세한 내용은 Azure Quantum의 세션을 참조하세요.
구문 검사기
먼저 구문 검사기를 사용하여 코드의 유효성을 검사하는 것이 좋습니다. 구문 검사기는 적절한 구문, 컴파일 완료 및 컴퓨터 호환성을 확인합니다. 구문 검사기는 양자 컴퓨터 target와 동일한 컴파일러를 사용합니다. 예를 들어 H2-1 구문 검사기는 H2-1과 동일한 컴파일러를 사용합니다. 실제 양자 연산을 제외하고 전체 컴파일 스택이 실행됩니다. 코드가 컴파일되면 구문 검사기가 상태 success 및 결과가 모두 0인 값을 반환합니다. 코드가 컴파일되지 않으면 구문 검사기에서 실패한 상태를 반환하고 사용자가 회로 구문을 디버그하는 데 도움이 되는 오류 메시지를 제공합니다. 구문 검사기를 사용하면 머신이 오프라인인 경우에도 개발자가 언제든지 코드의 유효성을 검사할 수 있습니다.
- 작업 유형:
Simulation - 데이터 형식:
honeywell.openqasm.v1,honeywell.qir.v1 - 대상 ID:
- H2-1 구문 검사기:
quantinuum.sim.h2-1sc - H2-2 구문 검사:
quantinuum.sim.h2-2sc
- H2-1 구문 검사기:
- 대상 실행 프로필: QIR Adaptive RI
구문 검사기 사용은 무료로 제공됩니다.
Quantinuum 에뮬레이터(클라우드 기반)
Quantinuum 에뮬레이터는 Azure Quantum 웹 사이트의 Azure Quantum 페이지에서
시스템 모델 H2 에뮬레이터
H2-1 구문 검사기를 사용하여 코드 구문의 유효성을 검사한 후 사용자는 실제 시스템 모델 H2 하드웨어의 자세한 물리적 모델과 실제 노이즈 모델을 포함하는 에뮬레이션 도구인 Quantinuum의 시스템 모델 H2 에뮬레이터를 활용할 수 있습니다. 노이즈 모델에 대한 자세한 내용은 시스템 모델 H2 페이지에 있는 시스템 모델 H2 에뮬레이터 제품 데이터 시트에서 찾을 수 있습니다. 시스템 모델 H2 에뮬레이터는 작업 제출에 동일한 API를 시스템 모델 H2 하드웨어로 사용하여 에뮬레이션에서 하드웨어로 원활하게 전환할 수 있습니다. 생산성을 최대화하고 개발 시간을 단축하기 위해 하드웨어가 오프라인인 경우에도 H2 에뮬레이터를 사용할 수 있습니다.
- 작업 유형:
Simulation - 데이터 형식:
quantinuum.openqasm.v1 - 대상 ID:
- H2-1 에뮬레이터:
quantinuum.sim.h2-1e - H2-2 에뮬레이터:
quantinuum.sim.h2-2e
- H2-1 에뮬레이터:
- 대상 실행 프로필: QIR Adaptive RI
시스템 모델 H2 에뮬레이터 사용은 하드웨어 구독에서 무료로 제공됩니다. 자세한 내용은 Azure Quantum 가격 책정을 참조하세요.
시스템 모델 H2
Honeywell에 의해 구동되는 Quantinuum 시스템 모델 H2 세대 양자 컴퓨터는 두 개의 연결된 선형 섹션이 있는 QCCD(양자 충전 결합 디바이스)로 구성되며 현재 H2-1 컴퓨터 1대가 있습니다. 자세한 내용은 시스템 모델 H2 페이지의 시스템 모델 H2 제품 데이터 시트 에서 찾을 수 있습니다 . 사용자는 문법 검사기 및 시스템 모델 H2 에뮬레이터에 작업을 먼저 제출하여 코드의 호환성을 테스트한 후 target 기기에 제출하는 것이 좋습니다.
사용자가 H2-1 컴퓨터에 작업을 제출하고 H2-1 컴퓨터를 사용할 수 없는 경우 컴퓨터를 사용할 수 있게 될 때까지 해당 컴퓨터의 큐에 작업이 유지됩니다.
시스템 모델 H2 하드웨어는 제품 수명 주기 내내 지속적으로 업그레이드됩니다. 사용자에게 사용 가능한 가장 up-to최신, 고급 및 지원 하드웨어에 대한 액세스 권한이 부여됩니다.
- 작업 유형:
Quantum Program - 데이터 형식:
quantinuum.openqasm.v1 - 대상 ID:
- H2-1:
quantinuum.qpu.h2-1 - H2-2:
quantinuum.qpu.h2-2
- H2-1:
- 대상 실행 프로필: QIR Adaptive RI
시스템 모델 H2 기술 사양
시스템 모델 H2에 대한 기술 세부 정보는 Quantinuum 사양 및 양자 볼륨 데이터 리포지토리에 대한 링크와 Quantinuum 시스템의 사용을 인용하는 방법과 함께 시스템 모델 H2 페이지의 Quantinuum 제품 데이터 시트에서 찾을 수 있습니다.
추가 기능
Quantinuum API를 통해 사용할 수 있는 추가 기능은 여기에 나열되어 있습니다.
| Capability | Description |
|---|---|
| Mid-Circuit 측정 및 재설정(MCMR) | 회로 중간에 있는 큐비트를 측정하고 다시 사용합니다. |
| 임의 각도 ZZ 게이트 | 2큐비트 임의 각도 게이트 회전 직접 수행 |
| 일반 SU(4) 얽힘 게이트 | 2큐비트 임의 각도 게이트 회전 직접 수행 |
| 에뮬레이터 노이즈 매개 변수 | Quantinuum 에뮬레이터에 사용되는 노이즈 매개 변수로 실험 |
| Quantinuum Stack에서의 TKET 최적화 |
Quantinuum 스택에서 다양한 수준의 TKET 최적화를 켜는 실험 |
사용자는 Azure Quantum Q# 및 Qiskit 공급자에서 회로 함수 또는 통과 매개 변수를 통해 이러한 추가 기능을 활용할 수 있습니다.
중간 회로 측정 및 재설정
MCMR(중간 회로 측정 및 재설정)을 사용하면 회로 중간에 큐비트를 측정하고 재설정할 수 있습니다. 이를 통해 양자 오류 수정 기능뿐만 아니라 회로 내에서 큐비트를 다시 사용할 수 있습니다.
트랩된 이온 큐비트의 내부 수준 구조로 인해 중간 회로 측정은 큐비트를 비 계산 상태로 남겨 둘 수 있습니다. 큐비트를 해당 회로에서 다시 사용하는 경우 모든 중간 회로 측정 다음에 다시 설정해야 합니다. 다음 코드 예제에서는 이를 보여 줍니다.
회로 중간에 큐비트의 하위 집합을 측정할 때 이러한 측정값의 클래식 정보를 사용하여 회로의 미래 요소를 조건화할 수 있습니다. 이 예제에서는 이 사용량도 강조 표시합니다.
Quantinuum 시스템의 MCMR에 대한 자세한 내용은 Quantinuum 문서의MCMR 페이지를 참조하세요.
Q#에서 함수를 MResetZ 사용하여 큐비트를 측정하고 다시 설정할 수 있습니다. 이 함수에 대한 자세한 내용은 Q# 설명서를 참조 MResetZ 하세요.
%%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 게이트에 대한 자세한 내용은 Quantinuum 문서의매개 변수가 있는 각도 ZZ 게이트 페이지입니다.
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;
}
일반 SU(4) 얽힘 게이트
Quantinuum의 고유 게이트 집합에는 일반 SU(4) 얽힘 게이트가 포함되어 있습니다. 하드웨어에 제출된 양자 회로는 완전 얽힘 ZZ 게이트와 임의 각도의 RZZ 게이트로 재설정됩니다. 회로는 사용자가 이를 선택하는 경우에만 일반 SU(4) Entangling 게이트로 변환됩니다. Quantinuum 시스템의 일반 SU(4) Entangler에 대한 자세한 내용은 Quantinuum 문서의매개 변수가 있는 각도 SU(4) 게이트 페이지를 참조하세요.
Q#에서는 일반 SU(4) Entangling 게이트가 Quantinuum의 QIR 프로필을 통해 구현됩니다. 이를 사용하려면 QIR 프로필 서명과 일치하는 사용자 지정 내장 함수를 정의하고 작업 내에서 이 함수를 SU4Example 사용합니다.
회로가 일반 SU(4) Entangling 게이트와 함께 실행되도록 하려면 Quantinuum 스택에서 다음 옵션을 전달하세요.
-
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)
}
이제 작업을 컴파일합니다.
from qdk import qsharp
MyProgram = qsharp.compile("GenerateRandomBit()")
Azure Quantum에 연결하고, 머신을 target 선택하고, 에뮬레이터에 대한 노이즈 매개 변수를 구성합니다.
from qdk.azure import Workspace
MyWorkspace = Workspace(
resource_id = "",
location = ""
)
MyTarget = MyWorkspace.get_targets("quantinuum.sim.h2-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 공급자의 매개 변수를 통과하는 방법을 보여 주면서 사용 가능한 노이즈 매개 변수 중 일부만 강조 표시되어 있습니다.
사용 가능한 노이즈 매개 변수의 전체 집합에 대한 자세한 내용은 Quantinuum 문서의 Quantinuum에뮬레이터 페이지를 참조하세요.
먼저 필요한 패키지를 가져오고 기본 프로필을 시작합니다.
from qdk import qsharp
from qdk.azure import Workspace
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 = Workspace(
resource_id = "",
location = ""
)
MyTarget = MyWorkspace.get_targets("quantinuum.sim.h2-1e")
# Update the parameter names desired
# Note: This is not the full set of options available.
# For the full set, see the Quantinuum Emulators page
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"
}
Quantinuum 스택의 TKET 컴파일
통합 하이브리드 제출을 제외하고,
적용된 특정 컴파일 패스에 대한 자세한 내용은 설명서, 특히 pytket-quantinuum 섹션에서 확인할 pytket-quantinuum 수 있습니다.
Quantinuum 소프트웨어 스택에서 적용된 최적화 수준은 tket-opt-level 매개 변수를 사용하여 설정됩니다.
Quantinuum 시스템에 제출된 모든 회로에 대한 기본 컴파일 설정은 최적화 수준 2입니다.
TKET 컴파일 단계를 실험해보고 작업을 제출하기 전에 자신의 회로에 적용되는 최적화를 확인하고 싶으신 사용자는 Examples 폴더의 pytket-quantinuum 노트북을 참조할 수 있습니다.
스택에서 TKET 컴파일을 해제하려면 다른 옵션을 no-opt내부True로 option_params 설정할 수 있습니다. 예: "no-opt": True.
자세한 내용은 pytket다음 링크를 참조하세요.
먼저 필요한 패키지를 가져오고 기본 프로필을 시작합니다.
from qdk import qsharp
from qdk.azure import Workspace
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 = Workspace(
resource_id = "",
location = ""
)
MyTarget = MyWorkspace.get_targets("quantinuum.sim.h2-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()
기술 사양
시스템 모델 H2 및 시스템 모델 H2 에뮬레이터에 대한 기술 세부 정보는 Quantinuum 사양 및 양자 볼륨 데이터 리포지토리 및 Quantinuum 시스템을 인용하는 방법과 함께 하드웨어 사용자 가이드 페이지에서 찾을 수 있습니다.
대상 가용성
Quantinuum 양자 컴퓨터는 지속적으로 업그레이드되도록 설계되어 Quantinuum이 게이트 충실도, 메모리 오류 및 시스템 속도를 지속적으로 향상시키면서 고객이 최신 하드웨어 기능에 액세스할 수 있습니다.
Quantinuum 하드웨어는 상용 기간 및 개발 기간을 순환합니다. 상용 기간 동안 하드웨어는 큐 시스템을 통해 작업을 처리할 수 있습니다. 개발 기간 동안 업그레이드가 적용되면 하드웨어가 오프라인 상태입니다.
매달 상업용 및 개발 기간에 대한 정보가 포함된 일정이 Quantinuum 사용자에게 전송됩니다. 이 일정을 받지 못한 경우 전자 메일로 보내 QCsupport@quantinuum.com주세요.
target'의 상태는 현재 작업 처리 기능을 나타냅니다. 가능한 상태는 다음과 같습니다: target
- 사용 가능: target 온라인 상태이며 제출된 작업을 처리하고 새 작업을 수락합니다.
- 저하됨: target 작업을 수락하지만 현재 처리하고 있지 않습니다.
- 사용할 수 없음: target 오프라인 상태이며 새 작업 제출을 수락하지 않습니다.
Quantinuum 양자 컴퓨터 targets의 경우 사용 가능 및 성능 저하는 상용 기간에 해당하지만, 사용할 수 없음 은 업그레이드를 위해 컴퓨터가 오프라인 상태인 개발 기간에 해당합니다.
현재 상태 정보는 Azure Portal의 작업 영역 공급자 탭에서 검색할 수 있습니다.
Pricing
Quantinuum의 청구 계획을 보려면 Azure Quantum 가격 책정을 방문하세요.
한도 및 할당량
Quantinuum의 할당량은 Quantinuum 양자 컴퓨터에 제출된 작업의 경우 QPU 사용 크레딧 단위 하드웨어 양자 크레딧(HQC)을 기준으로, 에뮬레이터에 제출된 작업의 경우 에뮬레이터 HQC(eHQC)를 기준으로 추적됩니다.
HQC 및 eHQC는 작업 실행 비용을 계산하는 데 사용되며 다음 수식을 기반으로 계산됩니다.
$$ HQC = 5 + C(N_{1q} + 10 N_{2q} + 5 N_m)/5000 $$
where:
- $N_{1q}$는 회로의 1큐비트 작업 수입니다.
- $N_{2q}$는 회로의 네이티브 2큐비트 작업 수입니다. 네이티브 게이트는 최대 여러 개의 1큐비트 게이트까지 CNOT에 해당합니다.
- $N_{m}$은 초기 암시적 상태 준비 및 중간 및 최종 측정 및 상태 재설정을 포함하여 회로의 SPAM(상태 준비 및 측정) 작업의 수입니다.
- $C$는 샷 수입니다.
Note
HQC의 총 비용에는 조건부 분기 또는 제어 흐름의 모든 게이트 및 측정값이 포함됩니다. 이는 통합 하이브리드 작업에 더 큰 영향을 미칠 수 있습니다.
할당량은 플랜 선택을 기반으로 하며 지원 티켓으로 늘릴 수 있습니다. 현재 제한 및 할당량을 보려면 작업 섹션으로 이동하여 Azure Portal에서 작업 영역의 할당량 블레이드를 선택합니다. 자세한 내용은 Azure Quantum 할당량을 참조하세요.