brunch

양자컴퓨터의 이해 101

feat. 처음 읽는 양자컴퓨터 이야기 by 다케다 슌타로

by 최바람

아래 책을 3장까지 읽었다. 많은 오해가 풀렸다. 그리고 큐비트가 무엇인지 어느정도는 이해하게 된 거 같다. 인터넷에 있는 많은 큐비트에 대한 설명으로는 이해가 가지 않았던 그부분이 바로 아래 책을 통해 이해가 되었다. 그래서 독후감 아닌 독후감을 남겨야겠다고 생각했다.


https://product.kyobobook.co.kr/detail/S000001916182






현대 컴퓨터는 실리콘 기반의 메모리 기술의 향상으로 컴퓨팅 능력을 향상시켜왔다. 많이들 익숙해 하는 무어의 법칙이나 황의 법칙이 컴퓨팅 능력의 향상에 관한 법칙이다.


하지만 이는 최근에 들어서 무색해 지고 있다. 10나노 공정 이하의 미세공정으로 반도체 공정이 이루어지면서 점점 양자 효과가 커지고 있기 때문이다. 더 이상 컴퓨팅 파워의 증가는 위에 언급된 법칙을 따르지 않는다. GPU는 아직 벽에 부딪히지 않았다고들 하지만 이또한 미세공정의 발전만으로 컴퓨팅 파워를 향상시키는 일은 벽에 부딪히게 될 것이다.


그래서 이를 타개하기 위한 방법으로 HBM처럼 위로 쌓고, CPU외에 다양한 컴퓨팅 리소스를 함께 사용할 수 있도록 하는 CXL과 같은 새로운 인터페이스들을 강구하며 이에 관련된 스타트업도 많이 눈에 띈다.


이와 같이 컴퓨팅 능력을 향상시키기가 어려워진 상황에서 양자 컴퓨터는 주목을 받지 않을 수 없게 되었다.






술 친구이자 20년째 알고지낸 컴퓨터 공학 박사인 친구를 통해 양자 컴퓨터에 관한 짤막한 이야기를 들었다. 그 친구는 양자 컴퓨터 전공이 아니었기에 아래와 같은 짤막한 이야기만을 들었지만 역시나 나름 정확한 이야기였다.


"양자 컴퓨터에서 사용되는 연산자는 지금 컴퓨터에서 동작하는 연산자와는 다르다."


"일부 문제에 대해서만 아주 빠르게 동작하는 알고리즘이 있고 그 알고리즘 중에 하나가 소인수 분해에 관한 알고리즘이야."


"그래서 양자 컴퓨터에서 동작하는 연산자, 알고리즘을 개발하는 연구자들이 있고 그게 잘 된다면 대박이지."


그래서 양자 컴퓨터에 대해 궁금해졌다. 인터넷을 뒤졌고, 여러 글을 읽었지만 이해되지가 않았다.


그러다 양자컴퓨터는 어느새 기억너머 저편으로 사라졌다.





그러다 어느날 문득 궁금해졌다. 내가 하고 있는 일들도 어느샌가 한계에 부딪힌 컴퓨팅 능력 향상과 관련된 일이었고, HBM이니 해서 한동안 주식시장도 소란스러웠다. 카이스트 교수님 한 분은 이미 20여년도 더 전에 작게 만드는데는 한계에 도달할 것이며 새로운 솔루션이 필요할 것이라고, 지금 당장은 위로 쌓아야 한다고 말씀하셨다.


https://youtu.be/z8elzCucKLk

언더스탠딩, HBM이 궁금하다면 추천!




아무튼 양자비트(Q-bit)에 관해 내가 이해한 바를 간략하게 요약해 보자면,


1. 중첩된 상태를 가지고 있다. 중첩된 상태는 위상과 파동의 세기에 따라 다르게 만들 수 있다. 그래서 10개의 양자비트가 있다면 2^10개의 상태가 중첩되어 있다. 이는 현대 컴퓨터의 10비트가 어떤 특정한 값 하나를 가지는 것과 다른 상태이다. (나는 이부분을 오해했었다.)


2. 관측을 할 때 하나의 값으로 결정된다. 따라서 연산의 결과인 확률 분포를 알기 위해서 여러번의 측정이 필요하다(내 생각). 그래서 여론조사처럼, 1,000번의 관측을 하면 중심극한정리에 따라 오차범위 3%이내로 관측 전 분포에 대해 알아낼 수 있다(역시 내 생각). 그래서 자꾸 양자 컴퓨터에 대해 이야기할 때 오차, 오차 이야기 하면서 여러번 연산을 해야한다느니 했던거 같다.


3. 양자 컴퓨터에 사용되는 연산자는 단일 연산자(양자 NOT 연산자), 이항 연산자(위상Shift 연산자 & 양자간섭 연산자)가 있으며 이를 통해 현대 컴퓨터처럼 모든 계산이 가능하다. 1980년대에 양자 컴퓨터 이론이 만들어졌다.


4. 현대 컴퓨터의 NOT, AND 연산자를 실리콘 기반 반도체로 구현할 수 있는 것처럼, 위의 3가지 양자 비트 연산자도 실제로 만들 수 있다. 만드는 방법은 다양하며 여러 시도가 있다. 빛을 이용할 수도 있고, 전자를 이용할 수도 있고, 위의 연산자를 만들 수 있다면 ....


5. 양자NOT 연산자: 양자 비트의 상태를 반전시키는 것.


6. 양자Shift 연산자: 1의 파동의 위상을 바꾼다.


7. 양자간섭 연산자: 파동을 더하거나 빼서 새로운 파동을 만든다.






뒷부분은 양자 컴퓨터가 스마트한 해법을 가지고 있는 사례들(소프트웨어 측면 / 알고리즘)과 실제로 어떤 방식들로 하드웨어가 만들어지고 있는지 다루고 있다. (아직 읽지 않았다.)


이 책은 안개처럼 내 머릿속에 존재하던 양자 비트의 이미지를 명확하게 바꾸어 주었다.


양자 컴퓨터의 파급효과, 그리고 어떻게 물리적으로 만드는지에 대한 내용이 아닌, 양자 컴퓨터의 기반이 되는 논리적 구조에 대해 궁금한 분들께 이 책을 추천하고 싶다.


안녕.


끝!



p.s. 서로다른 컴퓨팅 리소스(CPU, GPU, FPGA 등)를 동시에 활용해서 데이터를 처리할 수 있는 엔진을 만드려는 시도 + 서로 다른 데이터 소스로 인해 파일 포맷이 다름으로 인한 데이터 카피 비용의 발생을 해결하기 위한 시도(통합 파일 포맷)도 있다. 그와 관련된 동영상 링크도 하나 남겨본다.


https://www.youtube.com/watch?v=CXxDNWrdEyk&list=PLJvBe8nQAEsEBSoUY0lRFVZr2_YeHYkUR&index=16&t=4s


keyword
매거진의 이전글MCMC 샘플링 그리고 깁스 추출법