Vectorization compiler for robotics linear algebra

View/Open
Cita com:
hdl:2117/426800
Author's e-mailanimationcompany7
gmail.com

Tutor / directorReddi, Vijay Janapa
CovenanteeHarvard University
Document typeBachelor thesis
Date2025-02-24
Rights accessOpen Access
All rights reserved. This work is protected by the corresponding intellectual and industrial
property rights. Without prejudice to any existing legal exemptions, reproduction, distribution, public
communication or transformation of this work are prohibited without permission of the copyright holder
Abstract
L'aplicació de la robòtica presenta requisits estrictes en el temps d'execució, requerint implementacions eficients dels seus nuclis d'àlgebra lineal. Aquests nuclis contenen patrons de dispersió i fluxos de control propis del domini, que han de ser explotats per a maximitzar el rendiment. Malgrat això, les implementacions basades en llibreries d'aquests nuclis de geometria i física només exploten parcialment aquesta informació, deixant rendiment sobre la taula. D'altra banda, compiladors d'àlgebra lineal existents no tenen visibilitat sobre la informació pròpia del domini. Per a omplir aquest buit, és crucial incorporar la màxima informació del domini per a explotar al màxim el rendiment que aquesta ofereix.
Per a aquest propòsit, presentem un compilador per a generar nuclis vectorizados de física i geometria per a robots. El nostre treball aborda aquest repte sent flexible i amb tres pilars crítics que sustenten el seu rendiment: (i) flux de control del domini i propagació de dispersió, (ii) incorporar els patrons de dispersió de les matrius i emmagatzemar les seves primitives, (iii) vectorització per grups tenint en consideració la dispersió del domini.
Hem avaluat el nostre treball en tasques claus dins de la planificació del moviment, com és la cinemàtica directa i el control de col·lisions, aconseguint accelerar l'execució en aquestes tasques en un factor d'entre 12x a 29x depenent del robot. Vam demostrar que adaptant-se a diferents fluxos de control, robots i paral·lelisme SIMD mitjançant l'exploració de l'espai de disseny permet millorar enormement el rendiment. 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. 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.
SubjectsParallel processing (Electronic computers), Computer simulation, Robotics, Processament en paral·lel (Ordinadors), Simulació per ordinador, Robòtica
DegreeGRAU EN ENGINYERIA FÍSICA/GRAU EN ENGINYERIA INFORMÀTICA
Files | Description | Size | Format | View |
---|---|---|---|---|
TFG_CFIS Marc Final.pdf | 3,348Mb | View/Open |