X JORNADAS DE PARALELISMO, LA MANGA DEL MAR MENOR - MURCIA, SEPTIEMBRE 1999 Aplicaciones Multimedia en Pentium II: Impacto en el Rendimiento de su Cache de Datos. Enrique F. Torres, José Luis Briz, Olaya Pastor y Víctor Viñals. Resumen— Las aplicaciones multimedia empiezan a ser importantes en la carga de trabajo de un computador de sobremesa y se prevé que predominarán en un futuro próximo. Estas aplicaciones tienen en común algunas características que no figuraban entre las que guiaron el diseño de los procesadores actuales. Este trabajo estudia el impacto de ocho aplicaciones multimedia pertenecientes al Conjunto MediaBench sobre la jerarquía de memoria de un procesador Celeron (core Mendocino) de Intel. Estas aplicaciones utilizan de forma notable los servicios de entrada/salida del sistema operativo, de modo que para estudiar a fondo su comportamiento es preciso monitorizar la actividad en el mismo, bien simulando el código en modo sistema, bien utilizando registros específicos provistos en algunos procesadores recientes. En este caso hacemos uso de los Contadores Hardware del Pentium II para obtener datos a partir de ejecuciones reales. La conclusión principal es que la presión ejercida sobre el subsistema de memoria es muy débil, y además insensible a la complejidad del conjunto de datos de entrada. Parece por tanto aconsejable una revisión profunda de estos benchmarks y de otros similares, dada su importancia para el diseño de futuras jerarquías de memoria optimizadas para carga multimedia. I. I NTRODUCCIÓN que una aplicación es multimedia si está D relacionada con la imagen o el sonido en cantidades y velocidades similares a las que entiende o ECIMOS produce una persona. Entre ellas podemos incluir el procesado y reconocimiento de documentos, la generación de imágenes (gráficos), la compresión (transmisión y almacenamiento de imagen y sonido), el reconocimiento de voz, el cifrado, etc. Desde el punto de vista del procesador, las aplicaciones multimedia tienen características similares [1]: • Datos de poca precisión (8 ó 16 bits), organizados en estructuras grandes. • Cálculos regulares y simples, con paralelismo inherente, • Requisitos de Tiempo Real, • Múltiples flujos concurrentes (p.ej. video y audio). Este trabajo ha sido financiado en el marco del proyecto TIC980511-C02 de la CICYT. Los autores trabajan en el Depto. de Informática e Ing. de Sistemas de la Univ. de Zaragoza, y pueden ser contactados en {ktm, briz,victor}@posta.unizar.es . • Elevados caudales (anchos de banda, MB/s) entre el procesador y la memoria; pobre localidad temporal. Las características de tiempo real y los altos anchos de banda requeridos están dificultando la integración de aplicaciones que precisen a la vez visualización, cálculo, almacenamiento y transmisión. Aunque la industria produce equipos con el doble de potencia y la mitad de coste cada 18 meses, la demanda multimedia precisa un crecimiento aún más rápido [7]. Sin embargo las características anteriores no dominan en los benchmarks utilizados en el diseño de los actuales procesadores de propósito general, principalmente basados en aplicaciones de cálculo científico[4]. Todo ello está motivando la elaboración de benchmarks alternativos. Uno de ellos es el denominado MediaBench [3], que reúne 19 aplicaciones representativas de la carga multimedia actual, escritas en C y por tanto fácilmente portables a otras máquinas. Por otra parte, se estima que las aplicaciones multimedia se ejecutarán mayoritariamente en sistemas de sobremesa y con arquitectura Intel, pero los estudios publicados han sido realizados siempre sobre plataformas HP, Alpha o SPARC [3, 8, 5, 6]. Por todo lo anterior, el objeto de este trabajo ha sido examinar el comportamiento de algunas aplicaciones del MediaBench sobre la jerarquía de memoria de un procesador Intel orientado a sistemas de sobremesa de bajo coste. Hemos elegido el Intel Celeron core Mendocino, que comparte núcleo con el Pentium II y posee dos niveles de cache integrados en el chip. El primer nivel está partido (16 KBd + 16 KBi), con asociatividades 2 (cache de datos) y 4 (cache de instrucciones). El segundo nivel (128 KB) está unificado y tiene asociatividad 4. El tamaño de bloque es en ambos casos 32B [9]. Las aplicaciones multimedia utilizan de forma notable los servicios de entrada/salida del sistema operativo. Para estudiar a fondo su comportamiento es preciso monitorizar la actividad en el mismo, bien simulando el código en modo sistema, bien utilizando registros específicos provistos en algunos procesadores recientes. No se dispone hasta la fecha de simuladores de la arquitectura Intel que permitan simular código de sistema operativo con eficiencia. Sin embargo el Pentium II, como todos los procesadores Intel a partir del Pentium, está dotado de una serie de registros que permiten monitorizar su actividad interna. En consecuencia hemos optado por utilizar algunos de estos ENRIQUE F. TORRES, JOSÉ LUIS BRIZ, OLAYA PASTOR Y VÍCTOR VIÑALS. registros, adecuados para el estudio de los accesos a memoria. cartando aquellas cuyo tiempo de ejecución se desvía mucho de la media. En lo que sigue se introduce la metodología utilizada (Sección II ), se describe la carga de trabajo (Sección III ) y se discuten los resultados (Sección IV). La Sección V cierra la comunicación recogiendo las principales conclusiones. III. C ARGA DE TRABAJO. TABLA I EVENTOS SELECCIONADOS INST_RETIRED Número total de instrucciones retiradas DATA_MEM_REF Todos los loads y stores, no incluye referencias a e/s. DCU_LINES_IN Total de líneas que han sido introducidas en la cache de datos. CPU_CLK_UNHALTED Ciclos con el procesador no parado, permite discernir ejecución en modo usuario y modo privilegiado. Las mediciones pueden variar por diversos factores. Para poder unificar y comparar entre diferentes ejecuciones se han realizado múltiples muestras, des- G721 Cto. De Datos GSM Hemos desarrollado herramientas para acceder a los contadores bajo el sistema operativo Microsoft Windows NT, pero en este sistema no ha sido posible aislar la actividad de e/s ni controlar los cambios de contexto. Hemos elegido Linux porque la disponibilidad de su código fuente nos ha permitido realizar las modificaciones necesarias en el núcleo para conseguir lo anterior. También se ha modificado e instalado un driver que permite el acceso a los contadores hardware desde una aplicación de usuario, ya que las instrucciones que escriben tanto los contadores como los registros de control deben ejecutarse en modo privilegiado. Los detalles de este trabajo se describen en [11]. De todos los eventos que se pueden medir con estos registros se han seleccionado los muestrados en la Tabla I; cada uno se ha monitorizado en modo usuario y en modo sistema. TABLA II RESUMEN APLICACIONES ELEGIDAS, DATOS EN MILLONES. JPEG De entre los registros específicos del Celeron core Mendocino, se han utilizado los PMC (Performance Monitoring Counters), que permiten monitorizar el comportamiento del procesador [10]. El denominado TSC (Time Stamp Counter) tiene 64 bits, y cuenta los ciclos de reloj que lleva el procesador en marcha. Otros dos registros (CTR0 y CTR1) permiten contar las ocurrencias o la duración de eventos como el número de instrucciones ejecutadas, las referencias a memoria, los fallos en cache de datos o instrucciones, etc. Dos registros de control indican qué eventos se deben monitorizar, si se computan ocurrencias o duración y en que modo de ejecución hacerlo (Usuario o Sistema). MPEG2 II. M ETODOLOGÍA De entre los 19 programas del MediaBench se han seleccionado los 8 que figuran en la Tabla II, que resume el número de instrucciones ejecutadas por cada benchmark según la carga de entrada. Se han escogido porque son representativos del MediaBench en cuanto a tasa de fallos, y porque van acompañados de dos o más conjuntos de datos de entrada. Corresponden a la pareja codificador – decodificador de las siguientes aplicaciones clinton.g721 S_16_44.g721 clinton.g721.pcm g721e S_16_44.pcm clinton.pcm.gsm gsmd S_16_44.pcm.gsm clinton.pcm gsme S_16_44.pcm testimg.jpg jpegd monalisa.jpg testimg.ppm jpege monalisa.ppm test.m2v mpeg2d mei16v2.m2v tek.m2v test.m2v mpeg2e mei16v2.m2v tek.m2v g721d Nº de Instrucciones USR SO Total 271 0,6 272 412 1 413 285 0,3 286 455 0,5 455 73 1 75 116 2 118 177 0,68 179 281 1 282 6 0,32 6 41 2 43 16 0,19 16 126 0,51 126 21 0,34 22 142 1 144 1.002 6 1.008 162 0,52 162 1.336 1 1.337 5.076 11 5.086 • G.721: Implementación de referencia del estándar de compresión de voz del ITU. • GSM: Codificador de voz del estándar Europeo de telefonía móvil digital GSM. • JPEG: Estándar de compresión de imágenes. • MPEG2: Estándar actual dominante para la transmisión de video de alta calidad. Inicialmente el MediaBench disponía de un juego de pruebas de tamaño muy reducido [2, 6]. Sus integradores presentaron posteriormente un segundo juego con tamaños mayores. En el estudio presentamos datos de ambos. Así por ejemplo, en el primer conjunto de datos proporcionado, la imagen suministrada para JPEG tenia unas dimensiones de 227x149 pixels (5756 bytes codificada y 101484 bytes decodificada), mientras que con el segundo se incluye una imagen más compleja, y de 459x703 pixels (31074 y 968046 bytes respectivamente). Para MPEG2 en ambos casos se trata de un video formado por 4 imágenes de 352x240 pixels (calidad similar a VHS) en la primera entrega y de 720x486 pixels (Broadcast) en la segunda. A estos X JORNADAS DE PARALELISMO, LA MANGA DEL MAR MENOR - MURCIA, SEPTIEMBRE 1999 CPI CPI Total 25,000 1,600000 USR 1,400000 SO Total 20,000 1,200000 15,000 1,000000 0,800000 10,000 0,600000 0,400000 5,000 0,200000 jpe ge 2 m pe g2 d1 m pe g2 d2 m pe g2 d3 m pe g2 e1 m pe g2 e2 m pe g2 e3 jpe gd 2 jpe ge 1 jpe gd 1 gs m e2 gs m e1 gs m d2 gs m d1 g7 21 d g7 1 21 d g7 2 21 e g7 1 21 e gs 2 m d gs 1 m d gs 2 m e gs 1 m e jpe 2 gd jpe 1 gd jpe 2 ge jpe 1 m ge2 pe g m 2d1 pe g m 2d2 pe g m 2d3 pe g m 2e1 pe g m 2e2 pe g2 e3 g7 21 d1 g7 21 d2 g7 21 e1 g7 21 e2 0,000 0,000000 RPI RPI Total 1,6000 0,900000 USR SO 1,4000 0,800000 0,700000 1,2000 0,600000 1,0000 0,500000 0,400000 0,8000 Total 0,6000 0,300000 jpe ge 2 m pe g2 d1 m pe g2 d2 m pe g2 d3 m pe g2 e1 m pe g2 e2 m pe g2 e3 jpe gd 2 jpe ge 1 jpe gd 1 gs m e2 g7 21 d g7 1 21 d g7 2 21 e g7 1 21 e gs 2 m d gs 1 m d gs 2 m e gs 1 m e jpe 2 gd jpe 1 gd jpe 2 ge jpe 1 m ge2 pe g m 2d1 pe g m 2d2 pe g m 2d3 pe g m 2e1 pe g m 2e2 pe g2 e3 gs m e1 0,0000 gs m d2 0,2000 0,000000 g7 21 d1 g7 21 d2 g7 21 e1 g7 21 e2 0,100000 gs m d1 0,4000 0,200000 Tasa de Fallos Tasa de Fallos Total 0,160000 0,030000 0,140000 0,025000 0,120000 0,020000 0,100000 0,015000 0,080000 USR SO Total 0,060000 0,010000 jpe gd 1 jpe gd 2 jpe ge 1 jpe ge 2 m pe g2 d1 m pe g2 d2 m pe g2 d3 m pe g2 e1 m pe g2 e2 m pe g2 e3 g7 21 d1 g7 21 d2 g7 21 e1 g7 21 e2 gs m d1 gs m d2 0,000000 g7 21 d g7 1 21 d g7 2 21 e g7 1 21 e gs 2 m d gs 1 m d gs 2 m e gs 1 m e jpe 2 gd jpe 1 gd jpe 2 ge jpe 1 m ge2 pe g m 2d1 pe g m 2d2 pe g m 2d3 pe g m 2e1 pe g m 2e2 pe g2 e3 0,020000 0,000000 gs m e1 gs m e2 0,040000 0,005000 Fig.1. Resultados: CPI, RPI Y Tasa de fallos Agregadas y Disgregadas en modo Usuario (USR), modo Sistema Operativo (S.O.) y su relacción con el total. dos conjuntos de datos se ha añadido uno más pequeño (128x128) suministrado junto con el código para comprobar el correcto funcionamiento y que puede ser representativo de video de baja calidad para su transmisión por Internet. IV. RESULTADOS La Figura 1 resume los resultados obtenidos. El sufijo de cada aplicación indica el conjunto de datos seleccionado. Las métricas obtenidas son : Ciclos por Instrucción (CPI), Referencias por Instrucción (RPI) y tasa de fallos en la memoria cache de datos de primer nivel. Nótense las diferencias de escala entre las graficas de la izquierda y las de la derecha. Comentaremos en primer lugar las actividades de usuario y sistema operativo agregadas. Posteriormente estudiaremos por separado el comportamiento de ambos y su interacción. A Actividad agregada Se distinguen claramente dos grupos de programas, bien diferenciados según su tasa de fallos. En cualquiera de los casos no se llega al 3% y la mayoría no superan un 0,5% de fallos. Sólo parece existir una dependencia evidente entre tasa de fallos y CPI en el decodificador de MPEG2 (mpeg2d). Ateniéndonos al comportamiento experimentado por las aplicaciones según la carga de trabajo se puede observar que la tasa de fallos apenas varía — incluso disminuye, al aumentar la complejidad de los datos— y en cualquier caso no cambia de forma significativa su valor absoluto. Ocurre en general lo mismo para el CPI, exceptuando las aplicaciones mpeg2e y g721d. Si se tiene en cuenta que aproximadamente el 50% de las instrucciones hacen referencia a memoria debería existir una correlación clara entre fallos y CPI. Esto ocurre en jpegd2, jpege2 y mpegd2 al variar la carga de trabajo, lo cual indica que efectivamente puede existir dependencia entre prestaciones y jerarquía de memoria, pero su contribución es relativamente pequeña. ENRIQUE F. TORRES, JOSÉ LUIS BRIZ, OLAYA PASTOR Y VÍCTOR VIÑALS. B Actividad disgregada Las tasas de fallos en modo sistema son muy superiores a las del modo usuario. Sin embargo las métricas globales o agregadas están determinadas de forma casi exclusiva por la actividad en modo usuario, debido a que el número de instrucciones ejecutadas en este último modo es de dos o tres ordenes de magnitud mayor (salvo en el caso jpegd). Por otra parte, al atenernos a los fallos en modo sistema no se observan los dos grupos diferenciables anteriormente según su tasa global de fallos. Tanto en absoluto como en relativo existe una correlación muy evidente entre CPI y tasa de fallos en todas las aplicaciones y bajo cualquier carga de trabajo (salvo quizás en mpeg2e3, cuyo elevado CPI (~21) no guarda relación con su modesta tasa de fallos (~4,5%). El CPI en modo sistema supera en todos los casos ampliamente el valor de 3 (dando de media un 5,39). Ello es posiblemente debido a las instrucciones de movimiento de cadena, que se contabilizan como una única instrucción, aunque cada una de ellas realizan múltiples operaciones y referencias a memoria. Estas instrucciones también explican que la tasa de referencias a memoria por instrucción (rpi) sea también mayor en modo sistema, ya que son las instrucciones que realizan las transferencias entre el buffer de usuario y la buffer-cache de Linux. V. CONCLUSIONES Y LÍNEAS ABIERTAS El MediaBench es una de las propuestas recientes de benchmark multimedia que ha comenzado a utilizarse en estudios sobre procesadores y jerarquías de memoria orientados al desarrollo de sistemas capaces de responder con eficiencia a los requerimientos de las aplicaciones multimedia. Hemos analizado aquí el comportamiento de ocho de los programas que componen este benchmark, sobre la jerarquía de memoria de un procesador Celeron core Mendocino, utilizando algunos de sus registros específicos. La presión ejercida sobre el subsistema de memoria ha resultado ser muy débil, incluso al considerardatos de entrada más complejos que los inicialmente propuestos en el benchmark. Sin embargo, MediaBench está siendo utilizado para dimensionar o proponer mecanismos relacionados con la jerarquía de memoria, por ejemplo, anchos de banda entre niveles [2,5] o algoritmos de prebúsqueda para la cache de datos [8]. En ninguno de estos trabajos se observa el impacto de sus propuestas en el tiempo de ejecución, impacto que en Pentium, y a la luz de los resultados que presentamos puede presumirse pequeño. Las aplicaciones del MediaBench fueron seleccionadas por estar escritas en alto nivel y ser fácilmente portables a distintas máquinas, y por ello no están optimizadas para ninguna implementación. Su sintonización y el uso de las distintas extensiones multimedia (MMX, VIS, MAX) puede hacer que dejen de estar limitadas por CPU y pasen a estar limitadas por memoria [6]. Pero en cualquier caso, parece conveniente proceder a una revisión profunda de las aplicaciones de prueba necesarias para guiar el diseño de una jerarquía de memoria optimizada para carga multimedia. REFERENCIAS [1] K. Diefendorff y Pradeep K. Dubey. How Multimedia Workloads Will Change Processor Design. IEEE Computer, Sep. 97, p.43-45 [2] Jason Fritts, Wayne Wolf and Bede Liu. Understanding Multimedia Application Characteristics for Designing Programable Processors, SPIE Photonics West, Media Processors, Jan 99. [3] Chunho Lee, Miodrag Potkonjak, and William H. MangioneSmith. MediaBench: A Tool for Evaluating and Synthesizing Multimedia and Communications Systems. Proc IEEE/ACM Int. Symp. Micro-architecture (Micro 30), IEEE Press New York, 1997. [4] Ruby B. Lee and Michael D. Smith, Media Processing : A New Design Target. IEEE Micro, August 1996, pp.6-9. [5] Peter Soderquist and Miriam Leeser, Optimizing the Data Cache Performance of a Software MPEG2 Video Decoder., ACM Multimedia 97, Nov. 1997. [6] Parthasarathy Ranganathan, Sarita Adve and Norman P. Jouppi, Performance of Image and Video Procesing with General-Purpose Processors and Media ISA Extensions. 26th ISCA, May 1999 [7] Albert Yu, The Future of Microprocessors. IEEE Micro, Dec 1996, pp. 46-53 [8] D.F. Zucker, M.J. Flynn and R.B. Lee, A Comparison of Hardware Prefetching Techniques For Multimedia Benchmarks. Technical Report CSL-TR-95-683, Diciembre 1995 [9] Intel Corp. Intel® Celeron™ at 266 MHz, 300 MHz, 300A MHz,333 MHz, 366 MHz and 400 Mhz. Intel Application Note 245088 1999. [10] Pentium Processor Family Developer Manual. Intel, Chapter 16, 1997 [11] Olaya Pastor Ibanez. Medidas de Rendimiento en Pentium con contadores hardware: Métodos e Interpretación. Proyecto Final de Carrera, Centro Politécnico Superior, Universidad de Zaragoza. c/María de Luna, 3 50015 Zaragoza. Julio 1999