Gargoyle is a research project that targets energy-efficient computing by redesigning software and hardware. Until recently CPUs did not have sufficient transistor density and were not clocked fast enough to make chip temperature and cooling the limiting design factor and architects pursued hardware designs that favored performance at any cost (out-of-order execution, speculation, branch prediction. etc.). This has recently changed and performance per joule (aka energy efficiency) is the reason why chip architects have been forced to move to hard-to-program multi-core architectures and investigate the possibility of using transistors for hardware accelerators as well as heterogeneous multi-core systems with cores of varying complexity. In addition to these technology trends, there has been rapid growth in mobile computing on devices such as smartphones as well as increasing usage of popular web services such as search, email, and social networking. As a result there is a strong business incentive for energy-efficient computing to improve the battery life of mobile devices and reduce the power and cooling requirements of large data centers that host these web services. And last but certainly not the least, concerns about climate change and the environment are driving efforts to reduce the carbon footprint of computing by improving efficiency.
Gargoyle aims to address energy-efficient computing issues that arise from this perfect storm driven by technology, economics, and the environment. On the software side we are exploring a framework called Green that enables programmers to take advantage of domain-specific approximation opportunities in a systematic manner while still providing statistical quality-of-service (QoS) guarantees. On the hardware side we are investigating architectural designs that deliver the performance-per-joule efficiency of small cores without impacting application QoS robustness, flexibility, and reliability for emerging Internet-scale applications, which increasingly invoke computationally intensive kernels. Finally, we are studying opportunities for hardware-software co-design that could lead to more energy-efficient computing solutions.