From e5c8465c659d853d36e9232581ae5ad7fa49fea8 Mon Sep 17 00:00:00 2001 From: "KOKO\\Mimi" Date: Wed, 14 Oct 2026 21:42:53 +0900 Subject: [PATCH] docs(performance): record packet SW profile and bounded next candidate --- .../hex8-performance.md | 44 +++++++++++++++++++ 1 file changed, 44 insertions(+) diff --git a/docs/calculation-performance/hex8-performance.md b/docs/calculation-performance/hex8-performance.md index e4e297f..a724744 100644 --- a/docs/calculation-performance/hex8-performance.md +++ b/docs/calculation-performance/hex8-performance.md @@ -494,3 +494,47 @@ 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초 수집은 수행하지 않았다.