12. Viewing an Operations Summary
The Operations Summary displays a table of all operations in your model, for a software layer, showing statistics about code size, cycle counts, FLOPs and memory usage. You can also select which software layer operations you want to summarise.
Clicking on an operation in the table reveals further information about it in the tabbed section in the bottom half of the report, displaying graphs of code size, cycle counts, and various other measurements and estimates for the selected operation. You can choose which columns you want displayed in the table, and also apply sorting and filtering to it.
12.1. Operations table
The Operations summary table shows a list of all the operations within the selected software layer.
Because the column headings in this table are typically quite long, we’ve used abbreviated headings that match the full column names displayed in the Columns drop-down list. If you hover your mouse over the column headings, you’ll see the full name displayed as a pop-up box.
12.1.1. Selecting a software layer
By default, the PopLibs software layer is displayed, as you can see from the drop-down Layers list in the top right-hand side of the table. You can select other software layers whose operations you wish to see by selecting from this list. Depending on your program, the following software layers may be available:
Poplar and PopLibs
PopXL and PopART Builder
ONNX
TensorFlow Poplar Drivers
TensorFlow HLO Instructions
Tensorflow XLA Operations
Changing layers involves a sometimes lengthy re-calculation of the table metrics, so you may need to wait a short while for larger reports.
12.1.2. Selecting which columns to display
The Columns control works differently depending on whether you’re viewing a single report, or comparing two reports.
When viewing a single report, you can select as many columns as your screen has room to display. Each column contains the values for that metric.
When comparing two reports, the Operation Name is always displayed, and you can select one other column to display. As well as the Operation Name column, there are three other columns that show the value of the selected column metric for the source report and the target report, as well as a column that shows the difference between the source and target values.
By default, the operations table displays the following metrics for each operation (single view only):
Operation Name
Debug Name
Code Size (Total)
Measured Cycles (Total)
FLOPs
FLOPs are not generated by default. Enable the
profiler.includeFlopEstimates
Poplar Engine option to generate FLOP estimates.
Many other operation metrics can be displayed or hidden in this table by checking or unchecking the data types in the drop-down Columns list in the top right-hand corner of the operations table. Your current column selection preferences are automatically saved.
The Not-Always-Live Delta (NAL∆) option (experimental) shows the difference that each operation makes to the variable memory as the program executes. This helps you identify which operations are the most expensive in terms of memory. Note a operation may have multiple liveness values if it is repeated in the execution, the value show is the liveness delta from the first occurrence.
Columns showing a range of Cycle Estimates are experimental.
12.2. Sorting and filtering
You can sort the operations table by any of the column headings, as well as only showing operations that match a particular string:
Click on a column heading to sort the table by that operation metric. Repeated clicking cycles through sorting in ascending order, descending order, or removing the sort from that column. A small blue triangle (or none) indicates the current sort order.
Type some text in the Filter operations box above the table, and press
Enter
to display only those operations whose operation name or debug name matches the text you enter. Remove filtering by clearing the text box.
12.3. Operations Summary tabs
The tabbed section in the bottom half of the Operations summary shows further information about the selected operation. When no operation is selected, only the Summary tab is visible, which shows some general statistics about all the operations in the currently selected software layer.
Select an operation from the table by clicking on it. The selected operation is displayed at the top of the tabbed section, along with a small x icon that you can click to deselect it, and return to the Summary tab.
12.3.1. Summary tab
When no operation is selected from the table, this tab shows a breakdown of operations for the selected software layer, including:
The total number of total operations for that layer
The total code size for that layer
The total number of cycles executed in that layer
When an operation is selected from the table, data from the default table columns is displayed.
12.3.2. Program Tree tab
When an operation is selected from the table, this tab shows the program steps involved in that operation. This is the same data displayed in the Program Tree report.
12.3.3. Code tab
When an operation is selected from the table, this tab shows a graph of the code size executed for that operation. Code size for OnTileExecute and DoExchange program steps is displayed by tile number for all IPUs. You can zoom and pan around this graph as with other graphs.
12.3.4. Cycles tab
When an operation is selected from the table, this tab shows the number of cycles taken by the selected operation, plotted against all the IPU tiles. You can zoom and pan around this graph as with other graphs.
By default, only cycle counts for the OnTileExecute and DoExchange program steps are displayed, but you can add other program step types to include on the graph by selecting them from the Options drop-down list in the top left-hand corner of the graph. Available options are:
Show Copies: Separates steps for OnTileExecute programs that are just for copies.
Show Estimates: Includes a number of estimated cycle counts:
DoExchange Estimated Cycles
OnTileExecute Estimated Cycles
OnTileExecuteCopy Estimated Cycles
StreamCopyMid Estimated Cycles
GlobalExchange Estimated Cycles
12.3.5. FLOPs tab
When an operation is selected from the table, this tab shows a graph of the total number of FLOPs (Floating Point Operations) executed for the selected operation, plotted against IPU tiles.
12.3.6. Debug tab
When an operation is selected from the table, this tab shows debug information from the currently selected software layer for that operation. This information is identical to that on the Liveness Report and the Program Tree Debug sections.