Articulo de referencia

Modelo de línea de techo

Ejemplo de un modelo de línea de techo en su forma básica. Como muestra la imagen, la curva consta de dos techos de rendimiento específicos de la plataforma: el rendimiento máxi...

Ejemplo de un modelo de línea de techo en su forma básica. Como muestra la imagen, la curva consta de dos techos de rendimiento específicos de la plataforma: el rendimiento máximo del procesador y un techo derivado del ancho de banda de la memoria. Ambos ejes están en escala logarítmica

El modelo de línea de techo es un modelo de rendimiento visual intuitivo que se utiliza para proporcionar estimaciones de rendimiento de un núcleo de cómputo o una aplicación determinados que se ejecutan en arquitecturas de procesadores de múltiples núcleos , de muchos núcleos o aceleradores , mostrando las limitaciones inherentes del hardware y los posibles beneficios y prioridades de las optimizaciones . Al combinar la localidad , el ancho de banda y diferentes paradigmas de paralelización en una única 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 de pico, ya que proporciona información sobre la implementación y las limitaciones inherentes del rendimiento.

El modelo de línea de techo más básico se puede visualizar trazando el rendimiento de punto flotante como una función del rendimiento máximo de la máquina [ vago ] [ aclaración necesaria ] , el ancho de banda máximo de la máquina y la intensidad aritmética. La curva resultante es efectivamente un límite de rendimiento por debajo del cual existe el rendimiento del núcleo o de la aplicación, e incluye dos techos de rendimiento específicos de la plataforma [ aclaración necesaria ] : un techo derivado del ancho de banda de la memoria y uno derivado del rendimiento máximo del procesador (ver figura a la derecha).

Trabajar

