Data Model
AIHW-Bench data models preserve reproducibility. Every persisted object records schema version, units, timestamps where relevant, and provenance.
Common Model Rules
- Identifiers are stable strings.
- Timestamps use UTC with explicit timezone.
- Durations use seconds unless a model explicitly states another unit.
- Numeric metrics store value and unit separately.
- Backend-specific metadata is namespaced.
- Persisted models include a schema version.
BenchmarkSession
Purpose: Top-level immutable record for one benchmark invocation.
Fields:
session_id: unique identifier.schema_version: persisted schema version.created_at: UTC timestamp.completed_at: UTC timestamp when finalized.status: completed, failed, cancelled, or partial.configuration: resolved configuration snapshot.hardware: hardware information snapshot.system: OS, Python, package, environment, and dependency metadata.workload: model and input metadata.backend: selected backend and capability metadata.runs: measured and warmup run records.metrics: computed metric records.profiles: profiler output summaries.artifacts: generated reports and exports.diagnostics: warnings and recoverable errors.
BenchmarkResult
Purpose: Aggregate result for a workload/backend/device combination.
Fields:
result_idsession_idstatusprimary_metricssecondary_metricsstatisticssummarycomparison_keyserror
Metric
Purpose: Store a measured or derived quantity.
Fields:
namedisplay_namevalueunitkind: measured, derived, estimated, metadata.source: backend, profiler, metric provider, user metadata.higher_is_betterassumptionsprecisiontags
HardwareInfo
Purpose: Capture target and host hardware metadata.
Fields:
host_namecpumemorygpuacceleratorsembedded_targetsimulatordriver_versionsfirmware_versionsthermal_policypower_policy
ModelInfo
Purpose: Describe the benchmarked workload.
Fields:
model_idnameformatsourcesize_bytesinput_shapesoutput_shapesprecisionparametersmacsflops_estimatemetadata
ExecutionResult
Purpose: Store one backend execution event.
Fields:
execution_idphase: warmup, measurement, calibration, cleanup.iterationstarted_atended_atduration_secondsstatusobservationsbackend_metadataerror
Profile
Purpose: Store profiler samples and summaries.
Fields:
profile_idprofiler_namescopesampling_interval_secondssamplessummarydiagnostics
RunHistory
Purpose: Support historical comparison and regression analysis.
Fields:
history_idsession_idscomparison_keysbaseline_session_idcandidate_session_iddeltasthresholdsoutcomes
Configuration
Purpose: Store resolved benchmark configuration.
Fields:
schema_versionsourcesprofileworkloadbackenddeviceexecutionprofilingmetricsreportsstoragepluginstags
PluginMetadata
Purpose: Describe a discovered plugin and its providers.
Fields:
nameversionapi_versionpackagedescriptionprovidersdependenciescapabilitiesstatusdiagnostics
Schema Evolution
Persisted data models evolve through schema versions. Readers should support migration from supported older schemas. Writers emit only the current schema. Breaking schema changes require release notes and migration documentation.