1 / 60

2 primeros años en el Departamento:

Mi trabajo en el departamento. 2 primeros años en el Departamento: Optimización de la Transformada Wavelet en Microprocesadores de propósito general a) Mejorar el acceso a memoria de la transformada b) Paralelizar y vectorizar la transformada. Mi trabajo en el departamento.

darryl
Download Presentation

2 primeros años en el Departamento:

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Mi trabajo en el departamento 2 primeros años en el Departamento: Optimización de la Transformada Wavelet en Microprocesadores de propósito general a) Mejorar el acceso a memoria de la transformada b) Paralelizar y vectorizar la transformada

  2. Mi trabajo en el departamento 2 últimos años en el Departamento: Estudio de técnicas para la mejora en el consumo de potencia a) Mejora del predictor de saltos de cara al consumo por medio de profiling b) Extensión de las técnicas anteriores por medio del compilador (TRABAJO ACTUAL) c) Mejora de la LSQ de cara al consumo (TRABAJO ACTUAL)

  3. C U M Reducción de la Complejidad y el Consumo de Potencia del Predictor de Saltos

  4. Problema en el Consumo de Potencia Circuitos integrados cada vez más complicados Consumo cada vez mayor • Vida de las baterías menor • Se hace cada vez más complicado disipar todo el calor que desprende el chip • Costes de empaquetado y de “sistemas de enfriamiento” están aumentando mucho • Puede llegarse a un límite tecnológico en los “sistemas de enfriamiento”

  5. Nuestro Objetivo • Reducir el consumo del Predictor de Saltos del Procesador, ya que constituye un factor importante en el consumo total del procesador (En torno al 10%) • ¿Cómo conseguirlo? Adaptando el predictor en cada momento a las necesidades del programa ¡¡ CUIDADO !! Es muy importante no aumentar el % de fallos del predictor, pues más fallos implican más ejecuciones especulativas incorrectas

  6. Lo que voy a explicar • Resumiré el funcionamiento de los Predictores de Salto • Describiré el punto de partida de nuestro trabajo: • 3 trabajos relacionados con el Low-Power • Explicaré nuestro trabajo y resultados obtenidos • Trabajo actual y futuro

  7. Predictores de Saltos

  8. Predictores de Salto • Los saltos son un factor crítico en el rendimiento del pipe (1 de cada 6 instrucciones son de salto) • La búsqueda de instrucciones se para hasta que: SALTOS CONDICIONALES: • La condición es evaluada • La dirección de la siguiente instrucción se conoce SALTOS INCONDICIONALES: • La dirección de la siguiente instrucción se conoce • Para aliviar el problema: Predictor de Saltos

  9. Esquema general del Predictor PC+4 PC I CACHE BTB Predictor de Dirección

  10. Clasificación de los Predictores • Existen muchos tipos distintos de predictores, que se pueden clasificar en dos grupos: • Predictores estáticos (basados en compilación o profiling) • Predictores dinámicos • Los predictores más estudiados y utilizados han sido los dinámicos • De las dos estructuras, presentaré en detalle los distintos Predictores de Dirección existentes, pues la BTB no es más que una cache

  11. Tipos de Predictores Predictor Estático Predictor Bimodal Predictor basado en Historia Global Predictor basado en Historia Local Predictores Gselect y Gshare Predictores Híbridos

  12. Predictor Estático • Ejemplo: considerar todos los saltos como tomados o no tomados. • Todos los saltos no tomados: • Peor porcentaje de aciertos • No requiere BTB • Todos los saltos tomados: • Mejor porcentaje de aciertos • Requiere BTB

  13. Predictor Bimoldal • Asigna contadores de 2 bits a cada entrada de la tabla • Cuando el salto es TOMADO Incrementa contador • Cuando el salto es NO TOMADO Decrementa contador • La predicción viene dada por el bit más significativo

  14. Predictor Bimoldal ¿Por qué utilizar 2 bits? 0000 R1=100 for(i=0;i<100;i++) 0001 FOR: OPERACIONES 0010 OPERACIONES end 1000 R1-- 1001 Salta a FOR si R1>0 0 1 00 01 10 11

  15. Predictores basados en historia Solucionan problemas de aliasing existentes en el Bimodal Utilizan dos tablas, la primera contiene una historia de los últimos saltos que han llegado, y la segunda, que se accede con bits de la primera, contiene la predicción

  16. Predictores basados en historia

  17. Predictor de Historia Global La primera tabla tiene una única entrada

  18. Predictor de Historia Local La primera tabla tiene una entrada para cada salto o conjunto

  19. Ejemplo: El problema del Bimodal PROBLEMA EN EL BIMODAL: 0001 FOR: 0010 IF: 0011 Salta a IF si … 0100 OPERACIONES 1011 Salta a FOR si R1>0 00 01 10 11 01 10

  20. Ejemplo: La Solución 0001 FOR: 0011 IF: 0011 Salta a IF si … 0100 OPERACIONES 1011 Salta a FOR si R1>0 0 0 00 0 1 0 0 01 0 1 1 0 1 0 1 1 10 0 0 11

  21. Predictor de Historia Gselect Igual que el de historia global, pero añade información del PC para acceder a la tabla

  22. Predictor de Historia Gshare Igual que el de historia global, pero hace una XOR entre el PC y el registro de historia

  23. Predictor Híbrido Idea presentada inicialmente por McFarling Debido a que distintos tipos de predictores se comportan mejor para unos casos y peor para otros, lo ideal sería tener un predictor compuesto de varios, que realice la predicción con el más adecuado en cada momento Predictor Híbrido

  24. Esquema general de un Predictor Híbrido

  25. Tipos de Predictores estudiados Predictor Estático Predictor Bimodal Predictor basado en Historia Global Predictor basado en Historia Local Predictores Gselect y Gshare Predictores Híbridos

  26. Punto de Partida para nuestro trabajo

  27. Tres trabajos previos • Michael Huang y Josep Torrellas: “Positional Adaptation of Processors: Application to Energy Reduction” Introduce el concepto de “Adaptación Posicional” • Dharmesh Parikh y Kevin Skadron: “ Power Issues Related to Branch Prediction” Estudia distintas técnicas para reducir el consumo del predictor de saltos. • Se-Hyun Yang “An Integrated Circuit Approach to reducing Leakage in Deep-Submicron High-Performance I-Caches” Propone una forma de reducir el número de sets activos de la cache, dependiendo de la demanda que haya con memoria

  28. La Adaptación del Procesador PROCESADOR ADAPTATIVO: Procesador capaz de adaptarse a las necesidades de la aplicación El campo principal de utilización de los PROCESADORES ADAPTATIVOS es el del bajo consumo. • Usando Técnicas de Bajo Consumo (LPT), se puede reducir mucho el consumo del procesador, a costa de una pequeña pérdida en el rendimiento. • Si se pueden activar o desactivar esas técnicas de forma dinámica, obtenemos una menor pérdida de rendimiento Por ejemplo: LPT que nos permite consumir menos potencia en el acceso a la cache, simplemente haciéndola más pequeña. Sería conveniente desactivar la cache cuando no haya muchos accesos a memoria, y en cambio reactivarla cuando tengamos una gran demanda a memoria.

  29. La “Adaptación Temporal” • El problema es que conseguir una adaptación eficiente es difícil • Casi todos los sistemas adaptativos propuestos hasta ahora realizaban una “Adaptación Temporal” • Mediante profiling/compilación se determina el intervalo óptimo • La técnica adaptativa, se activa o desactiva por intervalos. La decisión de activar o no la técnica, se toma basándose en los intervalos anteriores

  30. La “Adaptación Temporal” Por ejemplo: LPT que al activarse hace que se consuma menos potencia en el acceso a la cache. Cada ciclo se decide si se adapta (A) o no (N) en función de un voto de lo hecho en los 3 últimos intervalos Historia (t-2): AAA Decisión A Los contadores nos revelan que hay muchos fallos, por lo que sería mejor no desactivar la cache Historia (t-1): AAN Decisión A Historia (t): ANN Decisión N

  31. La “Adaptación Posicional” • En el trabajo que mencioné anteriormente, se estudió la idea de la “Adaptación Posicional” • Mediante profiling/compilación se clasifica el código en módulos • La técnica adaptativa, se activa o desactiva según la posición en la que nos encontremos en el código, es decir, según el módulo en el que nos encontremos. Por ejemplo: LPT que al activarse hace que se consuma menos potencia en el acceso a la cache. Se toman medidas de profiling para guiar la activación/desactivación en cada módulo.

  32. La “Adaptación Posicional” del Predictor de Saltos • En la adaptación del Predictor de Saltos parece lógico utilizar la segunda técnica, la “Adaptación Posicional” • El código tiene un fuerte efecto en la demanda del predictor • El comportamiento de muchos saltos tiene un sesgo definido • De hecho, el acceso a las tablas del predictor se basan en su dirección (PC)

  33. La PPD del segundo trabajo PC+4 PC I CACHE BTB Predictor de Dirección

  34. La PPD del segundo trabajo PC+4 PC I CACHE PPD BTB Predictor de Dirección

  35. La desactivación de sets del tercer trabajo PC+4 PC I CACHE BTB POCA DEMANDA DESACTIVAR UNA PARTE Predictor de Dirección

  36. La desactivación de sets del tercer trabajo PC+4 PC I CACHE BTB DESACTIVADO Selective-Sets Predictor de Dirección

  37. Tres trabajos previos “Adaptación Posicional” PPD Selective-Sets

  38. Adaptación del Predictor

  39. Introducción Consumo de Potencia: Factor crítico en los procesadores actuales Los procesadores utilizan tablas muy grandes para el Predictor de Saltos: Consumo del 10% En nuestro trabajo utilizamos el Predictor de Dirección 2Bc-gskew-pskew, y una BTB de 4096 entradas

  40. Entorno de Simulación Utilizamos el SimpleScalar junto con el Wattch para realizar las simulaciones Empleamos los SPEC-2000 como benchmarks para las medidas

  41. Recordatorio de un Predictor Híbrido

  42. El Predictor de Dirección 2Bc-gskew-pskew Meta2 PA 1 Majority Vote MUX PA PREDICTION MUX B MUX SKEW PREDICTOR • 2 GA Predictor • 2 PA Predictor • 1 Bimodal Predictor • 2 Chooser Tables GA MUX Majority Vote GA 1 Meta1

  43. Idea • Reducir el consumo de potencia del Predictor de Saltos, ajustando de forma dinámica su complejidad (Predicción bajo demanda) • Se particiona la aplicación en módulos, se caracteriza la demanda de cada módulo por medio de Profiling, y se instrumenta la aplicación para reconfigurar el predictor en tiempo de ejecución • Técnicas de Reconfiguración: Access gating Structure resizing

  44. Esquema general del Predictor PC+4 PC I CACHE BTB Predictor de Dirección

  45. Recordatorio de la Estructura del Predictor PC+4 PC I CACHE STRUCTURE RESIZING BTB Predictor de Dirección ACCESS GATING

  46. ¿Por qué adaptar el Predictor de Dirección?

  47. ¿Por qué adaptar el Predictor de Dirección? BZIP

  48. Predictor Adaptativo mediante ACCESS GATING Meta2 PA 1 Majority Vote MUX PA PREDICTION MUX B MUX GA MUX Majority Vote GA 1 Meta1

  49. STRUCTURE RESIZING: ¿Por qué adaptar la BTB?

  50. STRUCTURE RESIZING: ¿Por qué adaptar la BTB? MP3DEC

More Related