<< Volver atrás

Tesis:

Energy Consumption Reduction on High Performance Embedded Systems for Hyperspectral Imaging Cancer Detection


  • Autor: MADROÑAL QUINTÍN, Daniel

  • Título: Energy Consumption Reduction on High Performance Embedded Systems for Hyperspectral Imaging Cancer Detection

  • Fecha: 2020

  • Materia: Sin materia definida

  • Escuela: FACULTAD DE INFORMATICA

  • Departamentos: AEROTECNIA

  • Acceso electrónico: http://oa.upm.es/65022/

  • Director/a 1º: JUÁREZ MARTÍNEZ, Eduardo
  • Director/a 2º: SANZ ALVARO, César

  • Resumen: Con el paso del tiempo, la complejidad de las aplicaciones está viéndose incrementada constantemente y, en paralelo, existe un continuo desarrollo de las plataformas de computación sobre las que dichas aplicaciones se ejecutan. Además, los requisitos de los sistemas, tanto funcionales como no funcionales –tiempo de ejecución o consumo de energía–, son cada vez más exigentes, lo que está empezando a convertir el desarrollo de aplicaciones en una tarea inabarcable. Este es el caso del uso de imágenes hiperespectrales –del inglés Hyperspectral Imaging (HSI)– para distinguir el tejido sano del tejido tumoroso en humanos. La investigación en este ámbito ha cobrado importancia en los últimos años debido a que es una tecnología no invasiva y no ionizante capaz de distinguir los márgenes del tumor de manera precisa. Esta aplicación presenta distintos requisitos dependiendo del campo en el que se quiera aplicar: en neurocirugía, es necesario dar una respuesta en tiempo real para ayudar al cirujano durante la operación; en dermatología, sin embargo, el consumo de energía cobra una mayor importancia, ya que, en este caso, sería posible que el sistema estuviera alimentado a través de una batería. Para facilitar el desarrollo de sistemas en los que existen requisitos tanto funcionales como no funcionales, en la actualidad se utilizan estrategias de diseño que automatizan ciertas tareas, como por ejemplo la paralelización del código, la generación automática del código final, la planificación de tareas, etc. A este respecto, existen unas metodologías de diseño que se basan en el paradigma llamado Ychart, donde se propone una separación entre el desarrollo de la aplicación y la especificación de la plataforma sobre la que se va a ejecutar, para después combinarlos teniendo en cuenta una serie de directrices definidas por los desarrolladores. Además, para llevar a cabo dicha combinación, se pueden utilizar optimizaciones multiobjetivo, donde todos los requisitos del sistema, que pueden incluso ser opuestos entre sí, se intentan cumplir. Teniendo en cuenta esta tendencia, en este documento se propone una metodología de diseño basada en Y-chart y flujo de datos, del inglés dataflow, donde se busca incluir el consumo de energía entre los requisitos no funcionales a optimizar. Esta nueva metodología consiste en un bucle de optimización del consumo de energía construido con el fin de poderse aplicar independientemente de la aplicación y de la plataforma de computación utilizadas. En concreto, el bucle se ha construido combinando 3 módulos: monitorización del sistema, estimación del consumo de energía y toma de decisiones. En primer lugar, se ha desarrollado PAPIFY, una infraestructura de monitorización basada en dataflow. Esta herramienta es capaz de obtener información tanto del tiempo de ejecución como de una serie de monitores de rendimiento –del inglés Performance Monitoring Counter (PMC)– durante la ejecución de la aplicación. Además, debido a la aproximación dataflow, la información que se quiere monitorizar en cada parte de la aplicación se define de manera individual; asimismo, es posible asociar cada recurso de la plataforma a un conjunto de PMCs específico. Como resultado, con esta herramienta, es posible 1) caracterizar aplicaciones que se ejecuten en plataformas heterogéneas, es decir, que engloben recursos de computación de distinta naturaleza y 2) adaptar la monitorización del sistema automáticamente y de manera transparente al usuario para que, en cada momento, se ajuste a la configuración específica de cada parte de la aplicación, siempre y cuando dicha configuración se soporte en el recurso de computación en el que se esté ejecutando. Por otro lado, en este documento también se propone una nueva metodología para modelar el consumo de energía de una plataforma de computación. En el desarrollo de esta metodología se ha buscado poder modelar distintos tipos de plataforma, por ejemplo, las denominadas plataformas multi-/many-core, donde un conjunto de procesadores trabajan en paralelo. Para ello, se ha separado el consumo de energía en 3 partes: 1) consumo asociado a la activación de los distintos recursos de la plataforma, 2) consumo debido a las comunicaciones entre recursos de computación y 3) consumo debido al procesamiento dentro de la aplicación. Otra característica importante de la metodología de modelado propuesta es que se desarrollan modelos lineales que utilizan información disponible durante la ejecución, con el objetivo de utilizar los modelos generados para realizar estimaciones del consumo de energía durante la ejecución del sistema. En el caso de la toma de decisiones para optimizar el consumo de energía del sistema, se propone un mecanismo que construye un bucle de optimización de dicho consumo alrededor de un bloque de mapeado/planificación de tareas que busca optimizar la latencia del sistema. Este bucle consiste en, manteniendo el bloque de mapeado/planificación como una caja negra, caracterizar el rendimiento y el consumo de energía de los sistemas generados y modificar las entradas de dicho bloque en consecuencia. Con estas modificaciones, se prueban distintas configuraciones del sistema con el objetivo de escoger la más eficiente en términos de consumo de energía de entre las que cumplen el requisito de rendimiento del sistema. Esta aproximación se puede utilizar en dos contextos: 1) durante el diseño de la aplicación para explorar el espacio de diseño –del inglés Design Space Exploration (DSE)–, y 2) durante la propia ejecución del sistema. Para validar la metodología propuesta para optimizar el consumo de energía, durante el desarrollo de esta tesis se han llevado a cabo dos implementaciones: la primera busca mejorar el proceso de DSE en tiempo de diseño, mientras que la segunda, en cambio, está enfocada a la optimización en tiempo de ejecución. En ambos casos, los 3 bloques que se han explicado con anterioridad se combinan para incorporar la optimización del consumo de energía entre las capacidades de las herramientas de diseño basadas en dataflow que se han escogido para implementar el bucle de optimización. En el caso de la implementación para el tiempo de diseño, se ha escogido un entorno de desarrollo denominado Parallel Real-time Embedded Executives SchedulingMethod (PREESM). Los sistemas generados usando PREESM se monitorizan automáticamente usando la herramienta PAPIFY para obtener la información asociada al tiempo de ejecución y al consumo de energía de dichos sistemas. Tras esto, los datos recogidos se incluyen en el entorno de desarrollo para optimizar los resultados obtenidos con el proceso de DSE, considerando (o no) el consumo de energía. De igual modo, el bucle de optimización en tiempo de ejecución se ha embebido en Synchronous Parameterized and Interfaced Dataflow Embedded Runtime (SPiDER), que es el homólogo de PREESM utilizado cuando la aplicación requiere una gestión de recursos dinámica. En este caso, la información se recoge directamente mediante PAPIFY y se incluye dentro de la caracterización interna de la aplicación que tiene SPiDER. Como resultado, SPiDER es consciente en todo momento del estado y el rendimiento de la aplicación que está ejecutando. Con esta extensión se mejora la capacidad de toma de decisiones de SPiDER durante el proceso de mapeado/planificación de tareas, permitiendo así la búsqueda de la configuración de sistema que sea más eficiente en términos de consumo de energía, basándose en información real de la ejecución en curso. Con el fin de caracterizar los posibles beneficios que se puedan conseguir al aplicar la metodología propuesta, la aplicación que utiliza HSI para detectar tumores se ha implementado a mano en una plataforma many-core llamada Multi-Purpose Processor Array (MPPA). Esta implementación, que se utilizará como base para hacer comparativas, se ha llevado a cabo teniendo como principal objetivo minimizar la latencia de procesamiento, lo que ha llevado a explotar manualmente el paralelismo intrínseco de la aplicación. Al distribuir la carga de trabajo entre los 256 núcleos de procesamiento que tiene la MPPA, se han obtenido aceleraciones de 50£ y 112£ para imágenes de neurocirugía y de dermatología, respectivamente. Una vez implementada la aplicación a mano, se ha llevado a cabo otra implementación de la aplicación, pero esta vez siguiendo la metodología de diseño Y-chart y el modelado dataflow. En este caso, debido a las limitaciones que conlleva utilizar dicho modelado, los tiempos de procesamiento se han multiplicado por 6. Sin embargo, una de las ventajas de esta implementación es que se puede utilizar para optimizar automáticamente la latencia y/o el consumo de energía. En el contexto de este documento se han considerado dos escenarios diferentes con los que se pretende caracterizar completamente la metodología de diseño propuesta: 1) optimización de la latencia del sistema y 2) optimización del consumo de energía del sistema fijando un objetivo de rendimiento. En el segundo escenario, además, se han definido una serie de modos de trabajo en los que se ha incrementado/reducido la importancia que tienen tanto el rendimiento de la aplicación como el consumo de energía dentro de los requisitos del sistema. En el caso de la optimización de latencia, se ha caracterizado la aplicación en términos de tiempos de ejecución utilizando la herramienta PAPIFY, con el fin de proporcionar dicha información tanto a PREESM como a SPiDER. Gracias a esta caracterización, se han conseguido aceleraciones de 1.4£ y 1.3£ al realizar optimizaciones en tiempo de diseño y tiempo de ejecución, respectivamente. Por último, queda demostrada la capacidad de reducir el consumo de energía por parte de las dos implementaciones del bucle de optimización propuesto en este documento, ya que, al incluir el consumo de energía como uno de los parámetros no funcionales a optimizar, dicho consumo se ha reducido en hasta un 30.21% en ambos casos. En este estudio, PAPIFY se ha utilizado para obtener información tanto de los tiempos de ejecución como de los PMCs con el fin de hacer estimaciones del consumo de energía utilizando el modelo desarrollado para la MPPA, el cual ha demostrado tener una precisión por encima del 95% para una aplicación que no se ha utilizado durante el desarrollo del mismo. Como conclusión, se ha demostrado que la metodología propuesta en este documento ha sido capaz de optimizar automáticamente el consumo de energía de un sistema compuesto por una aplicación con una alta demanda de cómputo ejecutada sobre una plataforma compleja. ----------ABSTRACT---------- The growing complexity of both applications and architectures, combined with the tightening of functional and non-functional system requirements, is reaching the frontiers of what can currently be obtained. This is the case of, for example, the application of Hyperspectral Imaging (HSI) to discern between healthy and tumor human tissues. This research line has gained importance in the past few years, as it is a non-invasive and non-ionizing technology capable of accurately delimiting tumor boundaries. Nevertheless, this kind of system requires processing a large amount of data and, depending on the field in which this application is used, the system requirements vary: in the neurosurgical case, detecting tumor boundaries in realtime is necessary to help the specialist during the surgery; in the dermatological domain, energy consumption becomes the most important requirement, since battery-supplied systems should be used. To ease the development of systems where functional and non-functional requirements need to be weighed, design strategies where different tasks are automated (parallelization, code generation, task scheduling, etc) are often used. In the literature, the most extended approaches are those based on Y-chart design. This methodology proposes a separation of concerns, where the application is deployed onto the target architecture considering a set of user-defined constraints; additionally, to deploy these systems, multi-objective optimizations can be considered to fulfill the often opposing system constraints. In this regard, this PhD proposes a Y-chart dataflow-based design methodology whose aim is to include energy consumption within the non-functional requirements to be optimized. This methodology has been built as an iterative optimization loop with the objective of being both application and architecture independent. Specifically, the proposed energy-aware adaptation loop is composed of 3 different modules: monitoring, energy consumption estimation and energy-aware decision making. First, concerning the application monitoring, a dataflow-based monitoring infrastructure called PAPIFY has been built. This new tool retrieves timing and Performance Monitoring Counter (PMC) information at runtime, where, due to the dataflow-oriented approach, the instrumentation of each part of the application is individually set up and each platform computational resource is linked to a specific PMC set. As a result, 1) monitoring of heterogeneous architectures is supported and 2) the application profiling is automatically adapted at runtime, considering the part of the application that each processing element is executing. Secondly, to address the energy consumption estimation, a new platformmodeling methodology is proposed focusing on building application-independent models. The approach has been built keeping in mind its potential applicability to model architectures of different nature, e.g., multi-/many-cores, which leads to models where the energy consumption is divided into 3 contributions: resource-active, communication and computation. Additionally, linear models based on runtime information are built to be able to estimate the energy consumption at runtime. Later, regarding the decision making module, an energy-aware mechanism that builds a loop around latency-based mapping/scheduling algorithms to optimize the system energy consumption has been proposed. This loop consists in using the mapping/scheduling block as a black-box, characterizing the performance and energy consumption of its system deployments and modifying its inputs so as to test different system configurations and keep the one with the lowest energy consumption that reaches the desired performance. This approach has been built so as to be applied in both design time, where Design Space Exploration (DSE) is enhanced, and by a runtime resource manager to performenergy-based optimizations. To validate the methodology, two real implementations of the energy-aware optimization loop have been carried out: one targeting design time DSE enhancement and the other focused on runtime energy consumption optimization. In both cases, the 3 aforementioned modules are combined so as to incorporate energy-awareness capabilities in different dataflow-based design frameworks. On the one hand, the design time implementation has been included within Parallel Real-time Embedded Executives Scheduling Method (PREESM) design framework, where the generated applications are automatically instrumented using PAPIFY to characterize them in terms of timing and energy consumption. These data is then included within PREESM information so as to enhance its latency-based DSE process considering (or not) energy-awareness. On the other hand, the runtime version of the energy-aware optimization loop has been embedded within Synchronous Parameterized and Interfaced Dataflow Embedded Runtime (SPiDER) runtime manager, which is the runtime counterpart of PREESM framework. In this case, the system is iteratively improved with on-thefly information retrieved thanks to PAPIFY and fed to the runtime manager itself. By including this self-awareness of the system execution, SPiDER is able to performbetter decisions during the mapping/scheduling process and, on top of that, to seek the most energy-efficient system configuration based on data of its current execution. To characterize the benefits of applying the proposed methodology, as a baseline to compare with, the HSI cancer detection processing chain has been manually deployed on a many-core architecture called Multi-Purpose Processor Array (MPPA). The main objective of this implementation has been to minimize the latency by exploiting the intrinsic parallelism of the application. As a result, speedups from 50£ to 112£ have been achieved when distributing the workload among the 256 Processing Elements (PEs) of theMPPA, using neurosurgical and dermatological images, respectively. After that, the Y-chart design methodology has been used to define a dataflow version of the application. In this case, in average, the maximum reachable performance has been reduced by 6 due to the limitations of this approach. Nevertheless, the systems generated with this implementation can be automatically optimized in terms of latency or energy consumption. Consequently, two scenarios have been considered to fully characterize the proposed methodology: 1) latencybased optimization and 2) energy-awareness considering a specific performance objective. In the latter, additionally, different working modes are used, weighing performance and energy consumption constraints. In the case of latency-based optimization, both PREESM and SPiDER frameworks have been enhanced with timing profiling information retrieved via PAPIFY. Thanks to this information, speedups up to 1.4£ and 1.3£ are achieved at design time and runtime, respectively. Finally, promising results have been obtained in both energy-aware optimization loop implementations, as they have been able to reduce the system energy consumption in up to a 30.21% in both design time and runtime. In this case, PAPIFY retrieves both timing and PMC information so as to estimate the energy consumption using the model developed for the MPPA, whose estimations –for a real application that has not been included during the architecture modeling– have an accuracy over 95%. Consequently, the design methodology proposed in this PhD has been proven to successfully deal with automatic multi-objective optimization of a highly demanding application when deployed on a complex architecture.