Dynamic Code Generation and Optimization for Heterogeneous Devices with Graal
Oracle Principal Investigator
Mario Wolczko, Architect
The aim of this project is to explore how we can harness the power of heterogeneous devices such as GPUs (Graphics Processing Units) from within a dynamic compiler. To accomplish this goal we plan to use the Graal compiler infrastructure developed by Oracle and extend it in order to support dynamic runtime compilation to OpenCL. Our goals are: (1) discover and exploit parallelism opportunities from the high-level information available at runtime and (2) use heterogeneous devices to dynamically accelerate applications transparently from the user.
This project will differ from most prior work that has only considered static GPU code generation. Since we will be in a context of dynamic runtime optimizations a whole new range of techniques can be applied in order to better optimize the application. For instance, we can use the profiling information to dynamically discover parallelism, specialize the code and ultimately determine which device is best suited for running the code.
In this project, we will develop two research themes; exploiting parallelism and dynamic code generation. The first part will develop techniques to identify and extract parallelism automatically from an application. The second theme will look at the problem of dynamically generating device code.