From e85b96e651aeceb25200ca6c4fdb8a98188e9a3b Mon Sep 17 00:00:00 2001 From: "KOKO\\Mimi" Date: Wed, 14 Oct 2026 18:48:12 +0900 Subject: [PATCH] docs(performance): retain integrated Hex8 timeout and profile evidence --- .../hex8-performance.md | 40 ++++++++++++++++--- 1 file changed, 35 insertions(+), 5 deletions(-) diff --git a/docs/calculation-performance/hex8-performance.md b/docs/calculation-performance/hex8-performance.md index 2133435..52eaf39 100644 --- a/docs/calculation-performance/hex8-performance.md +++ b/docs/calculation-performance/hex8-performance.md @@ -9,7 +9,8 @@ MKL 경계 수치 소스는 `71e08169ecfc3eee8372cd831b799b87aa47c78b`에서 아래 선택적 paired Hessian의 준비 수명을 바꾼 소스다. `a08df0f`는 동시 호출 검사의 시작 대기 조건만 추가했고 같은 production을 새 Debug/Release로 검증했다. 후속 병합 `45aac19`에는 root의 공통 finite classifier `47d2a81`이 포함된다. -이 병합 뒤의 실행은 아직 없으며 이전 검사 결과를 새 소스의 통과로 대입하지 않는다. +이 병합 뒤의 소비자 재빌드와 동적 개발 실행은 문서 commit `decd959`에서 수행했다. +이전 검사 결과를 새 소스의 통과로 대입하지 않는다. 공식 기준 Release 소스와 이 개발용 Debug 대조 소스를 혼용하지 않는다. ## 실제 병목에 대응하는 변경 @@ -151,6 +152,7 @@ parallel buffer 소유권도 변경하지 않았다. | 동일 TU의 원본/현재 Debug 진단 대조 | 60 finite-input 조합, 출력 306행 동일, 각각 native 0 | [Native](../../.harness/performance/t3/diagnostic-native.json), [comparison](../../.harness/performance/t3/diagnostic-comparison.json), [original manifest](../../.harness/performance/t3/original-debug/manifest.json) | | `a08df0f` 선택적 준비 수명 | Fresh Debug configure/build 0, Hex8·paired state/kinematics·serial/TBB 59/59 PASS, native 0 | [Native](../../.harness/performance/t3/lazy-native.json), [검사](../../.harness/performance/t3/lazy-checks.txt), [dependencies](../../.harness/performance/t3/lazy-dependencies.txt) | | 같은 TU의 원본/current pair snapshot | Flat/warped, linear/nonlinear 전체 response의 raw bits 9,804행 동일, 양쪽 compile/run native 0 | [Native](../../.harness/performance/t3/pair-snapshot-native.json), [대조](../../.harness/performance/t3/pair-snapshot-comparison.json) | +| `decd959` 공통 finite classifier 통합 | Correct-prefix Debug configure/build/deps 0, HighLowArithmetic·Hex8·paired·serial/TBB 68/68 PASS, native 0 | [Native](../../.harness/performance/t3/postmerge-debug-native.json), [검사](../../.harness/performance/t3/postmerge-debug-checks.txt) | Pair oracle는 고정된 원래 산술 header를 사용하여 raw high/low bits를 비교한다. Signed zero·half-ulp·invalid·최소 subnormal·최대값·overflow·underflow 경계, @@ -209,15 +211,43 @@ library를 사용한다. 같은 probe TU와 Debug flags를 쓰되 두 executable 변경으로 ABI가 맞지 않으므로 이 조합은 사용하지 않았다. Root의 별도 `47d2a81` finite bit-classification 소스는 `45aac19`에서 통합했다. -Root의 독립 검토와 62개 검사는 별도 공통 산술 자료다. 아직 이 병합 소스의 -Debug/Release 소비자 재컴파일과 Hex8 실행은 하지 않았으며 이전 개발 시간이나 -snapshot을 이 병합 소스의 결과로 소급하지 않는다. +Root의 독립 검토와 62개 검사는 별도 공통 산술 자료다. 이 병합 뒤 올바른 include +prefix metadata를 가진 기존 fresh tree에서 Debug 15개, Release 8개 build edge로 +실제 header 소비자를 재컴파일했다. Hex8 high+low dependencies 15개를 다시 확인했다. +[Release 재빌드](../../.harness/performance/t3/postmerge-release-native.json)의 +configure/build/deps 모두 native 0이다. 이전 개발 시간이나 snapshot을 이 병합 +소스의 결과로 소급하지 않는다. 다음 동적 개발 실행은 재컴파일한 고정 소스의 원본 `hexa_dynnonlinear.inp`를 워밍업 없이 한 번 실행하고 전체 경과 시간을 잰다. 제한은 150초이며 완료하면 기존 전체 101-frame U 비교를 수행한다. 100초 초과 또는 timeout이면 같은 소스로 30초 제한 VTune software sampling을 한 번 수집하는 범위가 승인되어 있다. -현재 이 동적 실행은 미실행이며 실행 권한과 직렬 CPU 순서를 기다리고 있다. +실제 `decd959` 실행은 150.0362372초에서 timeout으로 종료했다. 외부 측정기와 +종료시킨 target native는 각각 1이며 결과 HDF5가 없어 101-frame 비교는 미실행이다. +입력 원본/scratch 바이트와 실행 전후 source/header/binary/build/DLL identity는 +같았다. [실행 자료](../../.harness/performance/t3/development-dynamic-lazy.json)와 +[실제 target 기록](../../.harness/performance/t3/development-dynamic-lazy/run-1/native.json)을 +보존한다. 100초 목표 미달이며 timeout을 완료된 표본으로 처리하지 않는다. + +후속 software sampling은 같은 binary로 30초 한 번만 수집했다. PowerShell이 +VTune의 정상 stderr를 `NativeCommandError`로 처리하여 wrapper native 1로 +끝났고 collector/target의 actual exit는 포착하지 못했다. 해당 값은 unknown이다. +[실패 기록](../../.harness/performance/t3/vtune-dynamic-lazy-wrapper-failure.json)을 +보존하고 수집을 반복하지 않았다. 기존 raw 자료만 finalize/export했으며 두 export와 +그 wrapper는 native 0이다. 수집과 export 후 관련 프로세스가 모두 끝났음을 확인했다. +[함수 자료](../../.harness/performance/t3/vtune-dynamic-lazy-functions.csv), +[호출 경로](../../.harness/performance/t3/vtune-dynamic-lazy-callstacks.csv), +[export native](../../.harness/performance/t3/vtune-dynamic-lazy-export-native.json)는 +부분 구간의 개발 profile이며 전체 실행 시간 자료가 아니다. + +최신 sampled CPU는 LowestBitExponent 51.037592초, TwoSum 27.917520초, +TwoProduct 13.335204초, Multiply 10.732785초, MultiplyPair 7.678654초다. +LowestBitExponent에서 TwoProduct·Multiply·MultiplyPair를 거쳐 nonlinear +EvaluateHighLow와 EvaluateSolids로 이어지는 경로가 확인된다. 여러 inline 함수가 +같은 주소의 서로 다른 attribution으로 표시되어 IsFiniteBinary64의 행들을 단순 +합산하지 않는다. 이전 source/profile의 sampled CPU와 이 부분 자료를 직접 +성능 비율로 비교하지 않는다. 공통 최하위 bit 검색의 정확한 같은 결과를 유지하면서 +비용을 줄이는 후보를 root 소유 범위의 후속 검토로 전달했다. 84개 실행과 추가 두 검사 실행은 서로 다른 검사 범위다. 이를 하나의 최종 전체 검사 실행으로 표시하지 않는다. 최종 전체 Debug/CTest, Hex8 필수 원본 5개 비교,