From bd1cc3bf30180ce70c24228afb3cabea72f3975b Mon Sep 17 00:00:00 2001 From: "KOKO\\Mimi" Date: Wed, 14 Oct 2026 21:59:44 +0900 Subject: [PATCH] docs(performance): record integrated MKL and private precision boundaries --- docs/calculation-performance/mkl-coverage.md | 44 ++++++++++++++++++++ 1 file changed, 44 insertions(+) diff --git a/docs/calculation-performance/mkl-coverage.md b/docs/calculation-performance/mkl-coverage.md index aa1628f..6ab423e 100644 --- a/docs/calculation-performance/mkl-coverage.md +++ b/docs/calculation-performance/mkl-coverage.md @@ -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를 보존한다. Whole changed-file clang-format dry-run은 기존 및 후보 formatting 위반으로 exit1이었다. [실제 기록](../../.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은 이 통합 목록의 실제 +실행 또는 성능 증거로 포함하지 않는다.