From 6a83b865539dba8f830c5d668e681c8d24387e69 Mon Sep 17 00:00:00 2001 From: Yuval Tassa Date: Thu, 23 Nov 2023 10:45:57 -0800 Subject: [PATCH] Update M1 Pro with M3 Max benchmarks in MJX docs PiperOrigin-RevId: 584918133 Change-Id: I442972cdc1f19020e6b5bbc7ff3e98fd556cf125 --- doc/XMLreference.rst | 8 ++++---- doc/images/mjx/SPS.svg | 2 +- doc/mjx.rst | 4 ++-- doc/programming/extension.rst | 2 +- 4 files changed, 8 insertions(+), 8 deletions(-) diff --git a/doc/XMLreference.rst b/doc/XMLreference.rst index 198893be..34a72e1c 100644 --- a/doc/XMLreference.rst +++ b/doc/XMLreference.rst @@ -5787,10 +5787,10 @@ Associate this actuator with an :ref:`engine plugin`. Either :at:`plug .. _actuator-plugin-dyntype: :at:`dyntype`: :at-val:`[none, integrator, filter, filterexact, muscle, user], "none"` - Activation dynamics type for the actuator. The available dynamics types were already described in the - :ref:`Actuation model ` section. See also :ref:`actuator-general-dyntype`. If dyntype is - not none, an activation variable will be added to the actuator. This variable will be added after - any activation state computed by the plugin (see :ref:`actuator plugin activations`). + Activation dynamics type for the actuator. The available dynamics types were already described in the :ref:`Actuation + model ` section. If :ref:`dyntype` is not "none", an activation variable will + be added to the actuator. This variable will be added after any activation state computed by the plugin (see + :ref:`actuator plugin activations`). .. _actuator-plugin-actrange: diff --git a/doc/images/mjx/SPS.svg b/doc/images/mjx/SPS.svg index a35a2508..6ffa2735 100644 --- a/doc/images/mjx/SPS.svg +++ b/doc/images/mjx/SPS.svg @@ -1 +1 @@ - + diff --git a/doc/mjx.rst b/doc/mjx.rst index 2bdd9a58..92a709b6 100644 --- a/doc/mjx.rst +++ b/doc/mjx.rst @@ -296,7 +296,7 @@ Large, complex scenes with many contacts powerful as the one in MuJoCo. To see how this affects simulation, let us consider a physics scene with increasing numbers of humanoid bodies, - varied from 1 to 10. We simulate this scene using CPU MuJoCo on an Apple M1 Pro and a 64-core AMD 3995WX and time + varied from 1 to 10. We simulate this scene using CPU MuJoCo on an Apple M3 Max and a 64-core AMD 3995WX and time it using :ref:`testspeed`, using ``2 x numcore`` threads. We time the MJX simulation on an Nvidia A100 GPU using a batch size of 8192 and an 8-chip `v5 TPU `__ @@ -306,7 +306,7 @@ Large, complex scenes with many contacts :width: 95% :align: center - The values for a single humanoid (leftmost datapoints) for the four timed architectures are **320K**, **1.8M**, + The values for a single humanoid (leftmost datapoints) for the four timed architectures are **650K**, **1.8M**, **950K** and **2.7M** steps per second, respectively. Note that as we increase the number of humanoids (which increases the number of potential contacts in a scene), MJX throughput decreases more rapidly than MuJoCo. diff --git a/doc/programming/extension.rst b/doc/programming/extension.rst index 5269d6cf..1e594380 100644 --- a/doc/programming/extension.rst +++ b/doc/programming/extension.rst @@ -206,7 +206,7 @@ Actuator activations When writing stateful actuator plugins, there are two choices for where to save the actuator state. One option is using ``plugin_state`` as described above, and the other is to use ``mjData.act`` by implementing the ``actuator_actdim`` and - ``actuator_act_dot`` callbacks on :ref:`mjpPlugin`. +``actuator_act_dot`` callbacks on :ref:`mjpPlugin`. When using the latter option, the actuator plugin's state will be added to ``mjData.act``, and MuJoCo will automatically integrate ``mjData.act_dot`` values between timesteps. One advantage of this approach is that