[en] Robotics applications have hard real-time requirements, necessitating fast implementations of their core linear algebra kernels. These kernels exhibit rich, domain-driven, structured sparsity and control flow patterns, which, when not exploited, leave performance on the table. However, library-based implementations of these physics and geometry kernels can only exploit limited domain info at compile time. On the other hand, existing linear algebra compilers do not have visibility into domain information, leaving them unable to specialize sparsity propagation and vectorization to the domain. To fill this gap, it is crucial to incorporate rich domain information into compilers to fully exploit the problem structure of these robotics kernels. To this end, we introduce a compiler for automatically generating fast vectorized robot physics and geometry kernels. Our work addresses this challenge by being flexible to three features critical to the performance of linear algebra for robotics: (i) robot and geometry-driven control flow and sparsity propagation, informing (ii) diverse forms of structured matrix sparsity and storage primitives, and (iii) sparsity-aware batched vectorization. We evaluate our workload on key workloads inside motion planning, such as forward kinematics and collision checking, important robot and geometry-driven workloads, and achieve speedups ranging from 12$\times$ to 29$\times$ across multiple robots. We demonstrate that modulating across choices of robot and geometry-driven control flow and SIMD parallelism leads to large, sometimes counterintuitive, differences in performance, underscoring the need for using compilers to explore complex design spaces.

[es] La aplicación de la robótica presenta requisitos estrictos en el tiempo de ejecución, requiriendo implementaciones eficientes de sus núcleos de álgebra lineal. Estos núcleos contienen patrones de dispersión y flujos de control propios del dominio, que deben ser explotados para maximizar el rendimiento. A pesar de ello, las implementaciones basadas en librerías de estos núcleos de geometría y física solo explotan parcialmente esta información, dejando rendimiento sobre la mesa. Por otro lado, compiladores de álgebra lineal existentes no tienen visibilidad sobre la información propia del dominio. Para llenar este hueco, es crucial incorporar la máxima información del dominio para explotar al máximo el rendimiento que esta ofrece. Para este propósito, presentamos un compilador para generar núcleos vectorizados de física y geometría para robots. Nuestro trabajo aborda este reto siendo flexible y con tres pilares críticos que sustentan su rendimiento: (i) flujo de control del dominio y propagación de dispersión, (ii) incorporar los patrones de dispersión de las matrices y almacenar sus primitivas, (iii) vectorización por grupos teniendo en consideración la dispersión del dominio. Hemos evaluado nuestro trabajo en tareas claves dentro de la planificación del movimiento, como es la cinemática directa y el control de colisiones, logrando acelerar la ejecución en estas tareas en un factor de entre 12x a 29x dependiendo del robot. Demostramos que adaptándose a diferentes flujos de control, robots y paralelismo SIMD mediante la exploración del espacio de diseño permite mejorar enormemente el rendimiento.