mirror of
https://github.com/tiagovignatti/intel-gpu-tools.git
synced 2025-06-10 09:26:10 +00:00
The goal is measure how long it takes for clients waiting on results to wakeup after a buffer completes, and in doing so ensure scalibilty of the kernel to large number of clients. We spawn a number of producers. Each producer submits a busyload to the system and records in the GPU the BCS timestamp of when the batch completes. Then each producer spawns a number of waiters, who wait upon the batch completion and measure the current BCS timestamp register and compare against the recorded value. By varying the number of producers and consumers, we can study different aspects of the design, in particular how many wakeups the kernel does for each interrupt (end of batch). The more wakeups on each batch, the longer it takes for any one client to finish. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
These benchmarks are designed to be used from within a benchmark framework like http://cgit.freedesktop.org/~mperes/ezbench/. A typical way to run them would be: $ ~/ezbench/ezbench.sh -p ./linux,git -m '' -b gem: -r 15 which executes the set of gem benchmarks, 15 times each, using HEAD of ./linux.git as the reference commit.