//! Device-synchronised timing for kernel benchmarks.
//!
//! Kernel launches are asynchronous; a timing is only meaningful once the client's queue has
//! drained. [`time_device`] syncs before starting the clock and after the timed closure.
use ;
use *;
/// Waits until every operation queued on `client` has finished.
/// Runs `f` once as warm-up (kernel compilation, allocation), then `iters` times, and returns the
/// median wall time per iteration including device completion.