삼진 신경망 커널 4종 병렬 구축 — CUDA 대응 2단계
개요
1단계(삼진 행렬곱)에 이어, Workflow 13에이전트 병렬로 삼진 신경망 4커널을 한선씨+VHDL 동반 구축하고 적대검증·통합했다. 모델분업: 한선씨=소넷, VHDL=하이쿠, 적대검증·통합=오푸스.
무엇을 했는지
4커널 각각 [한선씨 커널+VM검증 → VHDL RTL+GHDL → 오푸스 적대검증] 파이프라인 + 통합 forward.
| 커널 | VM | GHDL | 판정 | VM↔VHDL | 비고 |
|---|
| 삼진_컨볼루션 | PASS | PASS | PASS | 일치 | 완전 1:1 (나눗셈 없음) |
| 삼진_어텐션 | PASS | PASS | PASS | 데모한정 | 정규화 *100 곱셈, 일반입력 발산 |
| 삼진_레이어놈 | PASS | PASS | PARTIAL | 발산 | round vs truncate/floor sqrt |
| 삼진_활성 | PASS | PASS | PARTIAL | 데모한정 | gelu 게이트 x=1,2 발산 |
통합: CPU VM 삼진 SLM 1레이어 forward E2E 실증.
입력 X(1x4)=[6,-3,9,1] → 선형1=[14,-12,-8,16] → 레이어놈=[4,-4,-3,4]
→ gelu=[4,0,0,4] → 선형2 OUT(1x3)=[0,4,-4] (4단계 손계산 일치, 음성대조 확인)
★핵심 발견 — 한선씨↔VHDL 1:1 등가의 경계
- 순수 부호누산 MAC(나눗셈 無) = 완전 1:1 하드웨어 등가. matmul/conv가 여기. CUDA 대응의 정통 무기.
- 나눗셈/sqrt 커널 = 발산: VM=균형3진 round-to-nearest vs VHDL native
/=truncate, Newton int_sqrt=floor. 데모입력 나머지0이면 우연 일치로 발산 은폐 → 적대검증이 적발(-7/4 VM=-2/VHDL=-1, 루트(159) VM=13/floor=12).
- 교정: 나눗셈/sqrt RTL을 균형3진 round-to-nearest로 짜야 1:1.
부수 성과 — 메모리 정정
적대검증이 저장 메모리 오류 적발:
루트(x)는 floor가 아니라
round-to-nearest(루트(7)=3, 루트(159)=13). 직접 재실측 확인 후
feedback_hanseon_root_floor 정정. VM 자연반올림 철학과 일관.
관련 파일
- 한선씨:
crownyc/libs/{삼진컨볼루션,삼진어텐션,삼진레이어놈,삼진활성}.한선
- VHDL:
crownyc/rtl/vhdl/{trit_conv1d,trit_attention,trit_layernorm,trit_activation}.vhd + tb
- 통합:
/tmp/삼진SLM_통합회귀.한선
- 지식: 메모리
project_ternary_cuda_kernels
잔여 이슈 / 다음 단계
- VM↔VHDL 라운딩 정렬 — 레이어놈/어텐션/gelu의 RTL을 균형3진 round-to-nearest로 (PARTIAL→PASS).
- 블록 샤딩 — d_model>31(31²=961), 큰 시퀀스 = 평면 1023·맵 729 상한 → 행 블록 샤딩.
- Blackwell SM 디스패치 — 현재 전부 CPU VM. GPU 디스패치 계층 0 (축2 갭).
- 멀티토큰/멀티레이어 — 어텐션 끼워 transformer 블록 1개로 확장.
- 축4 자기개선 루프 / 축5 헌법 집사임베딩 — 별도 단계.