SymForce: Symbolic Computation and Code Generation for Robotics
- URL: http://arxiv.org/abs/2204.07889v1
- Date: Sun, 17 Apr 2022 00:15:10 GMT
- Title: SymForce: Symbolic Computation and Code Generation for Robotics
- Authors: Hayk Martiros, Aaron Miller, Nathan Bucki, Bradley Solliday, Ryan
Kennedy, Jack Zhu, Tung Dang, Dominic Pattison, Harrison Zheng, Teo Tomic,
Peter Henry, Gareth Cross, Josiah VanderMey, Alvin Sun, Samuel Wang, Kristen
Holtz
- Abstract summary: We present SymForce, a fast symbolic computation and code generation library for robotics applications.
SymForce combines the development speed and flexibility of symbolic mathematics with the performance of autogenerated, highly optimized code in C++.
- Score: 6.741275581634116
- License: http://arxiv.org/licenses/nonexclusive-distrib/1.0/
- Abstract: We present SymForce, a fast symbolic computation and code generation library
for robotics applications like computer vision, state estimation, motion
planning, and controls. SymForce combines the development speed and flexibility
of symbolic mathematics with the performance of autogenerated, highly optimized
code in C++ or any target runtime language. SymForce provides geometry and
camera types, Lie group operations, and branchless singularity handling for
creating and analyzing complex symbolic expressions in Python, built on top of
SymPy. Generated functions can be integrated as factors into our tangent space
nonlinear optimizer, which is highly optimized for real-time production use. We
introduce novel methods to automatically compute tangent space Jacobians,
eliminating the need for bug-prone handwritten derivatives. This workflow
enables faster runtime code, faster development time, and fewer lines of
handwritten code versus the state-of-the-art. Our experiments demonstrate that
our approach can yield order of magnitude speedups on computational tasks core
to robotics. Code is available at https://github.com/symforce-org/symforce .
Related papers
- LILO: Learning Interpretable Libraries by Compressing and Documenting Code [71.55208585024198]
We introduce LILO, a neurosymbolic framework that iteratively synthesizes, compresses, and documents code.
LILO combines LLM-guided program synthesis with recent algorithmic advances in automated from Stitch.
We find that AutoDoc boosts performance by helping LILO's synthesizer to interpret and deploy learned abstractions.
arXiv Detail & Related papers (2023-10-30T17:55:02Z) - Specx: a C++ task-based runtime system for heterogeneous distributed architectures [0.0]
Specx is a task-based runtime system written in modern C++.
We present Specx, a task-based runtime system written in modern C++.
arXiv Detail & Related papers (2023-08-30T11:41:30Z) - ReACC: A Retrieval-Augmented Code Completion Framework [53.49707123661763]
We propose a retrieval-augmented code completion framework, leveraging both lexical copying and referring to code with similar semantics by retrieval.
We evaluate our approach in the code completion task in Python and Java programming languages, achieving a state-of-the-art performance on CodeXGLUE benchmark.
arXiv Detail & Related papers (2022-03-15T08:25:08Z) - Geometry-aware Bayesian Optimization in Robotics using Riemannian
Mat\'ern Kernels [64.62221198500467]
We show how to implement geometry-aware kernels for Bayesian optimization.
This technique can be used for control parameter tuning, parametric policy adaptation, and structure design in robotics.
arXiv Detail & Related papers (2021-11-02T09:47:22Z) - High-performance symbolic-numerics via multiple dispatch [52.77024349608834]
Symbolics.jl is an extendable symbolic system which uses dynamic multiple dispatch to change behavior depending on the domain needs.
We show that by formalizing a generic API on actions independent of implementation, we can retroactively add optimized data structures to our system.
We demonstrate the ability to swap between classical term-rewriting simplifiers and e-graph-based term-rewriting simplifiers.
arXiv Detail & Related papers (2021-05-09T14:22:43Z) - Systolic Computing on GPUs for Productive Performance [2.8064596842326575]
We propose a language and compiler to productively build high-performance systolic arrays that run on GPUs.
A programmer it' specifies a projection of a dataflow compute onto a linear systolic array, while leaving the detailed implementation of the projection to a compiler.
The compiler implements the specified projection and maps the linear systolic array to the SIMD execution units and vector registers of GPUs.
arXiv Detail & Related papers (2020-10-29T18:49:54Z) - Kernel methods through the roof: handling billions of points efficiently [94.31450736250918]
Kernel methods provide an elegant and principled approach to nonparametric learning, but so far could hardly be used in large scale problems.
Recent advances have shown the benefits of a number of algorithmic ideas, for example combining optimization, numerical linear algebra and random projections.
Here, we push these efforts further to develop and test a solver that takes full advantage of GPU hardware.
arXiv Detail & Related papers (2020-06-18T08:16:25Z) - PolyDL: Polyhedral Optimizations for Creation of High Performance DL
primitives [55.79741270235602]
We present compiler algorithms to automatically generate high performance implementations of Deep Learning primitives.
We develop novel data reuse analysis algorithms using the polyhedral model.
We also show that such a hybrid compiler plus a minimal library-use approach results in state-of-the-art performance.
arXiv Detail & Related papers (2020-06-02T06:44:09Z)
This list is automatically generated from the titles and abstracts of the papers in this site.
This site does not guarantee the quality of this site (including all information) and is not responsible for any consequences.