
El modelo de línea de techo es un modelo visual intuitivo de rendimiento que proporciona estimaciones de rendimiento de un núcleo de cómputo o aplicación que se ejecuta en arquitecturas de procesadores multinúcleo , de muchos núcleos o aceleradores , al mostrar las limitaciones inherentes del hardware y el beneficio potencial y la prioridad de las optimizaciones . Al combinar la localidad , el ancho de banda y diferentes paradigmas de paralelización en una sola cifra de rendimiento, el modelo puede ser una alternativa eficaz para evaluar la calidad del rendimiento alcanzado en lugar de utilizar simples estimaciones de porcentaje del pico, ya que proporciona información tanto sobre la implementación como sobre las limitaciones inherentes del rendimiento.
El modelo de límite superior más básico se puede visualizar representando gráficamente el rendimiento de punto flotante en función del rendimiento máximo de la máquina , el ancho de banda máximo de la máquina y la intensidad aritmética . La curva resultante es, en efecto, un límite de rendimiento por debajo del cual existe el rendimiento del kernel o de la aplicación, e incluye dos límites de rendimiento específicos de la plataforma : un límite derivado del ancho de banda de la memoria y otro derivado del rendimiento máximo del procesador (véase la figura de la derecha).
Términos relacionados y métricas de rendimiento
Trabajar
La obradenota el número de operaciones realizadas por un núcleo o aplicación determinada. [ 1 ] Esta métrica puede referirse a cualquier tipo de operación, desde el número de puntos de matriz actualizados, hasta el número de operaciones enteras , hasta el número de operaciones de punto flotante (FLOPs), [ 2 ] y la elección de una u otra está determinada por la conveniencia. Sin embargo, en la mayoría de los casos,se expresa en FLOPs . [ 1 ] [ 3 ] [ 4 ] [ 5 ] [ 6 ]
Tenga en cuenta que el trabajoes una propiedad del núcleo o aplicación en cuestión y, por lo tanto, depende solo parcialmente de las características de la plataforma.
Tráfico de memoria
El tráfico de memoriadenota el número de bytes de transferencias de memoria incurridas durante la ejecución del núcleo o la aplicación. [ 1 ] En contraste con,depende en gran medida de las propiedades de la plataforma elegida, como por ejemplo la estructura de la jerarquía de caché . [ 1 ]
Intensidad aritmética
La intensidad aritmética, también denominada intensidad operativa , [ 3 ] [ 7 ] es la relación del trabajoal tráfico de memoria: [ 1 ]y denota el número de operaciones por byte de tráfico de memoria. Cuando el trabajose expresa como FLOPs , la intensidad aritmética resultanteserá la relación entre las operaciones de punto flotante y el movimiento total de datos ( FLOPs/byte ).
Línea de techo ingenua

