Math Engine 실행 mode와 capability
문서 탐색
구분
Build에 포함된 기능, runtime에서 선택한 mode, context별 configuration과 특정 operation의 지원 여부를 서로 구분한다. Compile 성공이나 symbol 존재만으로 해당 backend·precision· hardware profile이 runtime에서 사용 가능하다고 가정하지 않는다.
- Capabilities module: build/runtime capability 조회.
- Mode module: 실행 mode identity와 선택 계약.
- Configuration module: versioned configuration POD.
- Context module: budget, cancellation과 실행 state.
- Execution module: operation 실행과 결과 metadata.
실행 profile
Game-fast, PC precision, finance fixed, embedded와 unlimited profile은 동일한 이름의 모든 수치 동작을 무조건 제공한다는 뜻이 아니다. 각 profile module은 포함 기능, scalar 표현, memory·workspace 제약, deterministic 범위와 미지원 상태를 선언한다.
Profile별 Reference는 Game Fast, PC Precision, Finance Fixed, Embedded와 Unlimited에서 찾는다.
Consumer 순서
- Installed SDK와 runtime의 version·ABI identity를 확인한다.
- 필요한 capability와 backend가 존재하는지 query한다.
- Versioned configuration의
struct_size와 필수 field를 초기화한다. - Context 또는 operation을 만들고 budget·cancellation 정책을 설정한다.
- Function별 precondition과 output 보존 계약에 따라 호출한다.
- Status와 result metadata를 함께 검사한다.
Unsupported 상태를 다른 mode로 조용히 fallback하거나 precision을 낮춰 성공으로 바꾸지 않는다. Fallback이 제품 정책에 필요하면 consumer가 선택을 명시하고 결과 provenance를 보존한다.