새로운 배움 — 양자 컴퓨팅 — Part 3

배우는 자(Learner Of Life)
12 min readApr 25, 2024

양자 컴퓨팅 성능을 최적화하는 방법

양자 컴퓨팅의 성능을 최적화할 수 있는 방법에는 무엇이 있을까?(1)

지난 글에서 양자 컴퓨팅의 기본 원리와 큐비트 신호의 측정 방식에 대해 알아보았다. 요약하자면 Rabi 진동이라는 것을 활용해 진폭 변화시킨 가우스 펄스(Gaussian Pulse)를 Readout 펄스의 특정 주기에 따라 반복적으로 주입하여 구(Sphere)상으로 표현될 수 있는 큐비트 신호의 진폭과 위상을 접지 상태(ground)와 여자 상태(excited)의 사이에서 조정하는 것이다. 이후 취득한 데이터를 활용해 Sweeping 및 Averaging을 적용하여 큐비트 상태 변화에 대한 성질을 수평의 진폭(Amplitude)과 수직의 Quadrature Level의 영역에서 그래프로 정의한다.

글의 마지막 부분에서 잠깐 Rabi 진동을 통해 측정한 데이터를 활용하여 Single Shot 큐비트 최적화가 가능하다고 언급했다. 즉, 큐비트 측정을 최적화하는 하나의 방법인 셈인데, 시리즈를 마무리하는 이번 마지막 글에서는 양자 컴퓨팅의 성능을 최적화하는 방법에 대해 다루어 보고자한다.

Single Shot 최적화

초전도 큐비트 양자 컴퓨팅 시스템에서는 큐비트의 Readout에 대한 성능이 관건이다. 결국, 큐비트 정보를 얼마나 정확하게 읽어내느냐가 중요한 것이니말이다. Spectroscopy에서는 여러가지 심화된 큐비트 Readout 방식을 적용할 수 있는데, 대표적으로 아래 3가지가 있다.

  • Single-shot Readout
  • Multi-state Readout
  • Multi-qubit Readout

큐비트 Readout 역시 디지털 신호 처리 영역에 해당하는 만큼, 우리가 원하는 큐비트 형태로 정보를 읽어들이는 것이 중요하다. 태초의 Microwave Pulse에서 큐비트 Readout 신호를 읽어내는 기술이 중요한다. Zurich Instruments사의 SHFQA라는 장비는 이러한 처리를 효율적으로 수행하는 기술을 내부에 구현하고 있다.

이 기술은 아날로그 영역에서 Double-superheterodyne 주파수를 낮추고(downconversion) 디지털로 변환한 후, Weighted Integration 함수를 적용하여 신호의 정보를 최대한 정확하게 연산한다. 여기에 추가적인 디지털 신호 처리 기법을 적용하는 것이다.

SHFQA 장비는 Microwave 펄스에서 Qubit 신호를 추출할 수 있는 기술을 구현하고 있다(2).

디지털 영역에서 적용되는 Weighted Integration 함수가 아무래도 이 기술에서 가장 중요한 부분이라고 할 수 있는데, 아래 수식에서 보이는 것 처럼 시간 영역에서 특정 시점의 입력 신호(V(t))와 특정 시점까지의 Weight를 합산한 값(Wn(t))을 곱하고 그 것을 신호 전체 주기 시간인 T로 나누는 것이다. 이렇게 해서 연산된 값은 복소수(Complex) 형태의 신호를 얻을 수 있다.

큐비트에 Weighted Integration 함수를 적용하는 것이 가장 핵심적인 기술이다.

Single-Shot Readout(Single State Qubit Readout)

이전 글의 Rabi 진동을 설명하는 부분에서 수집된 큐비트 데이터의 평균을 내어 그래프로 성질을 규정한다고 언급했었다. 이때 평균을 내는 부분이 바로 위 수식을 통해 설명한 적분이다. 아래 그림에서는 특정 시점의 적분을 연산한 결과를 V1이라는 전압값으로 표현하고 있는데, 바로 이러한 적분 연산 결과 전압값 여려 개에 대한 평균을 내는 것이다. 개별적인 적분 연산 결과는 In-phase 수평축과 Quadrature 수직축 그래프 영역에서 여러개의 점들로 표현되는데, 바로 이러한 점들의 평균을 계산함으로써 큐비트 상태 변화 성질을 그래프로 규정할 수 있는 것이다. 바로 이 과정들이 Rabi 측정에서 이루어지는 연산들이라 할 수 있다. 또한, 평균값을 계산하지 않은 값들에 대해서도 분석이 가능하다.

Rabi 진동에서는 Single-State 큐비트 Readout 값 여러개의 평균을 통해 큐비트 성질을 규정한다(2).

