Extending the roofline model: Bottleneck analysis with microarchitectural constraints
Introduction to Algorithms