로 개발하세요.
첫 번째 회로부터 GPU 클러스터 전반의 분산 시뮬레이션까지, QXel을 위한 가이드와 복사해 바로 쓰는 예제를 제공합니다.
시작하기
설치
QXel은 소스에서 빌드하는 고성능 GPU 가속 양자 회로 시뮬레이터입니다. 현재 Linux에서 동작합니다.
가상 환경
테스트된 툴체인에 고정한 conda 환경을 사용하면 여러 머신에서 빌드를 재현할 수 있습니다.
빠른 시작
몇 분 안에 QXel에서 첫 회로를 실행해 보세요. QXel은 Amazon Braket LocalSimulator 인터페이스를 구현하므로, Braket으로 회로를 만들고 시뮬레이터가 QXel 백엔드를 가리키게 하면 됩니다.
시뮬레이터 종류
QXel은 세 가지 Braket 시뮬레이터 백엔드를 제공합니다. LocalSimulator(backend=...)에 이름을 전달하여 하나를 선택하세요.
SDK 통합
성능
GPU 가속
QXel은 기본적으로 CPU 커널에서 게이트 연산을 실행합니다. 약 20큐비트를 넘어서면 GPU가 압도적으로 빠른데, 큐비트가 하나 늘 때마다 상태 벡터가 두 배로 커지고 GPU는 그 벡터에 게이트를 대규모 병렬로 적용하기 때문입니다. compute_type 옵션으로 이를 선택할 수 있습니다.
스토리지 오프로딩
큰 상태 벡터가 반드시 DRAM에 들어가야 하는 것은 아닙니다. QXel은 상태 벡터를 CPU 메모리나 보조 스토리지(NVMe/HDD)로 오프로드할 수 있어, 단일 노드에서 더 많은 큐비트 수에 도달할 수 있습니다.
분산 시뮬레이션
회로가 한 대의 머신에 담기에 너무 클 때, QXel은 MPI로 상태 벡터를 여러 노드에 분할합니다. 각 rank는 상태 벡터의 일부를 보유하고, 게이트가 적용될 때 다른 rank와 진폭을 교환합니다. 회로 코드는 변경하지 않으며, 동일한 스크립트를 mpirun으로 실행하면 됩니다.
레퍼런스
run() 옵션
QXel은 표준 Braket run() 메서드에 몇 가지 키워드 인자를 추가합니다. 모두 선택 사항이며, 기본값은 올바른 CPU 실행을 제공합니다. 회로가 너무 느리거나 메모리에 담기에 너무 커지면 이 값들을 조정하세요.
Result type
명시적인 measure 게이트를 추가하는 대신, 회로에 Braket result type을 붙여서 무엇을 돌려받을지 QXel에 알립니다. 여러 개를 붙일 수 있습니다. 실행 후에는 붙인 순서대로 result.values에서 읽으면 됩니다.
FAQ
QXel 시뮬레이터에 대한 자주 묻는 질문입니다.