Amazon Braket 시뮬레이터 비교 - Amazon Braket

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

Amazon Braket 시뮬레이터 비교

이 섹션에서는 몇 가지 개념, 제한 사항 및 사용 사례를 설명하므로 양자 작업에 가장 적합한 Amazon Braket 시뮬레이터를 선택하는 데 도움이 됩니다.

로컬 시뮬레이터와 온디맨드 시뮬레이터 중에서 선택(SV1, TN1, DM1)

로컬 시뮬레이터의 성능은 시뮬레이터를 실행하는 데 사용되는 Braket 노트북 인스턴스와 같이 로컬 환경을 호스팅하는 하드웨어에 따라 달라집니다. 온디맨드 시뮬레이터는 AWS 클라우드에서 실행되며 일반적인 로컬 환경을 넘어 확장되도록 설계되었습니다. 온디맨드 시뮬레이터는 대규모 회로에 최적화되어 있지만, 양자 작업 또는 양자 작업 배치당 약간의 지연 오버헤드가 추가됩니다. 이는 여러 양자 작업이 관련되는 경우 상충 관계가 있음을 의미할 수 있습니다. 이러한 일반적인 성능 특성을 감안할 때, 다음 지침은 노이즈가 있는 시뮬레이션을 포함하여 시뮬레이션 실행 방법을 선택하는 데 도움이 될 수 있습니다.

시뮬레이션의 경우:

  • 18qubits 미만을 사용하는 경우 로컬 시뮬레이터를 사용합니다.

  • 18~24qubits를 사용하는 경우 워크로드에 따라 시뮬레이터를 선택합니다.

  • 24qubits 이상을 사용하는 경우 온디맨드 시뮬레이터를 사용합니다.

노이즈 시뮬레이션의 경우:

  • 9qubits 미만을 사용하는 경우 로컬 시뮬레이터를 사용합니다.

  • 9~12qubits를 사용하는 경우 워크로드에 따라 시뮬레이터를 선택합니다.

  • 12qubits 이상을 사용하는 경우 DM1을 사용합니다.

상태 벡터 시뮬레이터란 무엇입니까?

SV1은 범용 상태 벡터 시뮬레이터입니다. 양자 상태의 전체 파동 함수를 저장하고 상태에 순차적으로 게이트 연산을 적용합니다. 가능성이 극히 희박한 것까지 포함하여 모든 가능성을 저장합니다. 양자 작업에 대한 SV1 시뮬레이터의 실행 시간은 회로의 게이트 수에 따라 선형적으로 증가합니다.

밀도 행렬 시뮬레이터란 무엇입니까?

DM1은 노이즈가 있는 양자 회로를 시뮬레이션합니다. 시스템의 전체 밀도 행렬을 저장하고 회로의 게이트 및 노이즈 연산을 순차적으로 적용합니다. 최종 밀도 행렬에는 회로 실행 후 양자 상태에 대한 전체 정보가 포함됩니다. 런타임은 일반적으로 연산 횟수에 따라 선형적으로 증가하고 qubits 수에 따라 기하급수적으로 증가합니다.

텐서 네트워크 시뮬레이터란 무엇입니까?

TN1은 양자 회로를 구조화된 그래프로 인코딩합니다.

  • 그래프의 노드는 양자 게이트 또는 qubits로 구성됩니다.

  • 그래프의 변은 게이트 간의 연결을 나타냅니다.

이러한 구조 덕분에, TN1은 상대적으로 크고 복잡한 양자 회로에 대해 시뮬레이션된 해를 찾을 수 있습니다.

TN1에는 두 단계가 필요합니다.

일반적으로는 TN1은 양자 계산을 시뮬레이션하는 2단계 접근 방식으로 작동합니다.

  • 리허설 단계: 이 단계에서 TN1은 그래프를 효율적으로 탐색할 수 있는 방법을 고안합니다. 여기에는 원하는 측정값을 얻을 수 있도록 모든 노드를 방문하는 것이 포함됩니다. TN1은 두 단계를 함께 수행하므로 고객은 이 단계를 볼 수 없습니다. 첫 번째 단계를 완료하고 실제 제약 조건에 따라 두 번째 단계를 자체적으로 수행할지 여부를 결정합니다. 시뮬레이션이 시작된 후에는 해당 결정에 대해 입력을 제공할 수 없습니다.

  • 수축 단계:이 단계는 고전 컴퓨터에서의 계산 실행 단계와 유사합니다. 단계는 일련의 행렬 곱셈으로 구성됩니다. 이러한 곱셈의 순서는 계산의 난이도에 큰 영향을 미칩니다. 따라서 그래프 전체에서 가장 효과적인 계산 경로를 찾기 위해 리허설 단계가 먼저 수행됩니다. 리허설 단계에서 수축 경로를 찾은 후 TN1은 회로의 게이트를 함께 수축시켜 시뮬레이션 결과를 생성합니다.

TN1 그래프는 지도와 유사합니다.

비유하자면, 기본 TN1 그래프를 도시의 거리에 비교할 수 있습니다. 격자형으로 계획된 도시에서는 지도를 사용하여 목적지까지의 경로를 쉽게 찾을 수 있습니다. 계획되지 않은 거리, 중복된 도로명 등이 있는 도시에서는 지도만으로 목적지까지 가는 경로를 찾기가 어려울 수 있습니다.

TN1이 리허설 단계를 수행하지 않았다면, 지도를 먼저 보지 않고 목적지를 찾으려 도시의 거리를 헤매는 것과 같을 것입니다. 지도를 보는 데 더 많은 시간을 보내는 것이 실제로 걸어 다니는 시간 측면에서 큰 도움이 될 수 있습니다. 마찬가지로 리허설 단계는 중요한 정보를 제공합니다.

