docs: record geometric packet overflow fix validation

This commit is contained in:
KOKO\Mimi
2026-10-14 23:30:21 +09:00
parent 0c29a9f8d8
commit f81a0b6739
@@ -656,3 +656,61 @@ Dot3-term과 geometric9-term의 독립 b4 lane을 기존 zero-start·component/j
각 기존 diagonal accumulator Add에 쓰는 작은 대안도 명시했다. High/low 정밀도는 각 기존 diagonal accumulator Add에 쓰는 작은 대안도 명시했다. High/low 정밀도는
유지하며 일반 Float64 MKL 경로를 바꾸지 않는다. 이는 아직 구현·검증 전인 제안이고 유지하며 일반 Float64 MKL 경로를 바꾸지 않는다. 이는 아직 구현·검증 전인 제안이고
현재 source를 변경하지 않았다. Whole-model 추가 반복이나 profile 추가 수집은 없다. 현재 source를 변경하지 않았다. Whole-model 추가 반복이나 profile 추가 수집은 없다.
## 기하 수축 packet 구현과 Release 상태 차이 수정
위 제안을 `9677265`에서 구현했다. 독립 b4 lane은 기존 `dots[b]` 및 material의
`col=3*b+k`와 연결하며, gradient-stress의 원래 준비 제품과 Dot의 component 순서,
geometric의 j,l 순서 및 zero-start를 보존한다. 동일 `geo*weight`는 공유하지만 세
diagonal accumulator의 Add는 각각 수행한다. Unsupported 환경과 linear 응답은
원래 scalar loop를 사용한다. Private POD·baseline bridge·AVX2 경계를 유지하고
일반 Float64 MKL, CMake, 공통 math 및 public ABI를 바꾸지 않았다.
이 후보의 Debug 관련 81개 검사는 통과했으나 Release는 80/81 통과였다.
Ordered overflow fixture에서 raw bit는 같고 selected FE21/baseline5 및 MXCSR41/40,
prior 상태에서는43/42로 INVALID 차이가 있었다. 당시 wrapper가 stderr를 먼저
예외 처리하여 CTest native는 unknown, wrapper native는1이었다. 이 실패를 현재
통과로 소급하지 않는다. [실패 XML](../../.harness/performance/t3/packet-geometric-release-gtest/fesa_unit_tests_53.xml),
[실패 binary 보존](../../.harness/performance/t3/packet-geometric-9677265/failure-release/manifest.json)을 유지한다.
후속 Release codegen·snapshot·전체 모델·profile은 당시 수행하지 않았다.
최소 수정 `0c29a9f`는 private AVX2 cpp와 기존 Hex8 검사 두 파일에 한정한다.
Vector TwoSum의 첫 sum이 nonfinite이면 error 계산 전에 false를 반환한다. 각 Add의
head/tail/middle/joined/final 위치와 Product의 마지막 TwoSum 실패는 원래 입력과
mode로 기존 noinline scalar bridge를 호출한다. Partial 결과를 재사용하지 않으며
조건부 Debug 분기, flags clear, 기대값 완화, 산술식 및 진단 gate 변경은 없다.
[고정 manifest](../../.harness/performance/t3/packet-geometric-fix-0c29a9f/manifest.json)와
[독립 source 검토](../../.harness/performance/t3/source-numerical-review-packet-geometric-fix.md)는
10개 hash의 전후 일치와 source-only PASS를 기록한다.
새 검사는 normalized near-max joined overflow, N=2^-1022와 d=2^-1074에 의한
subnormal error, 다른 lane의 성공 prefix 이후 overflow, 각 lane 위치 및 prior 상태를
포함한다. 원래 세 weight 제품과 서로 다른 세 accumulator의 raw bit·FE_ALL_EXCEPT·
MXCSR status를 기준으로 삼았다. 첫 narrow 실행은 Debug·Release 각각2/2,
actual AVX2의 기존 실패6개와 새 prefix34개가 통과했다. 이후 실제 discovery는
82개였고 Debug 82/82(10.43초), Release 82/82(4.46초), 모든 단계 native0이었다.
[Debug 명령/native](../../.harness/performance/t3/packet-geometric-fix-full-debug-native.json),
[Release 명령/native](../../.harness/performance/t3/packet-geometric-fix-full-release-native.json),
[Release XML](../../.harness/performance/t3/packet-geometric-fix-full-release-gtest/)을 보존한다.
Configure/build는 corrected MSVC dependency prefix, 병렬4 이하로 순차 수행했다.
두 구성의 전체 객체 symbol/disassembly는 AVX2 외부 실행 정의2개, 공통 math 정의0개,
baseline AVX·YMM·ANDN0개를 확인했다. Kernel의 fused 명령은 명시 residual VFMSUB
1개뿐이고 Product의 충분조건 true 분기4개는 각각 두 BSF를 건너뛰며 false는 원래
두 BSF를 유지한다. [코드 생성 assertion](../../.harness/performance/t3/packet-geometric-fix-codegen-assertion.json)을 보존한다.
실제 Release dispatch 객체의 scalar Add는 first-sum0x16e 이후 finite 분기0x18a에서
error 계산0x18f를 건너뛴다. TwoSum도0x25에서0xb1로 같은 순서의 return을 한다.
Linked unit exe에서 해당 Add byte signature가 한 곳에 존재함을 확인했다.
[Hoist 근거](../../.harness/performance/t3/packet-geometric-fix-release-scalar-hoist.json)는
PDB를 통한 개별 callsite나 COMDAT winner 식별까지 주장하지 않는다. 실제 bridge의
raw/status 동등성은 위 Debug·Release oracle로 별도 확인했다.
기존 actual native0 원본 oracle의 정합 header/LIB/입력 연결을 검증한 뒤 새 candidate만
compile/run했다. 두 native와 엄격한 비교 wrapper는0이며9,804행과 전체 byte가 동일하다.
양쪽 SHA는 `DED8D2C380D15E297A73BDD018B1B840C1ADC0D8372934D9FC2EF2B628A36F63`이다.
[Snapshot 명령/native](../../.harness/performance/t3/packet-geometric-fix-snapshot-native.json),
[엄격한 비교](../../.harness/performance/t3/packet-geometric-fix-snapshot-comparison.json)를 보존한다.
[종료 확인](../../.harness/performance/t3/packet-geometric-fix-full-cleanup.json)은 source/hash
불변, tracked clean 및 관련 actor0을 기록한다. CPU를 반환했고 이번 슬롯에서 전체 모델과
profile은 실행하지 않았다. 이 후보의 전체 경과 시간 및 최종101-frame 비교는 미실행이며,
기존135.9302297초 개발 결과와 목표100초 미달, 최종 전체·공식 검증 미완료는 유지한다.