La línea de techo ingenua [ 3 ] se obtiene aplicando un análisis simple de límites y cuellos de botella. [ 8 ] En esta formulación del modelo de línea de techo, solo hay dos parámetros, el rendimiento máximo y el ancho de banda máximo de la arquitectura específica , y una variable, la intensidad aritmética . El rendimiento máximo, generalmente expresado como GFLOPS , se puede derivar usualmente de pruebas comparativas , mientras que el ancho de banda máximo, que hace referencia al ancho de banda máximo de DRAM para ser específicos, se obtiene en cambio a través de manuales de arquitectura. [ 1 ] [ 3 ] La gráfica resultante, generalmente con ambos ejes en escala logarítmica , se deriva entonces mediante la siguiente fórmula: [ 1 ]dóndees el rendimiento alcanzable,es el máximo rendimiento ,es el ancho de banda máximo yes la intensidad aritmética. El punto en el que el rendimiento se satura en el nivel máximo de rendimiento.El punto donde se unen la diagonal y la horizontal del techo se define como punto de cumbrera. [ 4 ] El punto de cumbrera ofrece información sobre el rendimiento general de la máquina, al proporcionar la intensidad aritmética mínima necesaria para alcanzar el máximo rendimiento y al sugerir de un vistazo la cantidad de esfuerzo que requiere el programador para lograr dicho máximo rendimiento. [ 4 ]
Un núcleo o aplicación determinada se caracteriza entonces por un punto dado por su intensidad aritmética.(en el eje x). El rendimiento alcanzableLuego se calcula dibujando una línea vertical que toca la curva de la línea del techo. Por lo tanto, se dice que el núcleo o la aplicación está limitado por la memoria si. Por el contrario, si, se dice que el cálculo está limitado por el cálculo . [ 1 ]
Agregar techos al modelo
El límite superior ingenuo proporciona solo un límite superior (el máximo teórico) al rendimiento . Si bien puede brindar información útil sobre el rendimiento alcanzable, no ofrece una imagen completa de lo que realmente lo limita. Si, por ejemplo, el kernel o la aplicación considerados rinden muy por debajo del límite superior, podría ser útil capturar otros límites de rendimiento, además del ancho de banda y el rendimiento máximos, para guiar mejor al programador sobre qué optimización implementar, o incluso para evaluar la idoneidad de la arquitectura utilizada con respecto al kernel o la aplicación analizados. [ 3 ] Los límites superiores añadidos imponen entonces un límite al rendimiento alcanzable que está por debajo del límite superior real, e indican que el kernel o la aplicación no puede superar ninguno de estos límites sin antes realizar la optimización asociada. [ 3 ] [ 4 ]
El gráfico de la línea de techo se puede ampliar en tres aspectos diferentes: comunicación , agregando los techos de ancho de banda ; computación , agregando los llamados techos en el núcleo ; y localidad , agregando los muros de localidad .
Un ejemplo de un modelo de techo con límites de ancho de banda añadidos . En este modelo, los dos límites adicionales representan la ausencia de precarga de software y organización NUMA de la memoria .
Un ejemplo de modelo de techo con techos internos añadidos , donde los dos techos añadidos representan la falta de paralelismo a nivel de instrucción y paralelismo a nivel de tarea .
Un ejemplo de modelo de línea de techo con muros de localización . El muro etiquetado como 3 C indica la presencia de los tres tipos de fallos de caché : obligatorios, de capacidad y por conflicto. El muro etiquetado como 2 C representa la presencia de fallos obligatorios y de capacidad, o bien de fallos obligatorios y por conflicto. El último muro indica la presencia únicamente de fallos obligatorios.
límites de ancho de banda
Los límites de ancho de banda son diagonales de ancho de banda situadas por debajo de la diagonal de ancho de banda máximo idealizado. Su existencia se debe a la falta de algún tipo de optimización arquitectónica relacionada con la memoria, como la coherencia de caché , o de optimización de software, como una exposición deficiente de la concurrencia (que a su vez limita el uso del ancho de banda). [ 3 ] [ 4 ]
Techos en el núcleo
Los límites de rendimiento internos son curvas similares a la línea del techo que se encuentran debajo de la línea del techo real y que pueden estar presentes debido a la falta de algún tipo de paralelismo . Estos límites restringen efectivamente el rendimiento máximo que se puede alcanzar. El rendimiento no puede superar un límite de rendimiento interno hasta que se exprese y se aproveche la falta de paralelismo subyacente. Los límites también pueden derivarse de manuales de optimización arquitectónica distintos de los benchmarks. [ 3 ] [ 4 ]
Muros de la localidad
Si se elimina la suposición ideal de que la intensidad aritmética es únicamente función del núcleo, y se tiene en cuenta la topología de la caché (y, por lo tanto, los fallos de caché ), la intensidad aritmética pasa a depender claramente de una combinación de núcleo y arquitectura. Esto puede resultar en una degradación del rendimiento dependiendo del equilibrio entre la intensidad aritmética resultante y el punto de cresta . A diferencia de los techos "apropiados", las líneas resultantes en el gráfico de la línea de techo son barreras verticales que la intensidad aritmética no puede atravesar sin optimización. Por esta razón, se las denomina muros de localidad o muros de intensidad aritmética . [ 3 ] [ 4 ]
Extensión del modelo
Desde su introducción, [ 3 ] [ 4 ] el modelo se ha ampliado aún más para tener en cuenta un conjunto más amplio de métricas y cuellos de botella relacionados con el hardware. Ya disponibles en la literatura hay extensiones que toman en cuenta el impacto de la organización NUMA de la memoria , [ 6 ] de la ejecución fuera de orden , [ 9 ] de las latencias de la memoria , [ 9 ] [ 10 ] y para modelar con mayor detalle la jerarquía de caché [ 5 ] [ 9 ] con el fin de comprender mejor qué es lo que realmente limita el rendimiento e impulsar el proceso de optimización .
Además, el modelo se ha ampliado para adaptarse mejor a arquitecturas específicas y a las características relacionadas, como las FPGA . [ 11 ]
Véase también
Referencias
- 1 2 3 4 5 6 7 8 Ofenbeck, G.; Steinmann, R.; Caparros, V.; Spampinato, DG; Püschel, M. (2014-03-01). "Aplicación del modelo roofline". 2014 IEEE International Symposium on Performance Analysis of Systems and Software (ISPASS) . pp. 76–85 . doi : 10.1109/ISPASS.2014.6844463 . ISBN 978-1-4799-3606-9. S2CID 206992177 .
- ↑ David A. Patterson, John L. Hennessy. Organización y diseño de computadoras . pág. 543.
- 1 2 3 4 5 6 7 8 9 10 Williams, Samuel W. (2008). Optimización automática del rendimiento en computadoras multinúcleo (Ph.D.). Universidad de California en Berkeley.
- 1 2 3 4 5 6 7 8 Williams, Samuel; Waterman, Andrew; Patterson, David (2009-04-01). "Roofline: Un modelo visual de rendimiento perspicaz para arquitecturas multinúcleo" (PDF) . Commun. ACM . 52 (4): 65– 76. doi : 10.1145/1498765.1498785 . ISSN 0001-0782 . S2CID 7766361 .
- 1 2 Ilic, A.; Pratas, F.; Sousa, L. (2014-01-01). "Modelo Roofline con conciencia de caché: Actualizando el ático". IEEE Computer Architecture Letters . 13 (1): 21– 24. doi : 10.1109/L-CA.2013.6 . ISSN 1556-6056 . S2CID 9208032 .
- 1 2 Lorenzo, Oscar G.; Pena, Tomás F.; Cabaleiro, José C.; Pichel, Juan C.; Rivera, Francisco F. (2014-03-31). "Uso de un modelo Roofline extendido para comprender las afinidades de datos e hilos en sistemas NUMA" . Annals of Multicore and GPU Programming . 1 (1): 56– 67. ISSN 2341-3158 .
- ↑ "Modelo de rendimiento de la línea del techo" . Laboratorio Nacional Lawrence Berkeley . Consultado el 19 de junio de 2016 .
- ↑ Kourtis, Kornilios; Goumas, Georgios; Koziris, Nectarios (1 de enero de 2008). "Optimización de la multiplicación matriz-vector dispersa mediante compresión de índices y valores". Actas de la 5.ª conferencia sobre fronteras de la computación . CF '08. Nueva York, NY, EE. UU.: ACM. págs. 87–96 . CiteSeerX 10.1.1.140.9391 . doi : 10.1145/1366230.1366244 . ISBN 9781605580777. S2CID 8038147 .
- 1 2 3 Cabezas, VC; Püschel, M. (2014-10-01). "Ampliando el modelo de línea de techo: Análisis de cuellos de botella con restricciones microarquitectónicas". 2014 IEEE International Symposium on Workload Characterization (IISWC) . pp. 222–231 . doi : 10.1109/IISWC.2014.6983061 . ISBN 978-1-4799-6454-3. S2CID 33023605 .
- ↑ Lorenzo, OG; Pena, TF; Cabaleiro, JC; Pichel, JC; Rivera, FF (26 de marzo de 2014). "3DyRM: un modelo de límite de rendimiento dinámico que incluye información de latencia de memoria". The Journal of Supercomputing . 70 (2): 696– 708. doi : 10.1007/s11227-014-1163-4 . ISSN 0920-8542 . S2CID 5318695 .
- ↑ da Silva, Bruno; Braeken, An; D'Hollander, Erik H.; Touhafi, Abdellah (2013-01-01). "Modelado de rendimiento para FPGA: Ampliación del modelo Roofline con herramientas de síntesis de alto nivel" . International Journal of Reconfigurable Computing . 2013 : 1–10 . doi : 10.1155/2013/428078 . hdl : 1854/LU-4226966 . ISSN 1687-7195 .
Enlaces externos
- El modelo Roofline: una herramienta pedagógica para la optimización automática de núcleos en arquitecturas multinúcleo.
- Aplicación del modelo Roofline
- Ampliación del modelo de línea de techo: análisis de cuellos de botella con restricciones microarquitectónicas
- Kit de herramientas para modelos de líneas de techo
- Kit de herramientas para el modelado de líneas de techo: una herramienta práctica para el análisis arquitectónico y de programas - publicación relacionada con la herramienta.
- Gráfico de rendimiento
- Modelo de techo extendido
- Intel Advisor - Automatización del modelo Roofline
- Vídeo de YouTube sobre cómo usar Intel Advisor Roofline
- Pruebas de software
- Optimización de software