반응형
SMALL
Quantum Computing Architecture and Hardware for Engineers 를 읽기위해 기본적으로 이해해야할 내용들 정리.
- 기본구조
- QPU(Quantum Processing Unit) : 실제 Qubit가 동작.
- QEC layer :Digital Logic (FPGA, ASIC) : Syndrome을 읽고, Decoding, 수정 feedback.
- Logical layer(Host CPU) : logical qubit로 실제 알고리즘 수행.
- QPU 정보를 읽기위해 HW에서 수행해야할 항목은?
- 양자 상태(중첩된 정보)는 복사할수 없음. : No-Cloning Theorem
- 읽으면 중첩의 붕괴(Collapse) 발생 : (양자 상태가 깨짐.)
- 그러면 어떻게 해야할까?
- 양자 정보는 노이즈에 취약 -> 읽어서(측정) 디지털로 처리한 다음 다시 QPU에 피드백을 줘야함.
- QEC(Quantum Error Correction) - 계산 중간에 오류를 수정하는 단계.
- 보조 Qubit 사용 : 데이터를 담은 Qubit를 직접 읽으면, 정보가 깨지기 때문에 Ancilla Qubit(보조 큐비트)를 얽힘(Entanglement) 상태로 만듦.
- 간접 측정(Syndrome Measurement) : 보조 큐비트만 측정. -> 원래 정보는 깨지지 않고 오류가 발생했는지 여부만 디지털로 읽을수 있음.
- 디지털로 읽은 정보를 분석해서 뒤집한 bit 정보를 알아내고 이를 feedback 시켜줌. (FPGA / ASIC으로 수행.)
- 현재의 양자 컴퓨터 (NISQ: Noisy Intermediate-Scale Quantum)
- https://koreateach.com/nisq-quantum-computing-hybrid-strategy-guide/
- 1. 양자회로의 실행 및 측정 : QPU가 계산하고, 결과를 측정(Read)하여 디지털 값으로 만듦.
- 2. 고전 컴퓨터로 전달 : 디지털값을 CPU,GPU가 받아서 최적의 알고리즘을 돌림.
- 3. 파라미터 update : 결과를 더 좋게 만들려면, 양자회로의 각도를 조금 수정한다는 판단을 내리면, 다시 QPU에 새로운 명령을 내림.
- 1~3 반복
- QEC를 하는 이유.
- ECC와 비슷하지만, 양자는 읽으면 망가지기 때문에 간접 측정을 수행.
- 데이터 큐비트(Data Qubit) : 실제 계산 정보가 담긴 큐비트.
- 보조 큐비트(Ancilla Qubit) : 에러가 있는지 검사만 하고 버려지는 큐비트.
- QPU에서 데이터 큐비트와 보조 큐비트를 얽히게(Entangle)만든 다음 보조 큐비트만 읽음.
- 보조 큐비트가 0이면, 데이터 큐비트가 서로 상태가 같음(정상)
- 보조 큐비트가 1이면, 데이터 큐비트중 하나가 뒤집힘.(에러 발생)
- 이때나오는 0,1의 값을 신드롬(Syndrome)이라고 함.
- ECC와 비슷하지만, 양자는 읽으면 망가지기 때문에 간접 측정을 수행.
- Digital Logic의 임무
- Syndrome Decoding
- Input
- 수십, 수백개의 보조 큐비트에서 측정된 0,1 stream.
- Processing : Decoding
- 정확히 어느 위치의 큐비트에서 어떤 종류의 error 가 발생했는지를 역추적 (X-flip, Z-phase)
- 에러가 한곡에서만 나는게 아니고 연쇄적 또는 보조큐비트 자체를 측정하는 과정에서 Error 가 발생할수 있음.
- 알고리즘: 그래프 매칭 알고리즘(Minimum Weight Perfect Matching)을 HW가속기로 돌려서 가장 확률높은 에러 시나리오를 계산.
- Output
- 3번 큐비트에 x gate를 적용하고 5번 큐비트에 z gate를 적용해라 라는 교정명령(Correction Instruction)을 생성.
- Input
- Latency 가 중요.
- 양자 상태의 수명(Coherence Time): 큐비트의 정보는 아주 짧은 시간동안만 유지됨.
- 처리 속도 : 디지털 logic이 syndrome decoding 하는 동안에도 큐비트의 상태는 계속 변함.
- 제약 : 측정 -> 디지털 로직 계산 -> 피드백 신호 전달 : 수백 ns ~ 수 us 이내에 완료되어야함.
- 실제 구현
- 구글, IBM : Surface Code : https://arxiv.org/pdf/1208.0928
- 체스판 배열 : 큐비트를 체스판 처럼 2차원 격자로 배치.
- open circles : data qubit
- filled circles : ancilla qubit (상하좌우 데이터 큐비트의 에러 검사)
- 반복 루프 :
- 모든 filled circles 측정.
- 많은 양의 0,1 데이터가 digital logic으로 전송.
- 디지털 logic은 2차원 패턴을 분석해서 에러위치를 찾음.
- 레이저(or 마이크로파)로 에러를 수정.
- 1초에 수십만번 반복
- Syndrome Decoding
-
- QuMA : https://ieeexplore.ieee.org/document/8358026
- 명령어 집합(QISA)과 Micro architecture가 어떻게 상호작용하며 피드백을 주는지 정의한 고전적 모델.
- Sea of Qubit Architecture :
- Surface Code 기반 아키턱쳐들이 자향하는 구조 -> 큐비트 배열위에 제어 logic이 샌드위치처럼 올라가는 구조.
- Digital Logic의 Decoder 알고리즘과 구현
- MMPM(Minimum Weight Perfect Matching)
- 개념 : 에러들의 관계를 그래프 문제로 바꾼뒤, 가장 가능성이 높은 에러 쌍을 매칭하는 알고리즘.
- 문제 : 정확도가 높지만 O(n^3)의 연산량이 필요.
- 하드웨어 : FPGA, ASIC 병렬처리 연구
- Union-Find Decoder(가장현실적인 구현체)
- 개념: MWPM보다 약간 정확도가 떨어짐. 속도가 훨씬 빠름(O(n@(n): 선형시간) - 디지털로 구현하기 적합.
- 클러스터를 키워가며 에러를 만나는 순간 병합(Union)하고 찾는(Find) 방식.
- 특징: 많은 HW팀들이 실시간 처리를 위해서 이 방식을 채택.
- 개념: MWPM보다 약간 정확도가 떨어짐. 속도가 훨씬 빠름(O(n@(n): 선형시간) - 디지털로 구현하기 적합.
- NN Decoder(AI 기반)
- MMPM(Minimum Weight Perfect Matching)
- 필독 논문및 그룹
- suppressing quantum errors by scaling a surface code logical qubit https://arxiv.org/pdf/2207.06431
- 내용 : 구글 Quantum AI팀이 실제로 Surface Code를 돌려서 에러를 잡는것을 증명한 논문.
- 설계 포인트 : Supplementary Information 참조 - FPGA 기반 제어 시스템 활용.
- Almost-linear decdoing algorithm for topological codes https://arxiv.org/pdf/1709.06218
- Union-Find Decoder 아키텍처
- suppressing quantum errors by scaling a surface code logical qubit https://arxiv.org/pdf/2207.06431
- QuMA : https://ieeexplore.ieee.org/document/8358026
- 고치면서 하면 느려지는것 아닌가?
- active Feedback (직접가서 수정)
- Flow
- Read :QPU->ADC->FPGA(Syndrome 분석)
- Decide : FPGA가 error qubit 를 판단 (ex : 3번 큐비트)
- Generate : AWG, DAC에 명령을 내림( ex : 3번 큐비트 control line에 x_gate wave를 쏴.)
- shoot : 실제 수행. (wave pulse 발생)
- Update : 이 pulse가 QPU로 내려가 3 qubit를 타격해서 원래 상태로 뒤집음.
- Flow
- Pauli Frame Tracking (가상피드백) : https://ieeexplore.ieee.org/document/8060448
- active 방식보다 가상 방식을 선호. - pulse를 쏘면 그자체가 노이즈가되고 시간이 소요됨.
- 대신 SW적으로 update만 하는 방식을 사용 - pauli frame tracking
- 원리
- QEC 로직 : 3번 qubit가 뒤집힘 (0이어야하는데, 1이됨.)
- 물리적행동(아무것도하지 않음, pulse 쏘지 않음)
- 논리적행동(제어장치의 레지스터(메모리)에 qubit_3_state = inverted를 기록.)
- 추후처리(update 의 시점에 변경) :
- 나중에 알고리즘 진행중 3번 qubit를 측정해야할때, 그때 측정결과가 1이 나오더라도 메모리를 보고 아까 뒤집힌걸 확인. (이건 사실 0 이야. 로 해석)
- 만약 다음 연산이 필요하면, 그 뒤집한 상태를 감안해서 게이트의 각도를 수정해서 쏨.
- active Feedback (직접가서 수정)
- 참조 :
책 & 강의 : https://github.com/hywong2/Quantum_Computing_Architecture
GitHub - hywong2/Quantum_Computing_Architecture: Book: Quantum Computing Architecture and Hardware for Engineers - Step by Step
Book: Quantum Computing Architecture and Hardware for Engineers - Step by Step - hywong2/Quantum_Computing_Architecture
github.com
양자 컴퓨터 blog : https://springfallinlove.tistory.com/category/양자%20컴퓨터%20%28Quantum%20Computer%29?page=2
반응형
SMALL
'일 > Study' 카테고리의 다른 글
| RTL) Synthesis Design Constraint(SDC) 참조 - Object type (0) | 2022.12.21 |
|---|