add uncommitted files
This commit is contained in:
@@ -0,0 +1,46 @@
|
||||
# Step 2: Thread Count Determinism
|
||||
|
||||
## 읽어야 할 파일
|
||||
|
||||
- `/AGENTS.md`
|
||||
- `/docs/PRD.md`
|
||||
- `/docs/ARCHITECTURE.md`
|
||||
- `/docs/ADR.md`
|
||||
- `/include/fesa/assembly/assembler.hpp`
|
||||
- `/tests/unit/assembly/`
|
||||
- `/tests/integration/assembly/`
|
||||
|
||||
## 작업
|
||||
|
||||
thread count와 반복 실행이 assembly 및 최종 선형 정적 결과를 바꾸지 않는 통합
|
||||
검증과 측정용 benchmark를 추가한다.
|
||||
|
||||
- `tests/integration/assembly/thread_count_determinism_test.cpp`
|
||||
- `tests/performance/assembly_benchmark.cpp`
|
||||
- thread counts 1, 2, available concurrency에서 CSR, RHS, displacement, reaction을
|
||||
bit-for-bit 비교한다.
|
||||
- 최소 10회 반복으로 scheduling 변화 회귀를 확인한다.
|
||||
- benchmark는 serial/parallel 시간과 element count를 출력하되 speedup을 assertion하지
|
||||
않는다.
|
||||
|
||||
## Acceptance Criteria
|
||||
|
||||
```powershell
|
||||
cmake --build --preset windows-debug
|
||||
ctest --preset windows-debug -R ThreadCountDeterminism --output-on-failure
|
||||
.\out\build\windows-debug\Debug\fesa_assembly_benchmark.exe
|
||||
ctest --preset windows-debug --output-on-failure
|
||||
```
|
||||
|
||||
## 검증 절차
|
||||
|
||||
1. 다양한 thread count 통합 테스트를 먼저 실행한다.
|
||||
2. 차이가 있으면 canonical key/merge 원인을 고치고 tolerance 비교로 대체하지 않는다.
|
||||
3. benchmark output을 기록하고 전체 테스트를 실행한다.
|
||||
4. index summary에 tested thread counts를 기록한다.
|
||||
|
||||
## 금지사항
|
||||
|
||||
- benchmark에서 속도 향상을 pass 조건으로 만들지 마라. 이유: 환경 의존적이다.
|
||||
- MKL thread 수를 assembly test와 중첩해 키우지 마라. 이유: 측정이 오염된다.
|
||||
- release 성능 목표를 임의로 만들지 마라. 이유: 문서화된 측정만 요구된다.
|
||||
Reference in New Issue
Block a user