큐비트가 중첩(Superposition)된 상태라면, 보통 완전한 접지(ground)이거나 여자(excited)상태가 아닌 그 중간의 상태로 볼 수 있을 것이다. 이때 SNR과 최적의 Readout을 판별할 수 있는 부분(Weight Integration 함수 적용 단계)을 파악한다. Single-shot이라함은, 접지와 여자 상태의 차이에서 나타나는 Readout 신호의 전압차(dVge)가 특정 신호의 상태 분포인 sigma보다 눈에 띄게 클 때를 말한다. 즉, 접지 상태의 분포의 평균에 대비한 여자 상태의 분포의 평균의 차와, 여자 혹은 접지 상태의 분포의 정도를 비교하는 방식으로 SNR을 측정하는 것이다. 정확한 SNR의 측정을 위해서는 Readout 축으로부터 데이터가 얼마나 기울었는지를 파악한다.

Single-Shot Readout은 두 상태의 분포 평균의 차가 특정 상태의 분포(sigma)에 비해 클 때를 말한다(2).

이러한 Single-Shot Readout은 아래와 같이 구현할 수 있다. 아래 그림 오른쪽 상단에서 보이는 것처럼 해당 상황은 접지 상태 50%에 여자 상태 50%인 큐비트의 상태이다. Drive 펄스를 ㅠ혹은 0 펄스로 특정한 주기 동안 Readout 펄스에 따라 적용하면, 아래 IQ 그래프에서 시각화할 수 있을 정도로의 충분한 데이터를 추출할 수 있다.

ㅠ와 0 펄스를 Readout의 특정 주기에 따라 적용하여 충분한 측정 데이터를 생성해낸다(2).

여기서 더 나아가서 조금 더 높은 여자 상태(50% 이상)의 큐비트 정보를 추출해본다고 하면, 이 때부터는 더 이상 데이터의 평균값을 계산하는 방법으로는 어렵다. 그러나 더 높은 여자 상태의 큐비트를 감지하는 것 자체는 어렵지않다. 의도적으로 Bosonic 큐비트라는 것을 통해 알 수 있거나, 짧은 게이트 펄스 사용시 의도하지 않았던 상태 유출(State Leakage)를 통해서 확인할 수 있기도하다.

더 높은 여자 상태의 큐비트를 감지하는 것은 평균값으로는 어렵지만 다른 방법을 통해 쉽게 할 수 있다(2).

Multi-State Readout

다상태 전환(Multiple-State Transition) 상황에서도 이론적으로 비슷한 방식을 취할 수 있다. 일반적으로 조금 더 높은 상태 밀도를 가진 큐비트 신호를 처리하기 위해서는 상태 Readout을 최적화할 필요가 있다. 예를 들어 (|f>) Level Reset을 통해 상태 유출에 대응하거나, DRAG Calibration을 적용한다거나, 각 전환(Transition) 상황에 대해 1개의 Integration 함수를 활용하는 것 등이 있다.

다상태 전환 상황시 더 높은 상태 밀도를 가진 큐비트 신호를 처리하기위해 조금 더 최적화가 필요하다(2).

여기서의 관건은 각 전환 상황에 대한 최적의 Readout Weight를 계산하는 것인데, 이는 아래와 같은 수식으로 계산한다. 즉 각 전환 상태의 여러 raw 데이터들의 평균을 구해 서로 비교하는 것이다. 접지 및 여자 상태의 최적화된 Weight(Wge(t))는 접지 상태의 접지 상태와 여자 상태의 차의 절대값(Vg(t) — Ve(t))에 비례한다. 여기서 Weight는 1로 Normalize되고, Weight 메모리에 대해 프로그램된다. 차의 절대값을 연산하기 위해 활용되는 접지 상태의 신호와 여자 상태 신호는, QA Scope라는 도구를 활용해 최대한 잡음을 억제한 상태로 추출된 깔끔한 신호의 평균으로 연산된 값을 활용하며 복소수(Complex) 형태를 취한다.

Integration Weight를 활용해 특정 상태의 여러 raw 데이터 신호들의 차를 비교한다(2).

여러 Integration 함수로부터 추출한 데이터는 아래와 같이 표현될 수 있다. 오른쪽에 있는 원래 데이터를 기반으로 각각의 케이스에 대해 Weight 값을 계산하고, 그 값을 Integration 함수에 활용하는 것이다. 파란색 상태에서 노란색 상태로 이동하는 경우(V1), 파란색 상태에서 빨간색 상태로 이동하는 경우(V2), 노란색 상태에서 빨간색 상태로 이동하는 경우(V3) 3가지의 전환에 대한 연산을 할 수 있다.

원본 데이터를 기반으로 전환이 일어날 수 있는 모든 케이스에 대해 Integration Weight 함수를 적용할 수 있다(2).

또한 임계값(Threshold)를 적용해 실시간으로 상태를 구분할 수 있다. 이렇게 하는 이유는 임계값을 기준으로 삼아 특정 이진수 큐비트 상태에대한 디지털 신호를 실시간 피드백 시스템 내 큐비트 정보를 읽는 목적에 활용할 수 있기 때문이다. 아래와 같이 각 케이스에 대해서 In-Phase 축에서 특정 값을 임계값으로 잡아 그 값을 기준으로 왼쪽과 오른쪽에 있는 값들의 상태를 구분하는 체계를 만들 수 있다.

