M.S. Presentation: Muhammad SantriajiReturn to Full Calendar
- December 2, 2019 at 1:30pm - 2:30pm
- John Crerar Library, Room 390
- Event Audience:
Speaker: Muhammad Santriaji M.S. Candidate, University of Chicago
Muhammad's advisor is Prof. Henry Hoffmann
Abstract: Exploiting Thread Slack Time for Energy Saving in GPU Applications with Hard Real Time Requirements
Correct functioning of embedded systems requires strict timing guarantees. Traditionally, enforcing timing guarantees is the operating system's responsibility. The OS scheduler assigns sufficient resources to an application task to ensure it meets its deadline. Meeting hard real-time deadlines requires the scheduler to be conservative and allocate for the worst case timing; when behavior is not worst case, extra resources are allocated and energy is wasted. Some software schedulers reduce this energy waste by recognizing when an application is ahead of a worst case schedule and reclaiming unneeded resources, but they are fundamentally limited by (1) overhead and (2) a lack of visibility into low-level resource usage. Therefore, this thesis advocates hardware assistance for energy management of hard real-time tasks. Specifically, we propose MERLOT, a hardware-based resource manager for GPUs that enforces software-specified timing guarantees with minimal energy. We implement MERLOT in VHDL and find that its performance, power, and area overheads are minuscule. We implement MERLOT in GPGPU-Sim to test timing and energy consumption and compare to two software-only approaches: one that always allocates for worst case timing and an intelligent approach that reduces resource usage when it recognizes better than worst case behavior. Compared to the approach that always allocates for worst case, MERLOT reduces energy by 16.73% on average, with 16.43 % in 1.5X and 17.03% in 2.0X WCET. Compared to the intelligent software-only approach, MERLOT produces a 15.6% energy savings. MERLOT uses less energy than software-only approaches because it recognizes better than worst case behavior earlier, by monitoring hardware events that are not visible to software and quickly adjusting resource usage.