-
Notifications
You must be signed in to change notification settings - Fork 49
/
benchmarks.html
35 lines (35 loc) · 5.48 KB
/
benchmarks.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"/><meta name="viewport" content="width=device-width, initial-scale=1.0"/><title>Benchmarks · RigidBodyDynamics.jl</title><link href="https://cdnjs.cloudflare.com/ajax/libs/normalize/4.2.0/normalize.min.css" rel="stylesheet" type="text/css"/><link href="https://fonts.googleapis.com/css?family=Lato|Roboto+Mono" rel="stylesheet" type="text/css"/><link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.6.3/css/font-awesome.min.css" rel="stylesheet" type="text/css"/><link href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.12.0/styles/default.min.css" rel="stylesheet" type="text/css"/><script>documenterBaseURL="."</script><script src="https://cdnjs.cloudflare.com/ajax/libs/require.js/2.2.0/require.min.js" data-main="assets/documenter.js"></script><script src="siteinfo.js"></script><script src="../versions.js"></script><link href="assets/documenter.css" rel="stylesheet" type="text/css"/></head><body><nav class="toc"><h1>RigidBodyDynamics.jl</h1><select id="version-selector" onChange="window.location.href=this.value" style="visibility: hidden"></select><form class="search" id="search-form" action="search.html"><input id="search-query" name="q" type="text" placeholder="Search docs"/></form><ul><li><a class="toctext" href="index.html">Home</a></li><li><a class="toctext" href="quickstart.html">Quick start guide</a></li><li><a class="toctext" href="spatial.html">Spatial vector algebra</a></li><li><a class="toctext" href="joints.html">Joints</a></li><li><a class="toctext" href="rigidbody.html">Rigid bodies</a></li><li><a class="toctext" href="mechanism.html">Mechanism</a></li><li><a class="toctext" href="mechanismstate.html">MechanismState</a></li><li><a class="toctext" href="algorithms.html">Kinematics/dynamics algorithms</a></li><li><a class="toctext" href="customcollections.html">Custom collection types</a></li><li><a class="toctext" href="caches.html">Cache types</a></li><li><a class="toctext" href="simulation.html">Simulation</a></li><li class="current"><a class="toctext" href="benchmarks.html">Benchmarks</a><ul class="internal"></ul></li></ul></nav><article id="docs"><header><nav><ul><li><a href="benchmarks.html">Benchmarks</a></li></ul><a class="edit-page" href="https://github.com/JuliaRobotics/RigidBodyDynamics.jl/blob/master/docs/src/benchmarks.md"><span class="fa"></span> Edit on GitHub</a></nav><hr/><div id="topbar"><span>Benchmarks</span><a class="fa fa-bars" href="#"></a></div></header><h1><a class="nav-anchor" id="Benchmarks-1" href="#Benchmarks-1">Benchmarks</a></h1><p>To get maximal performance, it is recommended to:</p><ol><li><p><a href="https://docs.julialang.org/en/stable/devdocs/sysimg/#">Rebuild the Julia system image for your CPU architecture</a></p></li><li><p>Pass <code>-O3</code>, <code>--check-bounds=no</code>, and <code>--math-mode=fast</code> as command line flags to <code>julia</code>.</p></li></ol><p>Run <code>perf/runbenchmarks.jl</code> to see benchmark results for the Atlas robot (v5) in the following scenarios:</p><ol><li><p>Compute the joint-space mass matrix.</p></li><li><p>Compute both the mass matrix and a geometric Jacobian from the left hand to the right foot.</p></li><li><p>Do inverse dynamics.</p></li><li><p>Do forward dynamics.</p></li></ol><p>Note that results on Travis builds are <strong>not at all</strong> representative because of code coverage. Results on a reasonably fast machine at commit <a href="https://github.com/JuliaRobotics/RigidBodyDynamics.jl/tree/8f70a47bcd6ed4baca9d3ea4f304dc4f1df787d7">8f70a47bcd</a>:</p><p>Output of <code>versioninfo()</code>:</p><pre><code class="language-none">Julia Version 0.6.2
Commit d386e40c17 (2017-12-13 18:08 UTC)
Platform Info:
OS: Linux (x86_64-pc-linux-gnu)
CPU: Intel(R) Core(TM) i7-6950X CPU @ 3.00GHz
WORD_SIZE: 64
BLAS: libopenblas (USE64BITINT DYNAMIC_ARCH NO_AFFINITY Haswell)
LAPACK: libopenblas64_
LIBM: libopenlibm
LLVM: libLLVM-3.9.1 (ORCJIT, broadwell)</code></pre><p>Mass matrix:</p><pre><code class="language-none"> memory estimate: 0 bytes
allocs estimate: 0
--------------
minimum time: 9.697 μs (0.00% GC)
median time: 10.003 μs (0.00% GC)
mean time: 10.076 μs (0.00% GC)
maximum time: 47.473 μs (0.00% GC)</code></pre><p>Mass matrix and Jacobian from left hand to right foot:</p><pre><code class="language-none"> memory estimate: 0 bytes
allocs estimate: 0
--------------
minimum time: 10.426 μs (0.00% GC)
median time: 10.737 μs (0.00% GC)
mean time: 10.754 μs (0.00% GC)
maximum time: 49.830 μs (0.00% GC)</code></pre><p>Note the low additional cost of computing a Jacobian when the mass matrix is already computed. This is because RigidBodyDynamics.jl caches intermediate computation results.</p><p>Inverse dynamics:</p><pre><code class="language-none"> memory estimate: 0 bytes
allocs estimate: 0
--------------
minimum time: 10.988 μs (0.00% GC)
median time: 11.294 μs (0.00% GC)
mean time: 11.383 μs (0.00% GC)
maximum time: 33.164 μs (0.00% GC)</code></pre><p>Forward dynamics:</p><pre><code class="language-none"> memory estimate: 64 bytes
allocs estimate: 3
--------------
minimum time: 39.481 μs (0.00% GC)
median time: 54.874 μs (0.00% GC)
mean time: 55.230 μs (0.00% GC)
maximum time: 594.235 μs (0.00% GC)</code></pre><footer><hr/><a class="previous" href="simulation.html"><span class="direction">Previous</span><span class="title">Simulation</span></a></footer></article></body></html>