Avoiding Monomorphization Bottlenecks with Phase-based SplittingVirtual
State-of-the-art managed runtimes apply aggressive optimizations often based on the speculative assumption that programs have low variability. However, literature shows that program behavior may evolve at run time and experience different execution “phases”. This variable behavior may hide optimization opportunities from the compiler. Taking such phases into account may thus help improving performance when applied to phase-sensitive optimizations such as lookup caches, that may generate monomorphization bottlenecks when they contain entries that are phase-specific.
In this project, we introduce Phase-based splitting, an experimental compiler optimization that utilizes phases to guide monomorphization based on splitting. Preliminary results on micro-benchmarks show our first prototype reaches promising speedups ranging from 10 to 20% on average, peaking up to 47.6% at phase granularity. In the next steps, we aim at further evaluating the potential benefits of our approach on a richer set of benchmarks and real-world applications as well as defining heuristics to better guide phase-based splitting.
Tue 19 OctDisplayed time zone: Central Time (US & Canada) change
13:50 - 15:10 | |||
13:55 35mDoctoral symposium paper | Towards Deep Learning SpecificationVirtual Doctoral Symposium Shibbir Ahmed Iowa State University Pre-print | ||
14:30 35mDoctoral symposium paper | Avoiding Monomorphization Bottlenecks with Phase-based SplittingVirtual Doctoral Symposium Sophie Kaleba University of Kent Pre-print |