Benchmark
Unified benchmarking API for comprehensive model analysis
BenchmarkResult
def BenchmarkResult(
size:SizeMetrics | None=None, speed:dict[str, SpeedMetrics]=<factory>, compute:ComputeMetrics | None=None,
memory:dict[str, MemoryMetrics]=<factory>, energy:dict[str, EnergyMetrics]=<factory>,
_dict_cache:dict[str, Any] | None=None
)->None:
Structured container for benchmark results with typed access.
Provides both typed attribute access (e.g., result.speed["cpu"].mean_ms) and backward-compatible dict-like access (e.g., result["speed_cpu_mean_ms"]).
benchmark
def benchmark(
model:torch.nn.Module, # model to profile
sample:torch.Tensor, # input tensor (with batch dimension)
metrics:Sequence[str]=('size', 'speed', 'compute', 'memory', 'energy'), # metrics to compute
speed_devices:Sequence[str | torch.device] | None=None, # devices for speed (default: cpu + cuda)
memory_devices:Sequence[str | torch.device] | None=None, # devices for memory
energy_devices:Sequence[str | torch.device] | None=None, # devices for energy
kwargs:VAR_KEYWORD
)->BenchmarkResult:
Run comprehensive benchmarks on a model.
See Also
- Getting Started Tutorial - Comprehensive usage examples
- Profiling - Per-layer analysis with
LayerProfiler - Visualization - Radar plots for model comparison