What is a roofline plot?

What is a roofline plot?

The roofline model is often represented as a two-dimensional plot with Performance (Flops/Cycle or Flops/s) in the Y-axis and operational (also known as arithmetic or numeric) intensity (Flops/Byte) in the X-axis, as depicted in Fig. 2.21.

How do you increase arithmetic intensity?

One way to increase the arithmetic intensity is to consider gauge field compression to reduce memory traffic (reduce the size of G), and using the essentially free FLOP-s provided by the node to perform decompression before use.

How many flops are in a gigaflop?

One gigaflops is one billion (1,000,000,000) FLOPS, or floating point operations, per second.

Why would you want to make a roofline plot?

The benefit of roofline plot is that they express the characteristic of the algorithm (Arithmetic Intensity) and the hardware (peak FLOPS and BW) in one graph, making it easy to see how to improve the performance of an algorithm and to compare the performance of different algorithms and hardware in the same plot.

How do you find the arithmetic intensity?

Arithmetic Intensity is the ratio of total floating-point operations to total data movement (bytes). A BLAS-1 vector-vector increment ( x[i]+=y[i] ) would have a very low arithmetic intensity of 0.0417 (N FLOPS / 24N Bytes) and would be independent of the vector size.

What is the arithmetic intensity?

Arithmetic intensity is a measure of floating-point operations (FLOPs) performed by a given code (or code section) relative to the amount of memory accesses (Bytes) that are required to support those operations. It is most often defined as a FLOP per Byte ratio (F/B).

How does memory bandwidth affect vector performance?

Having more than one vector also requires less memory bandwidth and boosts the performance: we can multiply four vectors in about 1.5 times the time needed to multiply one vector. Effect of Memory Bandwidth on the Performance of Sparse Matrix-Vector Product on SGI Origin 2000 (250 MHz R10000 processor).

What is the purpose of the roofline model?

The Roofline model is an intuitive visual performance model used to provide performance estimates of a given compute kernel or application running on multi-core, many-core, or accelerator processor architecture s, by showing inherent hardware limitations, and potential benefit and priority of optimizations.

How to visualize the roofline of a machine?

The most basic Roofline model can be visualized by plotting floating-point performance as a function of machine peak performance, machine peak bandwidth, and arithmetic intensity.

How to use Roofline Performance model for HPC?

SC Tutorial The Roofline performance model offers an insightful and intuitive method for extracting the key execution characteristics of HPC applications and comparing them against the performance ­bounds of modern CPUs and GPUs.

How does roofline affect performance of a kernel?

The Rooflinesets an upper bound on performance of a kernel depending on its operational intensity. If we think of operational intensity as a column that hits the roof, either it hits the flat part of the roof, which means performance is compute bound, or it hits the slanted part of the roof, which means performance is ultimately memory bound.