La métrica denota el número de operaciones realizadas por un núcleo o aplicación determinados. [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 con números enteros , pasando por el número de operaciones de punto flotante (FLOPs), [2] y la elección de una u otra depende de la conveniencia. En la mayoría de los casos, sin embargo, se expresa como FLOPs . [1] [3] [4] [5] [6] Yo {\estilo de visualización W} Yo {\estilo de visualización W}

Tenga en cuenta que el trabajo es una propiedad del núcleo o la aplicación dados y, por lo tanto, depende solo parcialmente de las características de la plataforma. Yo {\estilo de visualización W}

Tráfico de memoria

El tráfico de memoria denota la cantidad de bytes de transferencias de memoria incurridas durante la ejecución del núcleo o la aplicación. [1] A diferencia de , depende en gran medida de las propiedades de la plataforma elegida, como por ejemplo la estructura de la jerarquía de caché . [1] Q {\estilo de visualización Q} Yo {\estilo de visualización W} Q {\estilo de visualización Q}

Intensidad aritmética

La intensidad aritmética , también denominada intensidad operacional , [3] [7] es la relación entre el trabajo y el tráfico de memoria : [1] y denota el número de operaciones por byte de tráfico de memoria. Cuando el trabajo se expresa en FLOP , la intensidad aritmética resultante será la relación entre las operaciones de punto flotante y el movimiento total de datos ( FLOP/byte ). I {\displaystyle I} Yo {\estilo de visualización W} Q {\estilo de visualización Q} I = Yo Q {\displaystyle I={W sobre Q}} Yo {\estilo de visualización W} I {\displaystyle I}

Línea de techo ingenua

Ejemplo de un gráfico de línea de techo ingenuo en el que se informan dos núcleos . El primero (línea roja discontinua vertical) tiene una intensidad aritmética que está por debajo del techo de ancho de banda máximo (línea negra continua diagonal) y, por lo tanto, está limitado por la memoria . En cambio, el segundo (que corresponde a la línea roja discontinua vertical más a la derecha) tiene una intensidad aritmética que está por debajo del techo de rendimiento máximo (línea negra continua horizontal) y, por lo tanto, está limitado por el cálculo . Oh 1 {\estilo de visualización O_{1}} Oh 2 Estilo de visualización O2

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, expresado en general como GFLOPS , se puede derivar habitualmente de la evaluación comparativa , mientras que el ancho de banda máximo, que hace referencia al ancho de banda máximo de DRAM para ser específico, se obtiene a través de manuales de arquitectura. [1] [3] El gráfico resultante, en general con ambos ejes en escala logarítmica , se deriva entonces mediante la siguiente fórmula: [1] donde es el rendimiento alcanzable, es el rendimiento máximo , es el ancho de banda máximo y es la intensidad aritmética. El punto en el que el rendimiento se satura en el nivel de rendimiento máximo , que es donde se encuentran el techo diagonal y horizontal, se define como punto de cresta. [4] El punto de cresta ofrece información sobre el rendimiento general de la máquina, al proporcionar la intensidad aritmética mínima requerida para poder lograr el máximo rendimiento y al sugerir de un vistazo la cantidad de esfuerzo requerido por el programador para lograr el máximo rendimiento. [4] PAG = mín. { π β × I {\displaystyle P=\min {\begin{casos}\pi \\\beta \times I\end{casos}}} PAG {\estilo de visualización P} π {\estilo de visualización \pi} β {\estilo de visualización \beta} I {\displaystyle I} π {\estilo de visualización \pi}

Un núcleo o aplicación determinados se caracterizan entonces por un punto dado por su intensidad aritmética (en el eje x). El rendimiento alcanzable se calcula entonces trazando una línea vertical que llega a la curva de la línea del techo. Por lo tanto, se dice que el núcleo o la aplicación están limitados por la memoria si . Por el contrario, si , se dice que el cálculo está limitado por el cálculo . [1] I {\displaystyle I} PAG {\estilo de visualización P} I π / β {\displaystyle I\leq \pi /\beta } I π / β {\displaystyle I\geq \pi /\beta }

Añadiendo techos al modelo

La línea de techo ingenua proporciona sólo un límite superior (el máximo teórico) para el rendimiento . Aunque todavía puede dar información útil sobre el rendimiento alcanzable, no proporciona una imagen completa de lo que realmente lo limita. Si, por ejemplo, el núcleo o la aplicación considerados funcionan muy por debajo de la línea de techo, puede ser útil capturar otros techos de rendimiento, además del simple ancho de banda máximo y el rendimiento, para guiar mejor al programador sobre qué optimización implementar, o incluso para evaluar la idoneidad de la arquitectura utilizada con respecto al núcleo o la aplicación analizados. [3] Los techos agregados imponen entonces un límite al rendimiento alcanzable que está por debajo de la línea de techo real e indican que el núcleo o la aplicación no pueden superar ninguno de estos techos sin realizar primero la optimización asociada. [3] [4]

El gráfico de la línea del tejado se puede ampliar en tres aspectos diferentes: comunicación , añadiendo los límites de ancho de banda ; computación , añadiendo los denominados límites en el núcleo ; y localidad , añadiendo los muros de localidad .

Techos de ancho de banda

Los límites de ancho de banda son diagonales de ancho de banda ubicadas debajo de la diagonal de ancho de banda pico idealizada. 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 la optimización del software, como la 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 techos internos son curvas similares a las líneas del techo debajo de la línea del techo real que pueden estar presentes debido a la falta de alguna forma de paralelismo . Estos techos limitan efectivamente el alto rendimiento que se puede alcanzar. El rendimiento no puede superar un techo interno hasta que se exprese y explote la falta subyacente de paralelismo. Los techos también se pueden derivar de manuales de optimización arquitectónica distintos de los puntos de referencia. [3] [4]

Muros de la localidad

Si se elimina la suposición ideal de que la intensidad aritmética es únicamente una función del núcleo y se tiene en cuenta la topología de la caché (y, por lo tanto, los errores de caché ), la intensidad aritmética claramente pasa a depender de una combinación de núcleo y arquitectura. Esto puede dar como resultado una degradación del rendimiento en función del equilibrio entre la intensidad aritmética resultante y el punto de cresta . A diferencia de los techos "adecuados", las líneas resultantes en el gráfico de la línea del tejado son barreras verticales a través de las cuales la intensidad aritmética no puede pasar sin optimización. Por este motivo, se las denomina muros de localidad o muros de intensidad aritmética . [3] [4]

Ampliació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 están disponibles en la literatura extensiones que tienen 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 precisión la jerarquía de caché [5] [9] para 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 las características relacionadas, como los FPGA . [11]

Véase también

Referencias

  1. ^ abcdefgh Ofenbeck, G.; Steinmann, R.; Caparros, V.; Spampinato, DG; Püschel, M. (1 de marzo de 2014). "Aplicación del modelo de línea de techo". Simposio internacional IEEE de 2014 sobre análisis de rendimiento de sistemas y software (ISPASS) . pp.  76– 85. doi :10.1109/ISPASS.2014.6844463. ISBN 978-1-4799-3606-9.S2CID206992177  .
  2. ^ David A. Patterson, John L. Hennessy. Organización y diseño de computadoras . pág. 543.
  3. ^ abcdefghij Williams, Samuel W. (2008). Autoajuste del rendimiento en ordenadores multinúcleo (Ph.D.). Universidad de California en Berkeley.
  4. ^ abcdefgh Williams, Samuel; Waterman, Andrew; Patterson, David (1 de abril de 2009). "Roofline: un modelo de rendimiento visual revelador para arquitecturas multinúcleo" (PDF) . Commun. ACM . 52 (4): 65– 76. doi :10.1145/1498765.1498785. ISSN  0001-0782. S2CID  7766361.
  5. ^ ab Ilic, A.; Pratas, F.; Sousa, L. (1 de enero de 2014). "Modelo de línea de techo con reconocimiento de caché: actualización del loft". IEEE Computer Architecture Letters . 13 (1): 21– 24. doi :10.1109/L-CA.2013.6. ISSN  1556-6056. S2CID  9208032.
  6. ^ ab Lorenzo, Oscar G.; Pena, Tomás F.; Cabaleiro, José C.; Pichel, Juan C.; Rivera, Francisco F. (31 de marzo de 2014). "Usando un modelo de línea de techo extendido para entender las afinidades de datos y subprocesos en sistemas NUMA". Anales de programación multinúcleo y GPU . 1 (1): 56– 67. ISSN  2341-3158.
  7. ^ "Modelo de rendimiento de la línea de techo". Laboratorio Nacional Lawrence Berkeley . Consultado el 19 de junio de 2016 .
  8. ^ Kourtis, Kornilios; Goumas, Georgios; Koziris, Nectarios (1 de enero de 2008). "Optimización de la multiplicación de matriz-vector dispersa mediante compresión de índices y valores". Actas de la 5.ª conferencia sobre fronteras informáticas . CF '08. Nueva York, NY, EE. UU.: ACM. pp.  87– 96. CiteSeerX 10.1.1.140.9391 . doi :10.1145/1366230.1366244. ISBN .  9781605580777.S2CID8038147  .
  9. ^ abc Cabezas, VC; Püschel, M. (1 de octubre de 2014). "Extensión del modelo de línea de techo: análisis de cuellos de botella con restricciones microarquitectónicas". Simposio internacional IEEE de 2014 sobre caracterización de cargas de trabajo (IISWC) . pp.  222– 231. doi :10.1109/IISWC.2014.6983061. ISBN 978-1-4799-6454-3. Número de identificación del sujeto  33023605.
  10. ^ Lorenzo, OG; Pena, TF; Cabaleiro, JC; Pichel, JC; Rivera, FF (2014-03-26). "3DyRM: un modelo dinámico de línea de techo 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.
  11. ^ da Silva, Bruno; Braeken, An; D'Hollander, Erik H.; Touhafi, Abdellah (1 de enero de 2013). "Modelado de rendimiento para FPGAs: extensión del modelo Roofline con herramientas de síntesis de alto nivel". Revista internacional de computación reconfigurable . 2013 : 1– 10. doi : 10.1155/2013/428078 . hdl : 1854/LU-4226966 . ISSN  1687-7195.
  • El modelo Roofline: una herramienta pedagógica para el autoajuste de núcleos en arquitecturas multinúcleo
  • Aplicación del modelo Roofline
  • Ampliación del modelo de la línea del tejado: análisis de cuellos de botella con restricciones microarquitectónicas
  • Kit de herramientas para modelar la línea del techo
    • Kit de herramientas para modelos de líneas de techo: una herramienta práctica para el análisis arquitectónico y de programas: publicación relacionada con la herramienta.
  • Diagrama de rendimiento
  • Modelo de línea de techo extendida
  • Intel Advisor - Automatización del modelo Roofline
  • Vídeo de Youtube sobre cómo utilizar Intel Advisor Roofline
Obtenido de "https://es.wikipedia.org/w/index.php?title=Modelo_de_línea_de_techo&oldid=1268531913#Intensidad_aritmética"