docs(performance): record integrated MKL and private precision boundaries

This commit is contained in:
KOKO\Mimi
2026-10-14 21:59:44 +09:00
parent c7e3f67f26
commit bd1cc3bf30
@@ -328,3 +328,47 @@ entrywise MKL diagonal products와 기존 개별 product/ordered row-sum finite
[final CMakeCache](../../.harness/performance/t2/final-CMakeCache.txt)는 actual dependency와 Debug flags를 보존한다. [final CMakeCache](../../.harness/performance/t2/final-CMakeCache.txt)는 actual dependency와 Debug flags를 보존한다.
Whole changed-file clang-format dry-run은 기존 및 후보 formatting 위반으로 exit1이었다. Whole changed-file clang-format dry-run은 기존 및 후보 formatting 위반으로 exit1이었다.
[실제 기록](../../.harness/performance/t2/clang-format-native.json)을 보존하며 formatter PASS로 보고하지 않는다. [실제 기록](../../.harness/performance/t2/clang-format-native.json)을 보존하며 formatter PASS로 보고하지 않는다.
## 통합한 요소별 MKL 경계와 특수 정밀도 예외
Hex8의 `446d3fa`와 셸의 `0e5b3e0` 구현을 feature branch에 통합했다.
아래 목록은 해당 source의 적용·예외 경계이며, 통합 후 전체 build/reference 또는
세 모델의 최종 시간 합격을 뜻하지 않는다. 기존 T2 기록과 실패 자료는 유지한다.
| 위치 | 일반 행렬 연산의 MKL 경계 | 예외 또는 보존하는 순서 |
| --- | --- | --- |
| `elements/hex8_element.cpp` | ordinary outer/Gram/geometric/mass 제품 | entrywise diagonal 제품 뒤 원래 row/point 누적 순서를 유지한다. |
| `elements/mitc4_shell.cpp` | 선형 BᵀCB와 좌표 congruence | 고정 3차원 좌표 계산은 기존 작은 좌표 예외다. |
| `elements/nonlinear_mitc4_shell.cpp` | Jet gradient outer의 private GEMM, physical Gram/congruence와 LAPACK inverse | 증명된 상수의 zero Hessian 작업만 생략하며 값·방향 미분·finite gate는 유지한다. |
| `elements/nonlinear_mitc4_inertia.cpp` | nodal Gram/scatter와 bilinear 제품 | 원래 local block 배치와 mass 의미를 유지한다. |
| `analysis/hht_dynamic_algebra.cpp` | local mass의 private LAPACK Cholesky/inverse, ordered mass projection과 graph metric 제품 | pivot/inverse 실패를 구분하고 compact diagonal 제품 뒤 원래 entry association과 합 순서를 유지한다. |
| `analysis/hht_reduced_operators.cpp` | constraint Hessian bilinear 제품과 algebra의 ordered metric 호출 | 원래 entry association과 합 순서를 유지한다. |
| `analysis/hht_dynamic_assembly.cpp` | hidden Hessian·방향 곱과 mass·가속도 제품 | uncancelled scale의 개별 product와 기존 finite/ordered gate를 유지한다. |
`hex8_high_low.cpp`, `hex8_pair_arithmetic.h`와 private
`hex8_pair_simd_avx2.cpp`의 material tangent packet은 정규화된 high+low 값의
특수 정밀도 연산이다. 일반 Float64 BLAS로 대체하면 low component, 정확한 tail
판정과 invalid propagation 계약을 잃으므로 MKL 예외로 유지한다. SIMD는 독립
column 네 개의 같은 pair graph만 실행한다. Vendor/ISA 타입은 public core에
노출하지 않고 baseline POD·dispatch·scalar bridge와 AVX2 TU를 분리한다.
지원 CPU/OS/FP control 밖에서는 기존 scalar pair 경로를 사용한다.
자세한 입력 guard·진단·ISA/bit 비교는 [Hex8 기록](hex8-performance.md)에 있다.
셸의 local dense BLAS scope는 기존 양의 caller TLS override를 존중하고 default
TLS에서만 1을 사용한 뒤 모든 종료 경로에서 원복한다. 재사용 판정용 private
getter도 같은 scope 안에서 BLAS 최대 thread 정책과 dynamic 정책을 읽고 원복한다.
이는 실제 worker 수 측정이나 global 정책 변경이 아니다. 일반 PARDISO와 기존
global thread 설정을 해당 getter로 바꾸지 않는다.
완성된 true trial의 constraint 자료 재사용은 새로운 행렬 backend가 아니다.
기존 전체 internal 평가와 inertia·ordered assembly gate가 성공한 뒤 네 response
field를 trial-owned storage로 이동하고, 동일한 finite 구성·identity·q/v·owner와
지원 FP/local BLAS 정책에서만 원래 소비 위치에 제공한다. 불일치하면 원래 full
평가를 수행한다. 외부 primitive와 후속 gate는 매번 수행하며 accepted history나
HDF5에 cache를 저장하지 않는다. 소유권·누락 key 수정·실제 검사와 미실행 범위는
[셸 기록](t4-shell-optimization.md)에 있다.
두 요소의 구현은 각각 독립 source 검토와 관련 실행 검사를 받았다. 현재 feature
통합 source 전체의 consumer 검사, 최종 VTune 비교, 원본 결과 비교와 시간 목표는
남아 있다. 별도 후보 `0b5adf4`의 vector guard/LBE screen은 이 통합 목록의 실제
실행 또는 성능 증거로 포함하지 않는다.