Graphics Processing Units (GPUs)

Problem: Define the arithmetic intensity \(I\) of an algorithm/computation.

Solution: It is basically what it sounds like: the more “intense” an algorithm’s computations (“arithmetic”) are, the greater its arithmetic intensity \(I\):

\[I:=\frac{W}{Q}\]

where \(W\) is the algorithm’s compute/work (measured in floating-point operations (FLOPs) not to be confused with floating-point operations per second (FLOPS)) whereas \(Q\) is the algorithm’s (quantity of) memory (measured in bytes). Unlike the efficiency \(\eta:=W/Q_{\text{in}}<1-T_C/T_H\) of a heat engine which is bounded by the Carnot limit, here the arithmetic intensity \(I\) can be too large (in which case the algorithm is compute-bound) or it can be too small (in which case the algorithm is memory-bound). This is often “formalized” via a toy roofline model (which conjures up unpleasant memories of supply-demand graphs in economics) of the performance “power” \(\dot W\) (measured in FLOPS, not FLOPs) as a function of arithmetic intensity \(I\):

This entry was posted in Blog. Bookmark the permalink.

Leave a Reply

Your email address will not be published. Required fields are marked *