큐트릿 격자 네이티브 가속 (7.6s → 0.18s, ~42배)
개요
사고 디지털트윈 실용화 전제로
~/.claude/scripts/큐트릿격자.한선의 Z₃ 큐트릿
스테빌라이저 백엔드를 순수 한선씨 인터프리터(v1)에서
네이티브 opcode(v2)로 교체.
공유 crownyc/crownyc.c는
무수정 — 이미 빌드된 네이티브 opcode(928~931)를 사용만 함.
경로: 네이티브 교체 (JIT/티켓 불필요)
crownyc.c에 큐트릿 Z₃ 네이티브 opcode가 이미 존재·빌드됨(2026-07-03 루프C9):
928 큐트리트열게이트(QT_COLGATE, 7인자, 모드 0F/1X/2Z/3P/4SUM) — 전행 C 일괄
929 큐트리트행곱(QT_ROWMUL, 5인자) — 행곱 제자리
930 큐트리트열스캔(QT_COLSCAN, 4인자) — x_a≠0 첫 행 / -1
931 큐트리트내적(QT_SYMP, 5인자) — 심플렉틱 내적 mod3
hanseonc_high.c에도 함수 등록됨(1468~1471행). crownyc 바이너리(7/5)가 opcode 추가(7/3) 이후 → 실동작.
libs/큐트리트2.한선(v2)이 이 네이티브를 래핑, v1과 함수 시그니처 100% 동일
(큐트리트초기화/게이트F·SUM·TX·TZ·P/큐트리트측정). 격자 로직 무수정.
변경 (딱 1줄)
~/.claude/scripts/큐트릿격자.한선 19행: 가져오기 "큐트리트.한선" → "큐트리트2.한선"
전/후 실측표 (Apple Silicon, /usr/bin/time real)
| 항목 | v1 인터프리터 | v2 네이티브 | 배속 |
|---|
| 대규모검증 100큐트릿 | 7.63~7.66s | 0.18s | ~42배 |
| 전체(default) 모드 | 7.88s | 0.20s | ~39배 |
| 대칭노이즈 1000회 | 0.07s | 0.05s | ~1.4배 |
| 트윈 데모 | 0.01s | 0.01s | 동급 |
네이티브 스케일 헤드룸 (v1로는 사실상 불가)
- n=200 → 0.99s (상관 200/200), n=300 → 2.85s (300/300), n=500 → 11.49s (500/500)
- 태블로 2n+1 ≤ 배열캡 1023 → n ≤ 511 상한. n=500은 v1이면 수백 초대.
검증 재통과 (동등성)
- GHZ형 인과체인 상관: 100/100 (200/300/500도 전수 일치)
- 비영전파(루트=타 각인) 잘림검증: 100/100 (전 n 일치)
- e-렌즈 사고루프: 최고사고경로 점수 4/4(깊이4)·2/2(깊이2), 예산 3·7·20·55 정상
- 디지털트윈 데모: 각인 결정론 재측정 v1==v2 byte-동일(티 티 타), 부스트업 동일
- 대칭분포 1000회: v1==v2 byte-동일(옴330/티336/타334, 균형합=2) — 티↔타 대칭
- 측정은 확률적이나 결정론 부분은 byte-동일, 확률 부분은 분포·상관 동등.
시드고정(CROWNY_QSEED) 재현성 확인(106/100/94 ×2 동일).
관련 파일
~/.claude/scripts/큐트릿격자.한선 (import 1줄 변경)
/Users/ef/CrownyOS/crownyc/libs/큐트리트2.한선 (네이티브 래퍼, 무수정)
/Users/ef/CrownyOS/crownyc/libs/큐트리트.한선 (v1, 폴백 보존)
/Users/ef/CrownyOS/crownyc/crownyc.c 13108~13200 (opcode 928~931, 무수정)
잔여 이슈
- 없음(공유 VM 무수정 원칙 준수). n>511은 태블로 배열캡 초과 → 샤딩 필요(향후).
- 신규 네이티브 opcode 추가는 이번 건에 불필요(기존 928~931로 충족).