El cómputo matricial está presente en multitud de ámbitos de la vida cotidiana, como pueden ser aplicaciones científicas, financieras o de ingeniería. Como ejemplo ilustrativo, el cálculo matricial es la base sobre la que se sustentan técnicas tan conocidas como el Machine Learning o la inferencia en redes neuronales. Estas técnicas son extensamente utilizadas en la actualidad para el tratamiento de grandes volúmenes de datos e inteligencia artificial, pero sin una buena librería de cómputo matricial que les permita realizar las computaciones de manera óptima su aplicabilidad se vería seriamente comprometida.
Por otro lado, en los últimos años los diseños de los computadores se han visto influenciados en gran medida por el consumo energético. En este sentido, los principales diseñadores y fabricantes de microprocesadores han apostado por proporcionar núcleos computacionales con distintas capacidades de cómputo orientados a realizar tareas con diferentes requisitos dentro de un mismo microprocesador. Los últimos diseños de empresas líderes en el sector, como son Intel o Apple, han apostado por proporcionar procesadores con núcleos conocidos como “Eficientes” destinados a tareas sin requisitos de tiempo de real y con núcleos de “Rendimiento” destinados a completar las tareas en el menor tiempo.
En este proyecto se pretenden evaluar diversos aspectos, tales como rendimiento, consumo energético y eficiencia, que pueden ser derivados de las ejecuciones de las librerías de cómputo matricial más ampliamente utilizadas en la actualidad. Como arquitectura de microprocesador destino se propone el uso de la última generación de procesadores Intel core, conocida como Intel Raptor Lake.
Como paso final a este proyecto se realizará una implementación optimizada de alguna rutina de cómputo matricial que sea capaz de utilizar de manera conjunta todos los recursos computacionales disponibles en el computador objeto de estudio.
Se llevarán a cabo reuniones periódicas semanales/bisemanales en las que se hará un control del progreso del siguiente plan de trabajo dividido en las fases que se indican a continuación:
- Fase 1: Estudio del funcionamiento y las características de las librerías de cómputo matricial más ampliamente utilizadas en la actualidad. Esta fase consiste en la lectura de trabajos, manuales, etc... que detallan cómo funcionan.
- Fase 2: Estudio del funcionamiento y las características de la arquitectura de procesador objeto del estudio: Intel Raptor Lake. Esta fase consiste en la lectura de trabajos, manuales, etc... que detallan cómo funcionan y cuáles son sus características principales.
- Fase 3: Estudio del marco comparativo a utilizar y ejecución de las pruebas. En esta fase se establecerán las condiciones que se utilizarán durante la comparativa y se realizará la misma. Se estudiarán varias librerías para ver el impacto que tienen las diferentes implementaciones en el rendimiento obtenido. Durante la ejecución y análisis de los resultados se debe identificar si existen ciertos aspectos a mejorar para obtener ejecuciones óptimas en la arquitectura de microprocesador destino.
- Fase 4: Tras la identificación de los aspectos a mejorar, se realizará una implementación optimizada de alguna rutina de cómputo matricial que sea capaz de utilizar de manera conjunta todos los recursos computacionales disponibles en el computador objeto de estudio.
- Fase 5: Escritura, recogida de datos y finalización de la memoria. Una vez finalizadas todas las pruebas, se recogerán datos y se procesarán para su inclusión en la memoria. Con los datos preparados, se realizará un análisis de los mismos para obtener las conclusiones y así finalizar la memoria.
Las competencias desarrolladas a lo largo de este proyecto son:
[CO19] Ejercicio original a realizar individualmente y presentar y defender ante un tribunal universitario, consistente en un proyecto de naturaleza profesional en el ámbito de la tecnología específica de la Ingeniería en Informática que ha realizado el estudiante. En este ejercicio se deben sintetizar e integrar las competencias adquiridas en las enseñanzas.
[IC3] Capacidad de analizar y evaluar arquitecturas de computadores, incluyendo plataformas paralelas y distribuidas, así como desarrollar y optimizar software para las mismas.
[TI2] Capacidad para seleccionar, diseñar, desplegar, integrar, evaluar, construir, gestionar, explotar y mantener las tecnologías de hardware, software y redes, dentro de los parámetros de coste y calidad adecuados.
[UCLM3] Correcta comunicación oral y escrita.
[INS1] Capacidad de análisis, síntesis y evaluación.
[INS2] Capacidad de organización y planificación.
[SIS5] Creatividad.
La documentación que será necesaria manejar está totalmente disponible en línea y será proporcionada por los tutores del TFG. Fundamentalmente será:
- Características del microprocesador objeto de estudio. Manuales oficiales proporcionados por Intel.
- Caracterizaciones de los componentes hardware objeto de estudio realizadas por expertos (revisiones técnicas de productos).
- Manuales de ejecución de las librerías de cómputo matricial.