Remove mjMARKSTACK and mjFREESTACK macros.

PiperOrigin-RevId: 562844184
Change-Id: Id2f57f5d132c47094dad75c6dab7297d7aa73458
This commit is contained in:
Saran Tunyasuvunakool
2023-09-05 11:41:01 -07:00
committed by Copybara-Service
parent 329ed193ac
commit 4929077211
35 changed files with 239 additions and 258 deletions
@@ -105,13 +105,13 @@ static void BM_solveLD(benchmark::State& state, bool new_function) {
static mjModel* m = LoadModelFromPath("composite/cloth.xml");
mjData* d = mj_makeData(m);
// warm-up rollout to get a typcal state
// warm-up rollout to get a typical state
for (int i=0; i < kNumWarmupSteps; i++) {
mj_step(m, d);
}
// allocate gadient
mjMARKSTACK;
// allocate gradient
mj_markStack(d);
mjtNum *grad = mj_stackAllocNum(d, m->nv);
mjtNum *Ma = mj_stackAllocNum(d, m->nv);
mjtNum *res = mj_stackAllocNum(d, m->nv);
@@ -145,7 +145,7 @@ static void BM_solveLD(benchmark::State& state, bool new_function) {
}
// finalize
mjFREESTACK;
mj_freeStack(d);
mj_deleteData(d);
state.SetItemsProcessed(state.iterations());
}
@@ -15,6 +15,9 @@
// A benchmark for comparing different implementations of mj_solveLD.
#include <cstddef>
#include <cstring>
#include <vector>
#include <benchmark/benchmark.h>
#include <gtest/gtest.h>
#include <absl/base/attributes.h>
@@ -47,7 +50,7 @@ void ABSL_ATTRIBUTE_NOINLINE mju_sqrMatTDSparse_baseline(
const int* rownnz, const int* rowadr, const int* colind,
const int* rowsuper, const int* rownnzT, const int* rowadrT,
const int* colindT, const int* rowsuperT, mjData* d) {
mjMARKSTACK;
mj_markStack(d);
int* chain = mj_stackAllocInt(d, 2 * nc);
mjtNum* buffer = mj_stackAllocNum(d, nc);
@@ -149,7 +152,7 @@ void ABSL_ATTRIBUTE_NOINLINE mju_sqrMatTDSparse_baseline(
}
}
mjFREESTACK;
mj_freeStack(d);
}
// transpose sparse matrix (uncompressed)
@@ -354,7 +357,7 @@ static void BM_MatVecSparse(benchmark::State& state, int unroll) {
}
// allocate gradient
mjMARKSTACK;
mj_markStack(d);
mjtNum *Ma = mj_stackAllocNum(d, m->nv);
mjtNum *vec = mj_stackAllocNum(d, m->nv);
mjtNum *res = mj_stackAllocNum(d, d->nefc);
@@ -395,7 +398,7 @@ static void BM_MatVecSparse(benchmark::State& state, int unroll) {
}
// finalize
mjFREESTACK;
mj_freeStack(d);
mj_deleteData(d);
state.SetItemsProcessed(state.iterations());
}
@@ -433,7 +436,7 @@ static void BM_combineSparse(benchmark::State& state, CombineFuncPtr func) {
}
// allocate
mjMARKSTACK;
mj_markStack(d);
mjtNum* H = mj_stackAllocNum(d, m->nv*m->nv);
int* rownnz = mj_stackAllocInt(d, m->nv);
int* rowadr = mj_stackAllocInt(d, m->nv);
@@ -478,7 +481,7 @@ static void BM_combineSparse(benchmark::State& state, CombineFuncPtr func) {
}
// finalize
mjFREESTACK;
mj_freeStack(d);
mj_deleteData(d);
state.SetItemsProcessed(state.iterations());
}
@@ -510,7 +513,7 @@ static void BM_transposeSparse(benchmark::State& state, TransposeFuncPtr func) {
mj_step(m, d);
}
mjMARKSTACK;
mj_markStack(d);
// need uncompressed layout
mjtNum* res = mj_stackAllocNum(d, m->nv * d->nefc);
@@ -524,7 +527,7 @@ static void BM_transposeSparse(benchmark::State& state, TransposeFuncPtr func) {
d->efc_J_rownnz, d->efc_J_rowadr, d->efc_J_colind);
}
mjFREESTACK;
mj_freeStack(d);
mj_deleteData(d);
state.SetItemsProcessed(state.iterations());
}
@@ -556,7 +559,7 @@ static void BM_sqrMatTDSparse(benchmark::State& state, SqrMatTDFuncPtr func) {
}
// allocate
mjMARKSTACK;
mj_markStack(d);
mjtNum* H = mj_stackAllocNum(d, m->nv * m->nv);
int* rownnz = mj_stackAllocInt(d, m->nv);
int* rowadr = mj_stackAllocInt(d, m->nv);
@@ -598,7 +601,7 @@ static void BM_sqrMatTDSparse(benchmark::State& state, SqrMatTDFuncPtr func) {
}
// finalize
mjFREESTACK;
mj_freeStack(d);
mj_deleteData(d);
state.SetItemsProcessed(state.iterations());
}
+5 -2
View File
@@ -14,7 +14,10 @@
// Tests for engine/engine_derivative.c.
#include <iomanip>
#include <iostream>
#include <random>
#include <string>
#include <vector>
#include <gmock/gmock.h>
@@ -287,7 +290,7 @@ TEST_F(DerivativeTest, StepSkip) {
static void LinearSystem(const mjModel* m, mjData* d, mjtNum* A, mjtNum* B) {
int nv = m->nv, nu = m->nu;
mjtNum dt = m->opt.timestep;
mjMARKSTACK;
mj_markStack(d);
// === state-transition matrix A
if (A) {
@@ -330,7 +333,7 @@ static void LinearSystem(const mjModel* m, mjData* d, mjtNum* A, mjtNum* B) {
mju_scl(B+nu*nv, BcT, dt, nu*nv);
}
mjFREESTACK;
mj_freeStack(d);
}
// compare FD derivatives to analytic derivatives of linear dynamical system
+4 -4
View File
@@ -50,7 +50,7 @@ TEST(TestMjArrayList, TestMjArrayListSingleThreaded) {
mjModel* m = LoadModelFromString("<mujoco/>", error.data(), error.size());
ASSERT_THAT(m, NotNull()) << "Failed to load model: " << error.data();
mjData* d = mj_makeData(m);
mjMARKSTACK;
mj_markStack(d);
using DataType = int;
constexpr int kInitialCapacity = 10;
@@ -76,7 +76,7 @@ TEST(TestMjArrayList, TestMjArrayListSingleThreaded) {
EXPECT_EQ(mju_arrayListAt(array_list, kNumElements), nullptr);
EXPECT_EQ(mju_arrayListAt(array_list, 100), nullptr);
mjFREESTACK;
mj_freeStack(d);
mj_deleteData(d);
mj_deleteModel(m);
}
@@ -85,7 +85,7 @@ TEST(TestMjArrayList, ZeroInitialCapacity) {
mjModel* m = LoadModelFromString("<mujoco/>", nullptr, 0);
ASSERT_THAT(m, NotNull()) << "Failed to load model";
mjData* d = mj_makeData(m);
mjMARKSTACK;
mj_markStack(d);
mjArrayList* array_list =
mju_arrayListCreate(d, sizeof(double), /*initial_capacity=*/0);
EXPECT_EQ(mju_arrayListSize(array_list), 0);
@@ -101,7 +101,7 @@ TEST(TestMjArrayList, ZeroInitialCapacity) {
}
EXPECT_EQ(mju_arrayListAt(array_list, 35), nullptr);
mjFREESTACK;
mj_freeStack(d);
mj_deleteData(d);
mj_deleteModel(m);
}