ASV suite that times dpnp only; README.md has the full setup.
- NumPy is not timed:
executorstays the single value'dpnp'. Don't edit the leftovernumpybranches insetup: ASV versions a benchmark by the source ofsetupandtime_*, so any edit makes its results incomparable with the recorded history. - Keep
paramsstatic and their values plain strings, numbers or tuples; skip unsupported devices insetupwithSkipNotImplemented. - Timed bodies block on the result (
self.sync(...)ordpnp.synchronize_array_data); otherwise they time only the submission. - Parameter axes shared by two or more modules live in
benchmarks/benchmarks/_utils.py. - A new non-ASV dependency goes in both
requirements.txt(what CI installs) and thebenchmarkextra inpyproject.toml; ASV itself is only in the extra.
From benchmarks/, against an environment that already has dpnp:
asv machine --yes
asv check --python=same
asv run --python=same --launch-method spawn --quick --bench bench_elementwiseAlways pass --launch-method spawn: the SYCL runtime is not fork-safe. Don't pip install ".[benchmark]"; it rebuilds dpnp.