Merge reviewed vector pair guards and exact tail screen

This commit is contained in:
KOKO\Mimi
2026-10-14 22:02:20 +09:00
3 changed files with 286 additions and 33 deletions
@@ -494,3 +494,95 @@ Source/input/header/exe/DLL/build/runtime/thread/power identity가 전후 같았
scratch SHA도 같았다. 종료 후 관련 프로세스 0개를 확인하고 CPU 권한을 반환했다.
추가 profile/micro 또는 전체 시간 실행은 하지 않았다. 제한 시간에 중단된 후보끼리의
개선 비율을 계산하지 않는다. 최종 전체 검사·필수 원본 비교·공식 시간 목표는 미완료다.
## Packet 후보의 잔여 비용과 출력 단계 해석의 한계
150초 timeout의 마지막 accepted increment는 100/time10/iteration2였다. 그러나
`prepared_analysis.cpp`는 ExecuteInto를 마친 뒤 모든 IterationRecords를 log.Write한다.
따라서 이 행은 실시간 진행 timestamp가 아니다. Log는 실행 시작 21:20:21에 생성되어
21:22:50에 마지막 작성됐고, 14,911,565-byte candidate tmp는 21:22:51에 생성됐다.
Cutoff에 출력 작성이 진행 중인 사실은 확인하지만, 출력이 전체 시간을 지배한다는
추론은 하지 않는다. 최종 파일 완성과 전체 elapsed는 여전히 미확인이다.
Writer BuildSolidPlan은 저장된 accepted frame을 CommitAcceptedFrame으로 재검증한다.
Pair/identity/physical force/energy gates를 반복하지만 full nonlinear Hex8 response를
프레임마다 다시 계산하지 않는다. 기준 inventory의 factory.Create+EvaluateLinear(zero)는
ModelPlan과 validator.Create에서 요소마다 각각 실행된다. 이는 소스상 중복 finding이며
실측 비용 근거 없이 최우선 후보로 선택하거나 검사를 생략하지 않는다.
같은 생산 `446d3fa`와 binary로 SW30 수집을 한 번 추가했다. Collector actual native4,
outer wrapper1, target native unknown을 유지한다. 기존 raw에서 함수·전체 callstacks·
summary를 export한 세 native와 export wrapper는 모두0이다.
[Collection native](../../.harness/performance/t3/vtune-dynamic-packet-boundary-collection-native.json),
[export native](../../.harness/performance/t3/vtune-dynamic-packet-boundary-export-native.json)를 보존한다.
수집과 export의 metadata를 분리하고 실제 parent PATH를 별도로 저장했다. Source/input/
exe/arithmetic/packet header·kernel·dispatch/parent PATH/thread/runtime DLL/power는
각각 전후 같았다. 환경 수집용 uv subprocess PATH와 actual parent PATH는 구분한다.
Target owned PID는 모두 정리했고 CPU 권한을 반환했다.
[Summary](../../.harness/performance/t3/vtune-dynamic-packet-boundary-summary.csv)의 elapsed는
29.771803초, CPU219.787666초, effective152.367546초, spin59.900463초다.
[함수 자료](../../.harness/performance/t3/vtune-dynamic-packet-boundary-functions.csv)는 packet Add
self9.638549, Product9.444756, Multiply3.902459 CPU 초와 scalar MultiplyPair6.631925,
TwoProduct5.432377 CPU 초를 보고한다. 전체 leaf별 callpath weight 합을 flat total과
대조한 packet inclusive는61.265380 CPU 초, EvaluateHighLow inclusive는133.386968 CPU
초다. Scalar bridge inclusive는 Add0.103136, Multiply0.039823, TwoProduct0.061110 CPU
초여서 fallback 지배 근거는 작다. [경로 자료](../../.harness/performance/t3/vtune-dynamic-packet-boundary-selected-paths.json)는
node를 path마다 한 번 포함하며, 중첩된 inclusive 그룹이나 inline attribution을 별도 비용으로
합산하지 않는다. 이 초기30초 표본은 후처리·출력 비용을 판정하지 못한다. Iomp spin의
PARDISO 기원이나 TBB 시간 중첩은 여전히 unknown이므로 전역 thread 정책을 바꾸지 않았다.
다음 후보는 packet Add/Multiply의 POD 왕복과 scalar normalized/zero/low-shape 검사를
동일 vector masks로 계산하는 최소 범위다. [증명 계획](../../.harness/performance/t3/packet-vector-guard-proposal.md)은
finite bit gate-beforeFP, left-invalid의 right predicate short-circuit neutralization,
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·최종 전체/공식 검증 한계를 그대로 유지한다.