특정한 임계값(Threshold)를 기준으로 상태를 구분하는 체계를 만들 수 있다(2).

Multi-Qubit Readout

다중 큐비트(Multi-Qubit) 혹은 다중 주파수(Multi-Frequency) 상황에서의 Readout은 어떨까? 위와 같이 Integration Weight 함수를 활용하는 방식으로 다수의 큐비트 및 주파수 혹은 Resonator의 정보를 연산하는데 활용할 수 있다. 아래와 같이 여러개의 Integration 함수를 사용하는 하나의 시스템에서도, 연산 결과를 하나의 입력 신호에 주입하는 방식으로 두 개 이상의 큐비트 정보 혹은 주파수 정보를 갖는 상황에 대처할 수 있다. 이후 출력되는 큐비트 각각에 대해서, Drive 펄스 및 Readout 펄스 각 부분에서 주파수 정보를 분리시키는 방식으로, 각 큐비트의 Readout 신호를 분리시킬 수 있다.

Readout을 수행할 큐비트가 2개 라고 가정하자. 아래 그림처럼 V1,2,3의 Integration 함수를 첫 번째 큐비트에 대해 지정하고, 나머지 V4,5,6 적분 함수를 두 번째 큐비트에 지정한다. 이후 방금 언급한 것처럼 각 큐비트에 대해 Drive 펄스와 Readout 펄스 상에서 각각 주파수 정보를 분리시켜 각 큐비트에 대한 고유정보(주파수, Resonator 및 큐비트 자체 정보)등을 추출한다.

다중 큐비트/주파수 상황에서도 Integration 함수를 활용한 후 각 큐비트의 정보를 분리할 수 있다(2).

소프트웨어 상에서의 실험

SHFQC 장비의 경우 이를 지원하는 LabOneQ라는 소프트웨어를 활용하는데, 해당 어플리케이션에서 각각의 샘플 혹은 함수에 대해 펄스 객체를 만들어 적용할 수 있다. 이러한 환경에서 하드웨어에 직접적으로 Low-level 언어로 프로그래밍 하지 않고 Python과 같은 High-Level로 프로그래밍할 수 있다. 또한, 적용하는 펄스의 형태를 조금 더 최적화하여 게이트 충실도(Gate Fidelity)와 Readout 충실도를 증가시킬 수도 있고, 최적화된 값을 다른 측정을 위해 재활용할 수도 있다.

Single-Shot Readout을 통해 Readout 측정을 수행하면서 동시에 측정 성능을 높이는 최적화 과정을 수행하고, 장비의 설정을 수정하여 실시간 피드백 Readout을 수행할 수 있다. 실제 실험 환경에서는 SHFQC 와 같은 장비에서는 Quantum Analyzer 채널내 Integration Weight 함수를 구체화할 수 있다. 연속적인 Qubit Drive 신호와 Readout 신호를 적용해 평균을 계산하지 않은 Single-Shot Data를 얻을 수 있다.

Qubit Drive 펄스는 Rabi 진동을 통해 최적화된 ㅠ펄스와 0펄스를 사용한다. 양자 표류(Drift)에 대한 민감도를 최소화하기 위함이다.해당 진폭을 갖는 펄스를 주기적으로, 또 반복적으로 Readout 특정 신호 주기에 맞추어 적용한다. 2가지의 Readout 타입 신호가 적용되는데, 하나는 접지 상태의 신호 다른 하나는 여자 상태의 신호이다.

Rabi 진동 실험과의 가장 결정적인 차이는 데이터가 평균화되지 않은채로 추출된다는 것이다. Single-Shot 모드로 측정을 하기에 평균을 계산하지 않는 것이다.

연속적인 Drive 및 Readout 신호를 적용해 평균화하지않은 Single-Shot Data를 얻을 수 있다(2).

0와 ㅠ펄스를 적용해 Single-Shot Readout을 수행한 결과가 두 개의 다른 군집(Cluster)로 표현되었다. 이처럼 Single-Shot Readout 데이터는 큐비트 상태를 In-phase와 Quadrature의 두 축 내에서 군집의 형태로 데이터가 수집되고, 두 군집 사이에서 특정한 임계값(Threshold)를 적용하여 상태를 구분할 수 있는 실시간(Real-time) Readout을 가능하게한다.

두가지 다른 데이터의 군집(Cluster)이 생긴 Single-Shot Readout의 결과(2).

참조:

(1) https://pixabay.com/photos/sunrise-morning-chairs-table-trees-8294459/

(2) https://www.youtube.com/watch?v=rKkR4m1DaiY

--

--

배우는 자(Learner Of Life)

배움은 죽을 때까지 끝이 없다. 어쩌면 그게 우리가 살아있다는 증거일지도 모른다. 배움을 멈추는 순간, 혹은 배움의 기회가 더 이상 존재하지 않는 순간, 우리의 삶은 어쩌면 거기서 끝나는 것은 아닐까? 그렇기에 살아있음에 감사하며, 세상의 가르침에 목이말라 오늘도 즐겁게 배우려한다.