Demostrador de caso de uso de aplicación de conducción autónoma – particionado temporal en Linux para plataformas con GPUs
Autonomous driving application use case – time partitioning in Linux for platforms with GPUs
Ver/ Abrir
Identificadores
URI: https://hdl.handle.net/10902/34342Registro completo
Mostrar el registro completo DCAutoría
Cuevas Cuesta, BorjaFecha
2024-09Derechos
Attribution-NonCommercial-NoDerivatives 4.0 International
Palabras clave
Plataformas heterogéneas
GPUs
Particionado
Hipervisor
Sistemas críticos
Tiempo real
Heterogeneous platforms
Partitioning
Hypervisor
Critical systems
Real time
Resumen/Abstract
El creciente interés de los últimos años en la conducción autónoma está llevando al desarrollo de aplicaciones cada vez más complejas que requieren mayor potencia computacional, impulsando consigo la evolución de las plataformas sobre las que se ejecutan hacia arquitecturas heterogéneas con procesadores y aceleradores específicos como GPUs y NPUs. Las aplicaciones de conducción autónoma no solo requieren altas prestaciones de cómputo, sino que deben cumplir también unos requisitos de seguridad funcional y tiempo real estrictos, ya que cualquier retraso o fallo en algunas de sus tareas podría originar situaciones de riesgo para las personas cercanas al sistema (pasajeros, peatones, etc.). Para garantizar que estas tareas críticas cumplan sus respectivos plazos temporales, es esencial desarrollar el sistema de tal forma que se comporte de una manera predecible, permitiendo anticipar su comportamiento para poder asegurar una respuesta correcta ante un determinado estímulo dentro del tiempo acotado. Sin embargo, la predictibilidad de los sistemas de tiempo real puede verse afectada en plata- formas heterogéneas con GPUs integradas debido al uso intensivo de memoria y los mecanismos de planificación interna desconocidos, lo cual genera tiempos de respuesta impredecibles. Por tanto, ante la falta de soluciones que garanticen la aplicación de técnicas de tiempo real y seguridad funcional en este tipo de plataformas, en este trabajo se busca desarrollar un entorno de pruebas que facilite la experimentación en dicho campo. Este entorno de pruebas, denominado Planificador mediante Ventanas Temporales sobre Linux (PVTL), emula un particionado temporal dividiendo el sistema en diferentes particiones garantizando el aislamiento entre ellas y proporcionando la capacidad de controlar la activación de las tareas del sistema para evitar accesos concurrentes a la GPU, mitigando así el efecto de la interferencia de memoria. Para validar su comportamiento, se integra un caso de uso de conducción autónoma en el que se ejecuta un algoritmo de detección de obstáculos dentro de este entorno de pruebas, permitiendo analizar el efecto de la configuración del particionado sobre sus tiempos de respuesta.
The growing interest in autonomous driving in recent years has led to the development of increasingly complex applications that require greater computational capabilities, driving the evolution of the platforms on which they run toward heterogeneous architectures with specialized processors and accelerators such as GPUs and NPUs. Autonomous driving applications not only require high computational performance but must also meet strict functional safety and real-time requirements, as any delay or failure in some of their tasks could lead to risky situations for people near the system (such as assengers or pedestrians). To ensure that these critical tasks meet their respective deadlines, it is essential to develop the system in a way that ensures predictable behavior, allowing anticipation of its performance to guarantee a correct response to a given stimulus within a specified time. However, the predictability of real-time systems can be compromised on heterogeneous plat- forms with integrated GPUs due to intensive memory usage and unknown internal scheduling mechanisms, which lead to unpredictable response times. Therefore, given the lack of solu- tions that guarantee the application of real-time and functional safety techniques on these platforms, this work aims to develop a testbed to facilitate experimentation in this field. This testbed, called Time-Window Scheduler on Linux (PVTL, by its acronym in Spanish), emulates temporal partitioning by dividing the system into different partitions, ensuring iso- lation between them and providing the ability to control task activation to avoid concurrent GPU access, thus mitigating memory interference. To validate its behavior, an autonomous driving use case is integrated, where an obstacle detection algorithm is executed within this test environment, allowing the analysis of the effect of the partitioning configuration on response times.