Reduce MITC4 Jet product scratch stack storage

This commit is contained in:
KOKO\Mimi
2026-10-21 08:42:06 +09:00
parent b9aa5ff263
commit 685f5e6a82
2 changed files with 16 additions and 7 deletions
@@ -63,9 +63,19 @@ SEH/process 관측이나 생성 코드 근거가 필요하며, source의 row-maj
T2의 무가드 단일 외적 후보는 unmasked 최초 INVALID/OVERFLOW 순서가 달라 비채택했다.
채택한 guarded 경로는 MXCSR의 여섯 예외가 모두 masked이고 첫 외적이 성공한 경우에만
전치 성분과 276개 상삼각 scratch를 재사용한다. Unmasked 환경과 외적 거부는 기존 두 호출,
576개 reverse 배열과 row-major 결합을 유지한다. Masked snapshot과 별도 원본/후보 SEH
576개 reverse 외적과 row-major 결합을 유지한다. Masked snapshot과 별도 원본/후보 SEH
관측을 함께 확인하며, 정상 경로의 임시 쓰기 감소를 전체 stack 예약 감소로 보고하지 않는다.
T5는 서로 배타적인 276개 상삼각 보관과 576개 reverse 외적에 같은 local
`std::array<double, 576>` scratch를 사용한다. 입력·공유 Hessian의 저장소와 수명은
바꾸지 않는다. 두 분기에서 쓰기 전 읽기가 없는지 검토하고 위 3구성 비교 및 별도
6개 unmasked 최초 trap을 확인한다. Stack 예약량은 실제 Release production object의
frame과 `__chkstk`를 확인하며, heap 할당 감소나 전체 모델 속도 향상으로 해석하지 않는다.
별도 복사 source의 Values 생성·소멸 계측은 생존 시작량을 포함한 peak payload와
증가량을 구분한다. 동시 호출 peak는 스케줄에 따라 달라지고, 계측 시간은 정상 Release
측정에서 제외한다. Hessian 복사 연산 횟수는 implicit/null 복사도 포함하며 strong-ref
증가 횟수나 CPU 비용을 뜻하지 않는다. Global pool이나 trial 간 cache는 도입하지 않는다.
T3 누적 검사는 기존 T1/T2 snapshot을 확장하지 않고 별도 파일을 쓴다. 원본 source와
보존 archive의 출처를 확인한 실행물에서만 새 경로에 생성한다. 실제 CMake 경로는
원본 source staging을 CMake로 configure/build한 실행물과 구분해 연결한다.