From 33e6aa0563efa0a416f950105f799598c1b7db3e Mon Sep 17 00:00:00 2001 From: "KOKO\\Mimi" Date: Wed, 14 Oct 2026 22:01:37 +0900 Subject: [PATCH] docs(performance): record guard and tail screen verification --- .../hex8-performance.md | 48 +++++++++++++++++++ 1 file changed, 48 insertions(+) diff --git a/docs/calculation-performance/hex8-performance.md b/docs/calculation-performance/hex8-performance.md index a724744..b9cbe3c 100644 --- a/docs/calculation-performance/hex8-performance.md +++ b/docs/calculation-performance/hex8-performance.md @@ -538,3 +538,51 @@ finite bit gate-beforeFP, left-invalid의 right predicate short-circuit neutrali canonical zero/RN64/overflow/sticky union/fallback/기존 FENV/ISA·COMDAT 경계를 명시한다. 이는 아직 구현·검증 전이며 산술 graph나 모델 gate를 생략하는 변경이 아니다. 추가 whole-model 실행이나 180초 수집은 수행하지 않았다. + +## Vector guard와 exact tail screen의 합성 후보 + +계획의 조건부 독립 검토 이후 `0b5adf43e0ccbbb8780277f568815377a67f5028`에 +private AVX2 cpp와 기존 Hex8 tests 두 파일만 변경했다. Normalized vector guard는 +active·finite mask 이후 RN sum의 두 operand와 equality RHS를 모두 중립화한다. +Right active는 left normalized mask이며 left finite만으로 결정하지 않는다. +Canonical both-zero와 signed low-zero 분기를 유지하고 mixed/invalid packet은 기존 +baseline bridge로 연결한다. 각 lane 산술 graph와 모델 실패 gate는 그대로다. + +Tail screen은 finite/nonzero 이후 원래 exact LBE 위치에서 adjusted encoded exponent +합>=1076일 때만 scan 두 개를 생략한다. False이면 원래 exact LBE와−1074 비교를 +실행한다. 충분조건을 필요조건으로 사용하지 않고 rounded product finite→명시 residual +FMA→error finite→TwoSum 순서를 유지한다. Public header·bridge·공통 math·CMake·FP +flags·일반 MKL은 불변이다. [고정 manifest](../../.harness/performance/t3/packet-guard-screen-0b5adf4/manifest.json)와 +[독립 actual source 검토](../../.harness/performance/t3/source-numerical-review-packet-guard-screen.md)를 보존한다. + +Corrected-prefix Debug·Release configure/build는 각각 native0과 6개 edge였다. +실제 discovery의 관련 78개 검사는 Debug10.24초·Release4.31초로 각각 native0이다. +두 구성 모두 실제 AVX2 선택, 기존 packet4630/uniform16/overflow4를 확인했다. +새 guard132/tail64 fixture는 left-invalid/right-overflow·sNaN·signedzero·mixed prefix· +subnormal·tail threshold1076/1075·conservative false·rounded overflow를 다룬다. +각 fixture에서 unchanged baseline과 selected evaluator를 별도 동일 초기 상태로 실행해 +raw high/low·FE_ALL_EXCEPT·MXCSR status6bits를 비교했다. Prior inexact/denormal +상태를 포함하고 test 후 x87/MXCSR를 복원했다. Frozen original은 별도 raw-bit oracle다. +[Debug native](../../.harness/performance/t3/packet-guard-screen-debug-native.json), +[Release native](../../.harness/performance/t3/packet-guard-screen-release-native.json), +[Debug backend](../../.harness/performance/t3/packet-guard-screen-debug-backend.json), +[Release backend](../../.harness/performance/t3/packet-guard-screen-release-backend.json)을 보존한다. + +각 구성의 두 TU symbols/disassembly 네 명령과 wrapper는 native0이다. AVX2 객체의 +정의된 external 실행 심볼은 전용 evaluator 하나이고, 공통 math/HighLow/std::array +실행 정의는 없다. Baseline dispatch의 AVX/YMM/ANDN은0이며 kernel fused instruction은 +명시 residual VFMSUB 하나다. Release Product의 네 `cmp rax,434h` 다음 unsigned JAE가 +각각 BSF 두 개를 넘어 같은 join으로 가며 false는 원래 BSF 두 개를 수행한다. +[실제 codegen assertion](../../.harness/performance/t3/packet-guard-screen-codegen-assertion.json)은 +각 branch와 전체 symbol/disassembly를 연결하고 실행 assertion native0을 보존한다. + +새 정합 Debug LIB/header snapshot의 compile/run/비교 wrapper는 native0이다. +기존 actual-native0 old oracle는 identity를 확인하고 재사용했으며 old 실행은 반복하지 +않았다. 새 응답9804행과 원본은 exact bytes와 SHA `DED8D2C380D15E297A73BDD018B1B840C1ADC0D8372934D9FC2EF2B628A36F63`가 같다. +[Snapshot native](../../.harness/performance/t3/packet-guard-screen-snapshot-native.json), +[exact 비교](../../.harness/performance/t3/packet-guard-screen-snapshot-comparison.json)를 보존한다. +[종료 identity](../../.harness/performance/t3/packet-guard-screen-delivery-identity.json)는 검토의 +8개 source SHA 전후 일치와 두 구성의 exe/LIB/build SHA를 연결한다. 관련 actor0을 +확인하고 CPU 권한을 반환했다. 이번 슬롯에서 whole-model/profile는0회다. +이 검사 통과는 실제 성능 개선이나 100초 목표 달성 증거가 아니며, 이전446의 timeout과 +미실행101-frame·최종 전체/공식 검증 한계를 그대로 유지한다.