Rohan Prabhakar will present his General Exam "Using an On-Hardware Predictor For Function Multi-Versioning" on Thursday, May 5, 2022 at 9:00 AM via Zoom.
Committee Members: David Wentzlaff (advisor), David August, Ruby Lee (ECE)
Abstract:
This work explores a system architecture that integrates traditional CPU components with a general-purpose, on-hardware, neural network predictor that has broad access to a wide variety of system features and state. We study the utility of such a system in runtime function multi-versioning, a program optimization technique that involves storing several versions of the same function in the program binary, each compiled with different compiler optimization flags. The key premise behind such multi-versioning is that the best choice of optimization flags is not constant but a function of microarchitectural state, input, and application phase.
We approximate the availability of such a neural network predictor by building a software-only system that uses the integrated GPU of a commercially available processor to perform inference on a Long Short Term Memory (LSTM) that is continually supplied with hardware performance counter data. Our system combines this neural network, a static Source-to-Source transformation built using the Clang frontend, and a shared memory model to allow efficient runtime function multi-versioning of C and C++ programs. The static Source-to-Source transformation approach we employ permits using both different optimization flags and different compilers for the same function, all within one program. To evaluate the system and its performance, we use programs that are part of the SPEC 2017 benchmark suite.
Reading List:
Everyone is invited to attend the talk, and those faculty wishing to remain for the oral exam following are welcome to do so.