54 research outputs found

    Thread-spawning schemes for speculative multithreading

    Get PDF
    Speculative multithreading has been recently proposed to boost performance by means of exploiting thread-level parallelism in applications difficult to parallelize. The performance of these processors heavily depends on the partitioning policy used to split the program into threads. Previous work uses heuristics to spawn speculative threads based on easily-detectable program constructs such as loops or subroutines. In this work we propose a profile-based mechanism to divide programs into threads by searching for those parts of the code that have certain features that could benefit from potential thread-level parallelism. Our profile-based spawning scheme is evaluated on a Clustered Speculative Multithreaded Processor and results show large performance benefits. When the proposed spawning scheme is compared with traditional heuristics, we outperform them by almost 20%. When a realistic value predictor and a 8-cycle thread initialization penalty is considered, the performance difference between them is maintained. The speed-up over a single thread execution is higher than 5x for a 16-thread-unit processor and close to 2x for a 4-thread-unit processor.Peer ReviewedPostprint (published version

    Thread partitioning and value prediction for exploiting speculative thread-level parallelism

    Get PDF
    Speculative thread-level parallelism has been recently proposed as a source of parallelism to improve the performance in applications where parallel threads are hard to find. However, the efficiency of this execution model strongly depends on the performance of the control and data speculation techniques. Several hardware-based schemes for partitioning the program into speculative threads are analyzed and evaluated. In general, we find that spawning threads associated to loop iterations is the most effective technique. We also show that value prediction is critical for the performance of all of the spawning policies. Thus, a new value predictor, the increment predictor, is proposed. This predictor is specially oriented for this kind of architecture and clearly outperforms the adapted versions of conventional value predictors such as the last value, the stride, and the context-based, especially for small-sized history tables.Peer ReviewedPostprint (published version

    Data speculative multithreaded architecture

    Get PDF
    We present a novel processor microarchitecture that relieves three of the most important bottlenecks of superscalar processors: the serialization imposed by true dependences, the relatively small window size and the instruction fetch bandwidth. The new architecture executes simultaneously multiple threads of control obtained from a single program by means of control speculation techniques that do not require any compiler/user support nor any special feature in the instruction set architecture. The multiple simultaneous threads execute different iterations of the same loop, which require the same fetch bandwidth as a single thread since they share the same code. Inter-thread dependences as well as the values that flow through them are speculated by means of data prediction techniques. The preliminary evaluation results show a significant speed-up when compared with a superscalar processor. In fact, the new processor architecture can achieve an IPC (instructions per cycle) rate even larger than the peak fetch bandwidthPeer ReviewedPostprint (published version

    Visibility rendering order: Improving energy efficiency on mobile GPUs through frame coherence

    Get PDF
    During real-time graphics rendering, objects are processed by the GPU in the order they are submitted by the CPU, and occluded surfaces are often processed even though they will end up not being part of the final image, thus wasting precious time and energy. To help discard occluded surfaces, most current GPUs include an Early-Depth test before the fragment processing stage. However, to be effective it requires that opaque objects are processed in a front-to-back order. Depth sorting and other occlusion culling techniques at the object level incur overheads that are only offset for applications having substantial depth and/or fragment shading complexity, which is often not the case in mobile workloads. We propose a novel architectural technique for mobile GPUs, Visibility Rendering Order (VRO), which reorders objects front-to-back entirely in hardware by exploiting the fact that the objects in graphics animated applications tend to keep its relative depth order across consecutive frames (temporal coherence). Since order relationships are already tested by the Depth Test, VRO incurs minimal energy overheads because it just requires adding a small hardware to capture that information and use it later to guide the rendering of the following frame. Moreover, unlike other approaches, this unit works in parallel with the graphics pipeline without any performance overhead. We illustrate the benefits of VRO using various unmodified commercial 3D applications for which VRO achieves 27% speed-up and 14.8% energy reduction on average over a state-of-the-art mobile GPU.Peer ReviewedPostprint (author's final draft

    Rendering Elimination: Early Discard of Redundant Tiles in the Graphics Pipeline

    Full text link
    GPUs are one of the most energy-consuming components for real-time rendering applications, since a large number of fragment shading computations and memory accesses are involved. Main memory bandwidth is especially taxing battery-operated devices such as smartphones. Tile-Based Rendering GPUs divide the screen space into multiple tiles that are independently rendered in on-chip buffers, thus reducing memory bandwidth and energy consumption. We have observed that, in many animated graphics workloads, a large number of screen tiles have the same color across adjacent frames. In this paper, we propose Rendering Elimination (RE), a novel micro-architectural technique that accurately determines if a tile will be identical to the same tile in the preceding frame before rasterization by means of comparing signatures. Since RE identifies redundant tiles early in the graphics pipeline, it completely avoids the computation and memory accesses of the most power consuming stages of the pipeline, which substantially reduces the execution time and the energy consumption of the GPU. For widely used Android applications, we show that RE achieves an average speedup of 1.74x and energy reduction of 43% for the GPU/Memory system, surpassing by far the benefits of Transaction Elimination, a state-of-the-art memory bandwidth reduction technique available in some commercial Tile-Based Rendering GPUs

    Análisis de ciclo de vida del uso urbano del agua en Zaragoza

    Get PDF
    Con este Proyecto Fin de Carrera se acomete un Análisis de Ciclo de Vida centrado en el uso urbano del agua en la ciudad de Zaragoza., destinado a conocer los impactos ambientales generados por el mismo. El estudio se divide en diferentes comparativas que analizan los impactos de todos los aspectos que caracterizan este uso, tales como: tecnologías ACS, individual/comunitario, doméstico/comercial, uso de energía solar térmica para ACS y por último el uso urbano completo. Para realizar todos los análisis se ha utilizado el software SimaPro 7.2 siguiendo las directrices que proponen las normativas de referencia ISO para este tipo de trabajos. El calculo de los impactos se ha llevado a cabo con tres métodos: IPCC 2007, ReCiPe Midpoint y Eco-indicador 99. En la etapa de montaje se han tenido en cuenta todos los materiales relacionados de alguna manera con el agua (tuberías, tecnologías ACS, electrodomésticos, útiles de baño). Para la fase de operación se han incluido consumos energéticos para generar agua caliente (gas natural, gasoil, electricidad), el consumo eléctrico asociado a los electrodomésticos, así como el uso de detergentes y jabones. Los resultados de los diferentes estudios muestran que el uso urbano es la fase del ciclo integral del agua que mayor impacto genera y que, dentro de éste, la operación supone la mayor parte de la huella, muy por encima del montaje. Las tecnologías de generación de ACS más respetuosas con el medioambiente son las que utilizan como combustible gas natural, aunque el uso de electricidad también es muy válido debido a la gran participación de energías renovables en la producción eléctrica española. Del estudio de solar térmica, se extrae la conclusión de que se debe incentivar la instalación de este tipo de sistemas, ya que reducen en gran medida (~50%) los impactos. Por último, este trabajo se centra en la cuantificación de los impactos medioambientales del uso urbano del agua en Zaragoza, pero también debe servir como base para encontrar acciones que lleven a la reducción de esa huella en el entorno en la medida de lo posible, teniendo en cuenta que Zaragoza es una ciudad de tamaño medio y por lo tanto los impactos siempre van a ser elevados

    Hacia la sostenibilidad: el papel del emprendimiento social en la creación de valor socioeconómico en las empresas sociales de energía renovable

    Get PDF
    This study explores the scope of social entrepreneurship and examines how social entrepreneurship contributes to sustainable development. Using analysis and relevant comparisons, it identifies main actors in the socialenterprise ecosystem, as well as how the entrepreneurial ecosystem adapts to social enterprises. Additionally, this study reveals how social enterprise applies in the renewable energy domain and identifies its main advantages, as well as major barriers and how to overcome those barriers. Fundamentally, this study’s findings have significant implications, for academics and practitioners in the social field. It highlights the role of social entrepreneurship as a balanced approach for long-run increases in quality of life, and it follows innovative techniques and methods to meet social needs, inherently motivated by ethical factors in equality and social fairness. On the other hand, main challenges that could confront social entrepreneurship include government regulations, problems adopting advanced technology and infrastructure, external competitive threats, limited access to public funds or loans, lack of awareness and acquisition of skills and knowledge, and inadequate knowledge about social impact measurement techniques. This research also illustrates how to adapt Isenberg's model for the entrepreneurial ecosystem in the social enterprises, which shows that the evolution of social enterprises does not occur in a vacuum; rather, the growth of social enterprise ecosystems occurs through interactions and networks with various actors in different fields such as financial politics, law, and academia. Finally, we review the practical applications of social enterprises by highlighting the main benefits of RE social enterprises: energy savings, community awareness, and the creation of favorable social externalities in rural and developing areas.Este estudio explora el alcance del emprendimiento social y examina cómo el emprendimiento social contribuye al desarrollo sostenible. Utilizando análisis y comparaciones relevantes, identifica a los principales actores en el ecosistema de la empresa social, así como también cómo el ecosistema empresarial se adapta a las empresas sociales. Además, este estudio revela cómo la empresa social se aplica en el dominio de las energías renovables e identifica sus principales ventajas, así como las principales barreras y cómo superar esas barreras. Fundamentalmente, los hallazgos de este estudio tienen implicaciones significativas para académicos y profesionales en el campo social. Destaca el papel del emprendimiento social como un enfoque equilibrado para aumentar la calidad de vida a largo plazo, y sigue técnicas y métodos innovadores para satisfacer las necesidades sociales, inherentemente motivados por factores éticos en la igualdad y la justicia social. Por otro lado, los principales desafíos que podría enfrentar el emprendimiento social incluyen regulaciones gubernamentales, problemas para adoptar tecnología e infraestructura avanzada, amenazas competitivas externas, acceso limitado a fondos o préstamos públicos, falta de conciencia y adquisición de habilidades y conocimiento, y conocimiento inadecuado sobre las técnicas de medición del impacto social. Esta investigación también ilustra cómo adaptar el modelo de Isenberg para el ecosistema emprendedor en las empresas sociales, que muestra que la evolución de las empresas sociales no ocurre en el vacío; más bien, el crecimiento de los ecosistemas de empresas sociales ocurre a través de interacciones y redes con varios actores en diferentes campos, como la política financiera, el derecho y la academia. Finalmente, revisamos las aplicaciones prácticas de las empresas sociales destacando los principales beneficios de las empresas sociales de energías renovables: ahorro de energía, conciencia comunitaria y la creación de externalidades sociales favorables en áreas rurales y en desarrollo.Escuela de Estudios CooperativosFac. de Ciencias Económicas y EmpresarialesTRUEpu

    Speculative multithreaded processors

    Get PDF
    En esta tesis se estudia el modelo de ejecución de los procesadores multithreaded especulativos así como los requisitos necesarios para su implementación. El modelo de ejecución se basa en la inserción de instrucciones de spawn dentro del código secuencial. De esta manera, la ejecución de un programa en estos procesadores es similar a cualquier otro hasta que se encuentra con un punto de spawn. Entonces, se crea un nuevo thread especulativo en el punto indicado por la instrucción de spawn y ambos threads se ejecutan en paralelo. Cuanto el thread creador llega al punto inicial del thread especulativo, se ha de verificar si la especulación ha sido correcta. En ese caso, el contexto del thread no especulativo se gradúa y se libera para uso futuro de más threads especulativos. En caso de que la verificación no haya sido correcta, se recupera el estado correcto. En este modelo de ejecución siempre hay un thread no especulativo y puede haber múltiples threads especulativos.Para soportar este modelo de ejecución, se necesita: i) hardware capaz de crear y gestionar threads especulativo y ii) un mecanismo de particionado para dividir los programas en threads especulativos. Se han estudiado varias plataformas para gestionar threads de forma concurrente. Por un lado, los procesadores clustered se benefician de menores retardos, menor potencia consumida y una menor complejidad aunque las latencias de comunicación sean mayores. Por otro lado, las arquitecturas centralizadas se benefician del hecho de compartir recursos y menor latencia de comunicación, pero la complejidad del hardware es mucho mayor. En cualquier caso, el hardware ha de ser capaz de ejecutar múltiples threads simultáneamente con el inconveniente de que algunos valores van a tener que compartirse mientras que otros son copias privadas. Es decir, el procesador deberá ser capaz de gestionar múltiples versiones de un mismo registro o posición de memoria para cada uno de los threads que se estén ejecutando.Además, se ha puesto especial énfasis en la gestión de las dependencias de datos entre los threads especulativos ya que tienen un impacto muy importante en el rendimiento del procesador. Encontrar threads independientes es casi imposible en aplicaciones irregulares, por tanto los threads especulativos necesitarán de valores producidos por otros threads especulativos. Se han estudiado dos mecanismos: sincronizar el thread productor y el thread consumidor y predecir los valores dependientes. En el primer caso, se han propuesto mecanismos para pasar el valor tan pronto como ha sido producido del productor al consumidor, especialmente en el caso de valores de memoria. Por otro lado, el segundo modelo es mucho más atrayente ya que si todos los valores dependientes fueran predichos de forma correcta, los threads pasarían a ejecutarse de forma independiente. Se han evaluado múltiples predictores de valores propuestos en la literatura y se ha presentado un nuevo predictor especialmente pensado para este tipo de arquitecturas que es el predictor de incremento. Este predictor usa la información de control de los threads especulativos para predecir los valores y los resultados obtenidos son muy prometedores aún con tamaños muy reducidos del predictor. Finalmente, el particionado de las aplicaciones afecta al rendimiento de este tipo de procesadores. Se han propuesto y evaluado varios esquemas de particionado. Una familia de estos esquemas asigna threads especulativos a construcciones de programa que por si solas proporcionan cierta independencia de control. Políticas de esta familia son aquellas que crean threads especulativos en iteraciones de bucles, continuaciones de bucles y continuaciones de subrutinas. La segunda familia de esquemas de particionadose ayuda de un análisis basado en profiling para encontrar las parejas de spawn más idóneas para cada uno de los códigos. De esta manera, aquellas partes del programa que cumplan las mejores características se seleccionan para crear threads especulativos. Algunos criterios de selección que han sido considerados en esta tesis han sido: la independencia de control, el tamaño mínimo de los threads, la independencia de datos y su predictabilidad. Los resultados obtenidos por ambas familias han sido muy significativos, aunque el esquema basado en técnicas de profile mejora los resultados obtenidos por la otra familia
    corecore