add uncommitted files
This commit is contained in:
@@ -0,0 +1,46 @@
|
||||
# Step 3: Phase 1 Scale Benchmark
|
||||
|
||||
## 읽어야 할 파일
|
||||
|
||||
- `/AGENTS.md`
|
||||
- `/docs/PRD.md`
|
||||
- `/docs/ARCHITECTURE.md`
|
||||
- `/docs/ADR.md`
|
||||
- `/docs/RELEASE_CHECKLIST.md`
|
||||
- `/include/fesa/analysis/run_solver.hpp`
|
||||
- `/tests/performance/assembly_benchmark.cpp`
|
||||
|
||||
## 작업
|
||||
|
||||
약 100,000 DOF의 deterministic Beam chain 모델로 메모리와 시간을 측정하는
|
||||
`tests/performance/phase1_scale_benchmark.cpp`를 만든다.
|
||||
|
||||
- model generation, parsing/Domain build, assembly, PARDISO solve, recovery, HDF5 write
|
||||
시간을 구분해 출력한다.
|
||||
- peak working set 또는 Windows에서 재현 가능한 memory metric을 기록한다.
|
||||
- benchmark는 finite result, equilibrium, expected DOF count와 정상 종료만 assertion한다.
|
||||
- 임의 성능 기준이나 speedup을 pass 조건으로 만들지 않는다.
|
||||
|
||||
## Acceptance Criteria
|
||||
|
||||
```powershell
|
||||
cmake --build --preset windows-release
|
||||
.\out\build\windows-release\Release\fesa_phase1_scale_benchmark.exe
|
||||
ctest --preset windows-release --output-on-failure
|
||||
```
|
||||
|
||||
출력에 모델 크기, 각 stage 시간, memory metric, thread 설정, solver 설정이 포함되어야
|
||||
한다.
|
||||
|
||||
## 검증 절차
|
||||
|
||||
1. 작은 model에서 benchmark correctness test를 먼저 실패시킨다.
|
||||
2. 동일 generator로 목표 크기를 실행한다.
|
||||
3. 측정값과 환경을 release checklist에 기록한다.
|
||||
4. index summary에 결과 위치와 실제 DOF count를 기록한다.
|
||||
|
||||
## 금지사항
|
||||
|
||||
- benchmark를 unit test timeout에 묶지 마라. 이유: 머신 성능에 따라 달라진다.
|
||||
- 결과 정확성 검사를 생략하지 마라. 이유: 빠른 오답은 성능 증거가 아니다.
|
||||
- 실제 측정 없이 목표 시간을 만들지 마라. 이유: 요구사항에 근거가 없다.
|
||||
Reference in New Issue
Block a user