Use batch mode in step_benchmark_test.

d8880e9a12 introduced measuring performance of a fixed batch of 50 steps, with a fixed starting state.
The Google Benchmark library has a more direct API for doing this, which ends up with nicer looking reported numbers.

PiperOrigin-RevId: 454133316
Change-Id: I368b985dc871084b9ed8c41a87016408719b53ad
This commit is contained in:
Nimrod Gileadi
2022-06-10 04:21:38 -07:00
committed by Copybara-Service
parent d90d50629b
commit 5ac797965c
+2 -2
View File
@@ -84,7 +84,7 @@ static void run_step_benchmark(const mjModel* model, benchmark::State& state) {
std::vector<mjtNum> warmstart = AsVector(data->qacc_warmstart, model->nv);
// reset state, benchmark subsequent kNumBenchmarkSteps steps
for (auto s : state) {
while (state.KeepRunningBatch(kNumBenchmarkSteps)) {
mju_copy(data->qpos, qpos.data(), model->nq);
mju_copy(data->qvel, qvel.data(), model->nv);
mju_copy(data->act, act.data(), model->na);
@@ -98,7 +98,7 @@ static void run_step_benchmark(const mjModel* model, benchmark::State& state) {
// finalize
mj_deleteData(data);
state.SetItemsProcessed(kNumBenchmarkSteps * state.iterations());
state.SetItemsProcessed(state.iterations());
}
// Use ABSL_ATTRIBUTE_NO_TAIL_CALL to make sure the benchmark functions appear