← 목록
기타 2026-07-03 6KB 읽기 6분

크라우니 양자 시뮬레이터 v2 — 2000큐비트 실측·정량 비교·범용화 로드맵

개요

전편(2026-07-02, 40큐비트 v1)에 이어: ① 기존 시뮬레이터 정량 비교 ② 1000/2000큐비트 실구현+실측 ③ 최적화 요소 체크 ④ 범용성(근사) 현황·목표 재수립. v2로 2000큐비트 실측 성공 (libs/양자스테빌라이저2.한선).

실측 결과 (Mac, crownyc C VM 인터프리터)

n초기화H게이트CX게이트측정(희소)정합
40<1ms0.45ms/개0.87ms/개28ms
100~10ms1.1ms2.2ms83ms
500~1s5.1ms10.6ms27ms
10002s10.2ms21.2ms32ms
20008.3s20.9ms42.9ms33ms
- 게이트 O(2n) 선형 스케일 확인(행당 ~5.2µs H / ~10.7µs CX). RSS n=2000 = 572MB. GHZ 정합 전 구간 1.
  • v1 상한 44큐비트(평면배열 4095캡) → v2 2D 행배열(참조 시멘틱)로 ~2047큐비트 상한.

기존 시뮬레이터 정량 비교 (문헌치)

시뮬레이터방식규모속도메모리
Stim (Google)스테빌라이저, AVX256 비트팩킹, 역테이블로20,000큐비트(d=100 표면코드)800만 게이트+100만 측정 분석 15s(~53만 게이트/s), 샘플링 1kHz2n²비트: n=2000→1MB
CHP (2004)스테빌라이저, 32비트팩킹~3,000큐비트~µs/게이트수 MB
Qiskit Aer statevector상태벡터(정확·범용)~32큐비트 한계(2^n×16B: 30q=17GB)게이트당 O(2^n)40q=17.6TB(불가)
Aer extended_stabilizer랭크분해(Clifford+T 근사)≤63큐비트, T수 제한항수 2^{0.396t} 지수오차 δ=0.05 기본
Aer MPS / 텐서네트워크근사(얽힘 결합차원 χ)100~1000+큐비트(저얽힘)회로 구조 의존n·χ²·16B
크라우니 v2스테빌라이저, 순수 한선씨 인터프리터2000큐비트 실측~25–50 게이트/s(n=2000)572MB(n=2000)
- 격차 분석: Stim 대비 게이트 처리율 ~10⁴× 느림 = ①인터프리터(네이티브 대비 ~10²) ②비트팩킹 부재(원소당 1큐브 27트릿 vs 256비트 SIMD ~10²). 알고리즘은 동급(같은 CHP 테이블로), 격차는 전부 표현·실행 계층.
  • 강점: 32큐비트가 한계인 상태벡터 대비 클리포드 클래스에선 우리도 2000큐비트 — 알고리즘 선택이 하드웨어를 이긴 사례. 40큐비트 기준 상태벡터 17.6TB vs 우리 ~수백KB 논리상태.

이번에 발견·수정한 것

  1. 정수 24트릿(±1.41e11) 곱셈 오버플로 — LCG 씨앗×48271이 래핑 → 소형 모듈러스 LCG(4093/1048573)로 v1·v2 수정.
  2. crownyc 힙 = 48M큐브 아레나(1.3GB), 배열=고정 4097큐브 블록 → 최대 ~11,700배열, GC 없음. 풀 고갈 시 추가()가 조용히 실패(길이0). → 같은 n 재초기화는 제자리 0채움으로 회피(v2 양자초기화). 지식셀 #20467.
  3. 벤치 설계 버그(타이밍 게이트 잔여 상태) 수정 — GHZ 정합 전 구간 1 회복.

1000/2000큐비트 도구화 최적화 체크리스트 (우선순위)

#항목기대 효과난이도
1비트팩킹: 비트배타/비트곱/왼시프트 내장으로 행을 32비트/정수 팩킹(24트릿 정수에 32비트 안전)행합·CX ~30×, 메모리 ~30×중 (순수 한선씨 가능)
2네이티브 opcode: C레벨 행XOR·행합·테이블로 게이트(Stim식) — crownyc.c 확장 + 한선씨 래퍼 더블~10²~10³× (Stim급 접근)중상
3역테이블로(Stim 트릭): 결정론 측정 O(n²)→O(n)측정 지배 회로 ~n×
4힙: ARRAY_BLOCK 가변화 or 트릿팩킹(큐브당 27비트) + free-list GC배열 풀 11.7k→수십만
5아레나 상향(48M→192M 큐브) — 다중 인스턴스/4095큐비트 대응상한 2047→4095q
6초기화 최적화(대각 직접 생성, 제자리 재사용) — 현재 8.3s/11s초기화 ~10×
- 순서 권고: ①비트팩킹(순수 한선씨, 즉시) → ⑤아레나 → ②네이티브 opcode → ③역테이블로. ②까지 가면 n=2000 게이트 ~µs급 = 실용 도구.

범용성(근사) 현황과 목표 재수립

현황: 클리포드 클래스 = 근사 0(정확), 비클리포드(T게이트) = 0% 지원. "범용 정확 1000q+"는 어떤 시뮬레이터도 불가능(가능하면 양자컴퓨터 무용) — 범용의 실제 의미는 회로 클래스별 최적 엔진 자동 라우팅 + 오차 계량 보고로 재정의.
티어엔진규모 목표근사/오차상태
T1클리포드 스테빌라이저2000q 실측 → 4095q정확(오차 0)완료(v2)
T2Clifford+T 확장 스테빌라이저n≤50, T게이트 t≤25랭크 2^{0.396t}항, δ=0.05 목표(Aer 동급)미착수
T3MPS 텐서네트워크n≤2000(저얽힘)트렁케이션 오차 실시간 추적, 1D근접 F≥0.99미착수
T4정확 상태벡터(검증용)n≤16(고정소수점 복소)반올림 오차만미착수
T04상 분별 라우터: 회로 스캔→티(클리포드→T1)/옴(T소수→T2)/타(고얽힘 대형→경고·거부)/음(소형→T4 검증)미착수

관련 파일

  • v2: /Users/ef/CrownyOS/crownyc/libs/양자스테빌라이저2.한선 (제자리 재초기화 포함)
  • v1(40q, LCG수정): /Users/ef/CrownyOS/crownyc/libs/양자스테빌라이저.한선 · 데모 양자데모.한선
  • 벤치: scratchpad 양자벤치·양자마이크로·양자벤치2000.한선
  • 학습 intent: 양자_스테빌라이저_40큐비트_시뮬레이터 / 양자_스테빌라이저_2000큐비트_시뮬레이터_v2 (DB 3곳)

잔여 이슈

비트팩킹 v3 → 네이티브 opcode → T2~T4 엔진 → T0 라우터 → game.crowny.org/quantum 서비스화. 큐트리트(Z₃ 트릿네이티브) 엔진은 별도 트랙.