TN1은 통과하는 기본 회로의 구조에 대해 특정한 “인식”을 가지고 있다고 말할 수 있습니다. 이러한 인식은 리허설 단계에서 획득됩니다.

이러한 각 유형의 시뮬레이터에 가장 적합한 문제 유형

SV1은 주로 특정 수의 qubits와 게이트를 갖는 것에 의존하는 모든 종류의 문제에 적합합니다. 일반적으로, 소요 시간은 게이트 수에 따라 선형적으로 증가하지만, shots의 수에는 의존하지 않습니다. SV1은 일반적으로 28qubits 미만의 회로에서 TN1보다 더 빠릅니다.

SV1은 qubit 수가 많아질수록 더 느려질 수 있는데, 이는 실제로 극히 희박한 것까지 포함하여 모든 가능성을 시뮬레이션하기 때문입니다. 어떤 결과가 나올 가능성이 높은지 판단할 수 있는 방법은 없습니다 따라서 30-qubit 평가를 위해 SV1은 2^30 구성을 계산해야 합니다. Amazon Braket SV1 시뮬레이터를 34qubits로 제한하는 것은 메모리 및 스토리지 제한으로 인해 실질적인 제약이 됩니다. 이렇게 생각할 수 있습니다. qubit에 SV1을 더할 때마다 문제가 두 배로 어려워집니다.

많은 종류의 문제에서 TN1은 SV1보다 훨씬 더 큰 회로를 현실적인 시간 안에 평가할 수 있습니다. 왜냐하면 TN1이 그래프의 구조를 활용하기 때문입니다. 시작 지점에서부터 해의 진화를 추적하며 효율적인 탐색에 기여하는 구성만 유지합니다. 다시 말해, 행렬 곱셈의 순서를 생성하기 위해 구성을 저장하여 평가 과정을 간소화합니다.

TN1의 경우 qubits 및 게이트 수가 중요하지만, 그래프의 구조는 훨씬 더 중요합니다. 예를 들어, TN1은 게이트가 단거리(즉, 각 qubit가 게이트를 통해 가장 가까이 이웃하는 qubits에만 연결됨)인 회로(그래프)와 연결(또는 게이트)의 범위가 유사한 회로(그래프)를 평가하는 데 매우 적합합니다. TN1의 일반적인 범위는 각 qubit가 5qubits 떨어진 다른 qubits와만 통신하도록 하는 것입니다. 대부분의 구조가 이와 같이 더 단순한 관계로 분해될 수 있고, 이를 더 많고, 더 작거나, 더 균일한 행렬로 표현할 수 있다면 TN1은 효율적으로 평가를 수행합니다.

TN1의 제한 사항

TN1은 그래프의 구조적 복잡성에 따라 SV1보다 느릴 수 있습니다. 특정 그래프의 경우 TN1는 리허설 단계 후에 시뮬레이션을 종료하고 다음 두 가지 이유 중 하나로 FAILED의 상태를 표시합니다.

  • 경로를 찾을 수 없음 — 그래프가 너무 복잡하면 적절한 탐색 경로를 찾기가 너무 어려워 시뮬레이터가 계산을 포기합니다. TN1은 수축을 수행할 수 없습니다. 다음과 유사한 오류 메시지가 표시될 수 있습니다. No viable contraction path found.

  • 수축 단계가 너무 어려움 — 일부 그래프에서는 TN1이 탐색 경로를 찾을 수 있지만, 경로가 매우 길어 평가하는 데 극도로 시간이 많이 소요됩니다. 이 경우 수축 비용이 너무 높아 비용 부담이 커지게 되며, 대신 TN1은 리허설 단계 이후에 종료됩니다. 다음과 유사한 오류 메시지가 표시될 수 있습니다. Predicted runtime based on best contraction path found exceeds TN1 limit.

참고

수축이 수행되지 않고 FAILED 상태가 표시되는 경우에도 TN1의 리허설 단계에 대한 요금이 청구됩니다.

예측 런타임은 또한 shot 수에 따라 달라집니다. 최악의 경우 TN1 수축 시간은 shot 수에 따라 선형적으로 달라집니다. 회로는 더 적은 shots으로 수축될 수 있습니다. 예를 들어, shots이 100개인 양자 작업을 제출하면 TN1이 수축 불가능으로 판단할 수 있지만, 10개만으로 다시 제출하면 수축이 진행됩니다. 이런 상황에서 100개의 샘플을 얻으려면 동일한 회로에 대해 shots이 10개인 양자 작업 10개를 제출하고 최종적으로 결과를 조합하면 됩니다.

가장 좋은 방법은 더 많은 shots 수로 진행하기 전에 항상 적은 shots 수(예: 10개)로 회로나 회로 클래스를 테스트하여 TN1에 대한 회로의 난이도를 파악하는 것입니다.

참고

수축 단계를 형성하는 일련의 곱셈은 작은 NxN 행렬로 시작됩니다. 예를 들어 2-qubit 게이트에는 4x4 행렬이 필요합니다. 너무 어렵다고 판단되는 수축 과정에서 필요한 중간 행렬은 매우 큽니다. 이러한 계산을 완료하는 데는 며칠이 걸릴 수 있습니다. 따라서 Amazon Braket은 극도로 복잡한 수축은 시도하지 않습니다.

동시성

모든 Braket 시뮬레이터를 사용하면 여러 회로를 동시에 실행할 수 있습니다. 동시성 제한은 시뮬레이터 및 리전에 따라 다릅니다. 동시성 제한에 대한 자세한 내용은 할당량 페이지를 참조하세요.