3. Release notes

3.1. Version 3.3.1

Features in this release include:

  • You can now see the compute steps associated with a selected tile(s) or all tiles in the Memory Report. A table shows details of the compute steps, including their size, vertices and number of instances. You can also filter the table to find vertices in matching compute set names.

    Compute sets for two selected tiles
  • There are continued improvements to Execution Trace rendering speed - now, only event blocks for visible IPUs are loaded.

3.2. Version 3.2.0

20th December, 2021

This release adds several new features, and addresses some display and error-reporting issues in previous versions.

  • The ‘Open file’ and ‘Compare reports’ dialogs now display a drop-down list of directories which updates to match the path entered. You can use the keyboard arrow keys to navigate and select paths from the list.

  • You can now zoom in and out vertically on the Execution Trace BSP display, allowing you to see individual tile activity more easily.

    Magnified BSP trace
  • Dialogs can now be toggled between their default size and full-screen by clicking the resize icon to the left of the dialog’s title.

  • If there is no current selection on a report’s graph, tabs that would otherwise be empty now display a message such as “Please select a tile to see its details”.

  • Fixed an issue where the differences between selected steps in the Liveness report was not being calculated correctly.

  • Fixed an issue when using SSH keys generated with the OPENSSH format.

  • Errors that occur while downloading or installing an update are now displayed in a notification. If the download takes longer than a minute to complete, the option to retry it or continue is presented.

  • Increased the size of the Recent files list.

  • Fixed issues when the BSP trace failed to load.

  • Fixed an issue where old reports without execution run information were not displayed.

3.3. Version 3.1.1

16th November, 2021

This version sees many new features and performance improvements brought to the Graph Analyser.

  • We have implemented more rendering improvements in the Execution Trace, which shows more detail in flame graph view, and when zoomed out. This is also reflected in the ‘mini-map’ overview at the top of the report, making it simpler to see execution steps that would not have been visible before.

  • Exchange information is now displayed in more sections of the Graph Analyser reports. Details of selected exchange events (StreamCopy, DoExchange, GlobalExchange) can now be seen in the Program Tree, the Execution Trace, and when comparing two Memory reports.

    Exchange information in the Memory report
  • Execution parameters are now displayed on a ‘per-run’ basis. On the Summary report you can select the Engine Option ‘Execution’ type, and then select which run’s execution parameters to view. On the Execution Trace report, you can click on the run bar at the top of the graph to display the associated execution paramaters in the Details tab.

    Execution parameters in the Execution Trace
  • The range of colours in the Liveness Report graph has been improved ro provide better visibility and contrast.

  • When comparing two Program Tree reports, selecting a program step now shows the step details in tabs below the trees, as for the single report.

  • Selecting a tile in the Memory report now filters the variables based on which tile they’re on, showing the lowered and unlowered variable names. If multiple tiles are selected, the behaviour is the same above, but lowered variables are displayed for all the tiles selected.

3.4. Version 3.0.3

27th October, 2021

Version 3.0 of the PopVision Graph Analyser sees many new features and improvements, including:

  • Improved the Execution Trace view to support larger profiles and be more responsive.

  • Improved screen captures.

  • The CodeCopy program is now supported throughout the application.

  • Automatic software update.

  • Added more information to the exchanges (StreamCopy, DoExchange and GlobalExchange) to show the variables involved.

  • A new preference allows you to set the default behaviour for your mouse’s scroll-wheel: zooming or scrolling?

  • Better error reporting if the analysis engine upload fails.

  • An End User License Agreement must now be agreed to before using the application.

3.4.1. General improvements

  • The Graph Analyser now periodically checks to see if there is an update. If it finds one, it prompts you to download and install it. You can delay the download, or switch off the feature entirely in the Preferences.

    If you’ve previously delayed an update, you can use the ‘Check For Updates…’ menu option to check manually, without having to wait until you’re prompted again.

    A new update is available
  • To support software update functionality, when first starting the application an End User License Agreement is displayed (unless you’ve already agreed to it in a previous version of the application). To continue to use the Graph Analyser application, you must agree to the terms and conditions therein.

    End User License Agreement
  • In the Preferences dialog, you can now define the default behaviour for your mouse’s scroll wheel (or using two-finger drag on a laptop trackpad).

    Setting default scroll wheel behaviour

    You can choose either:

    • ‘Scroll by default’, where the mouse wheel will scroll the window content up and down. Holding down the Ctrl key while using the scroll wheel then zooms the window content in and out.

    • ‘Zoom by default’, where the mouse wheel zooms the window content in and out. Holding down the Ctrl key while using the scroll wheel then scrolls the window content up and down.

  • The screenshot functionality now captures just the portion of the report currently displayed, including the information on the tabs in the lower half of the report. Previously, just the graph data was exported as an image.

    Image capture now works as standard with all the report windows, including the Tile Map of the Memory Report, and also supports the current theme’s colours.

  • We have improved the error reporting if the Graph Analyser failed to upload the analysis engine to a remote host. Error reports will now show whether there was, for example, a permissions error, or no space to write the engine.

    Better error reporting

3.4.2. Execution Trace

  • We have improved the speed and quality with which the Execution Trace is rendered, making it much more responsive to panning and zooming when large reports are being investigated.

    Faster Execution Trace for larger reports

    When you open the profile.pop file in the application, a cache file named profile.pop.cache {” “} is created, which the application looks for again if the report is re-opened. There is a menu option to delete the profile.pop.cache file if it becomes corrupted.

  • The mini-map now changes its contents depending on whether you are currently looking at a flat graph or a flame graph in the Execution Trace.

  • You can now select a region in the BSP trace and the corresponding step block in the trace will also be selected.

  • If you have a very large report (greater than around 40 million cycles), single steps are smaller than a pixel wide, and thus are not visible in the Execution Trace. In this event, you’ll see a message at the top of the trace indicating that you’ll need to zoom in to see the detail that has not been rendered.

    Step is too small - zoom in
  • You can now use the search function in flame graph view as well as flat graph view.

  • The BSP rendering method has been optimised, so it is now a persistent setting.

    BSP plot takes up all vertical space

3.4.3. Program Tree

  • In the Program Tree, you will now see the CodeCopy program appear - previously it would be shown as ‘unknown’. This Poplar program is used to move exchange code from non-executable memory to executable memory.

    The copyProgram program in the Program Tree

3.5. Version 2.5.5

16th September, 2021

3.5.1. Highlights

  • Added new option when comparing reports to show them side by side or on top of each other.

3.5.2. Liveness Report

  • Added new option to show only variables that have different sizes when comparing reports.

    Liveness Report variables comparison

3.5.3. Program Tree

  • Added new menu option to change the orientation of the splitter when comparing reports.

3.5.4. Execution Trace

  • Improvements to the way the cycle proportions are calculated and how quickly they update.

  • Fixed an issue which could cause a long delay when selecting a `layer` from the flame graph that has a lot of steps. The first 32 steps will now be loaded and below that a button to load the next 32 steps is now shown.

  • New menu option to change the orientation of the splitter when comparing reports

    Execution Trace menu options - splitter orientation
  • New BSP option to show total number of tiles at each step.

    Execution Trace BSP options - total number of tiles

3.5.5. General improvements and bug fixes

  • Poplar will now by default write the profile files into a subdirectory of `autoReport.directory`. The name of the directory is based on the debug name passed to the Engine. This resolves an issue where if you had multiple Engines in a single application (i.e. training and validations) they would write to the same file. See help for more information.

  • The close button on the open report host dialog has been moved to the right.

  • Fixed an issue that caused the `frameworks.json` not to load when you had a very small profile.

  • Fixed an issue of selecting a step on the liveness graph when comparing reports with different numbers of steps.

  • Made the spacing between menu buttons consistent.

3.6. Version 2.4.4

25th June, 2021

3.6.1. Highlights

  • New operations graph report allowing visualization of the TensorFlow Highlevel Operations graph.

  • The Summary page shows the Poplar engine options used.

  • The memory report now includes a breakdown of memory by category.

  • Liveness can be viewed for any tile or IPU.

  • Liveness can be viewed for variables.

  • The operations summary is supported when comparing reports.

3.6.2. Summary Report

  • The Poplar Engine options which were used to generate the report are now displayed. You can view the options used during the compilation or execution phase.

    • You can view all values, or only those that are non-default.

    • Tool tips show a description of the option.

    • There is a link to the Poplar Engine Options documentation.

    • Engine options are compared, and differences highlighted, when comparing two reports.

    Poplar engine options
  • The Summary Report now has collapsible sections, allowing you to display only those details that are relevant to you.

  • A timestamp is now displayed on the Summary Report, showing when the program was compiled. This timestamp also appears next to the filename on the ‘Recent’ list on the front page.

3.6.3. Memory Report

  • A new breakdown option, “By Category”, allows you to graph memory breakdown by category (for non-overlapped memory allocations). This for instance can be used to understand the overhead costs of instrumentation. This option is also available when viewing memory by IPU.

    Memory breakdown by category
  • When comparing variables on two different tiles in ‘table view’, there is a new option to only show those variables which are different in size.

3.6.4. Liveness Report

  • Liveness can now be viewed for any tile in your application

  • Liveness can also be shown for an individual variable, helping you understand on which step a variable becomes live, and on which step it is no longer live. (This was an experimental feature before)

    Liveness for a variable

3.6.5. Program Tree

  • The search function has been improved, allowing you to search for variables by program name. There is also a results navigation display, allowing you to step through search results.

3.6.6. Operations Graph

The new Operations Graph displays a graph of TensorFlow Highlevel Operations (HLO) for programs built using TensorFlow. This new view allows you to:

  • Drill down through the modules (subgraphs), expanding and collapsing the layers to see the HLO operations

  • View details of operations, edges and layers;

  • Colour items in the graph based on selected metrics (for example, code size of cycles used);

  • You can configure the layout with a number of advanced options;

    Operations graph

3.6.7. Operations Summary

The Operations Summary is now available when comparing reports. You can search for and compare the size of variables based on their operation name or debug name.

3.6.8. Execution Trace

  • Stream copies that involve the remote buffer are now coloured differently, allowing you to distinguish them easily. The three types are:

    • IPU ⇄ Host

    • IPU ⇄ Remote buffer

    • IPU ⇄ Host & Remote buffer

3.6.9. General improvements and bug fixes

  • There is now a vertical splitter when comparing execution traces and program trees.

  • There is a link to the Getting Started video on the starting page.

  • Switching between the light and dark mode does not require a restart.

  • You only have to enter one password when opening reports on the same remote host.

  • When opening two reports to compare, there is now a button to copy the directory locations between source and target directories.

  • You can now move the graph stats box around and place it where you wish.

  • Menus no longer close immediately when an option is selected, allowing you to select many at once without having to re-open the menu.

  • The ‘Variables’ Graph type in the Memory Report prompts you to search for a variable by name.

  • The Summary page and recent reports list includes a timestamp indicating when the report was captured.

  • The Memory Report variables layout shows which are the interleaved & non-interleaved memory banks.

3.7. Version 2.3.2

15th March, 2021

3.7.1. Highlights

We have added a number of new features and fixes to this release of the PopVision Graph Analyser. The most notable new features are:

  • The new file format added in the Poplar 1.4 SDK release is now default resulting in at least a 70% reduction in file size

  • Enhanced debug information for PopART, TensorFlow

  • New operations report

3.7.2. Poplar

The following Poplar SDK 2.0 features can be used with Poplar Graph Analyser

  • In the last release we added a new Poplar report format, v3. The v3 format uses SQL rather than JSON and results in report file sizes that are at least 70% smaller. For the Poplar SDK 2.0 release this is now the default format, so you do not need to set the format explicitly.

  • A new Poplar engine option “profiler.replicaToProfile” allows you to indicate which replica you want to profile. If you have a replicated model, the profile information is duplicated for each replica. If you are only interested in the information from one replica then this option allows you to focus on just a single replica.

  • A new Poplar engine option “profiler.includeFlopEstimates” controls the generation of estimates for the number of floating point operation per compute set. These estimates can then be seen in the PopVision Graph Analyser Memory and Execution reports.

3.7.3. PopART and TensorFlow

  • In the last release we added enhanced debug info to Poplar and PopLibs. For this release we have updated the Graphcore TensorFlow and PopART released to include enhanced debug information. For PopART you can see the information for the PopART Builder, ONNX Node and also the PopART IR Operation. For TensorFlow you can see the information for the XLA Op, HLO Op and Tensroflow Poplar plugin operation.

    TensorFlow HLO Operation information

    TensorFlow debug info

    PopART ONNX Node information

    Poplar debug info

    This enhanced debug information can be seen on the liveness report, program tree report and also the new operation summary report.

3.7.4. PopVision Graph Analyser

  • Added the option to increase or decrease the size of the font on the application and help using the Ctrl or Command key and then the +/- key. Options are also available from the menu.

  • All graphs now support WASD keyboard navigation for zooming and panning.

  • For all reports we have added the option to save the PopVision graphs to the clipboard in addition to the option to save to file.

  • When comparing reports we have added a popup to show full path name of the report files when hovering over the source/target graph keys.

3.7.5. Summary Report

  • The Summary Report information has been updated to show more information about replicas if you are looking at a replicated model.

    Summary replica information

3.7.6. Memory Report

  • If you select a variable on the memory layout to see the details, the category type is now n hyper link to the documentation to explain what the category means.

  • Also on the variables tab of the memory report a new option has been added to allow you to view the variables as a table to sort the variables by size

  • In all reports that contain vertex type information, they now also include a source indicator to show if the vertex is implemented in C++ or ASM. You can also filter vertices in the Memory Report based on their name and source

    Exchange information tab

3.7.7. Liveness Report

  • Added the option to select multiple points on the Liveness graph and compare the not-always-live-variables between two points. You can select multiple points by holding the Shift key down.

    Liveness report of flops
  • If FLOP estimates are reported by Poplar they will be shown on the Liveness graph when selecting a program step.

    Liveness report of flops

3.7.8. Operations Report

  • For this release we have added a new Operation report, which can show totals for code size, cycles and FLOPs per operation. This report relies on the enhanced debug information.

    A table is shown which lists all the operations and totals. Which columns you want to see can be selected from the “Columns” dropdown. If you select one of the operations you will see details of that operation below.

    • Summary information

    • Expanded program tree of just the selected operation

    • Total code size per tile, broken down by program type

    • Total measured cycles per tile, broken down by program type

    • Total FLOPs

    • Debug information

    By default, the PopLibs API call information is displayed. However if you select the layer from the drop-down in the top left corner you can see the same summation for PopART or TensorFlow operations.

    Operations summary showing total code for the PopLibs convolution API call.

    Operation summary overview

    Operations summary showing the total cycles for a TensorFlow HLO (High Level Operation) convolution instruction.

    Operation summary for TensorFlow

3.7.9. Execution Trace Report

  • FLOPs are also shown on the Execution Trace Summary tab. The value shown for “Estimated Flops” and per IPU, is the sum of all FLOPs for the current Execution Trace view. As you zoom in the number of FLOPs will reduce. Note: you will need to have enabled the Poplar option ‘profiler.includeFlopEstimates’.

    Flops shown on the execution trace

3.8. Version 2.2.5

7th December, 2020

3.8.1. Highlights

We have added a number of new features and fixes to this release of the PopVision Graph Analyser. The most notable new features are:

  • A new file format for the graph and execution profile, resulting in a 50% file size reduction.

  • Enhanced Poplibs debug information.

3.8.2. Poplar

  • A new profile format has been added to Poplar that significantly reduces the size of the report files and improves the PopVision Graph Analyser loading times. The new format can be enabled using:

    {'POPLAR_ENGINE_OPTIONS={"profile.format": "v3"}'}

    When this option is selected the graph.json/cbor {” “} and execution.json/cbor are replaced with a single profile.pop . In a future release, we will make the v3 format the default.

  • A new POPLAR_ENGINE_OPTION has been added (when using the v3 profile.format) to specify when the execution information is written to file. If the “autoReport.streamAtEachRun” option is set to true, then execution information will be written to file at the end of each engine run. This has been introduced to resolve issues in TensorFlow that resulted in the execution not being output.

3.8.3. Memory Report

  • A new “By Data Type” memory category has been added to the memory details tab.

  • A new “Exchanges” tab has been added which shows the code size of exchanges.

    Exchange code size
  • If you are just viewing the archive.a file, you can now select a tile to see limited details about it.

  • Added support for comparing just the archive.a {” “} files.

    Comparing archive.a

3.8.4. Liveness Report

  • The debug information shown for a variable has been updated to show Poplibs information. For each variable that has debug information, you can now see the Poplibs API that created it, its arguments and its outputs.

    Liveness enhanced debug showing poplibs information

3.8.5. Program Tree

  • The program tree report has been updated to now show details when you select a step. The details are the same as you will see when you select a step in the execution trace, plus some vertex information.

    Details of program tree step
  • Enhanced debug information has been added to program steps. When you select a program step you can see the Poplar and Poplibs debug debug information. The Poplibs debug information shows which PopLibs API created that program step, its arguments and its outputs.

    Selecting the Poplibs debug information now highlights all the program steps that where created for that Poplibs API call.

    Enhanced debug information in the program tree

3.9. Version 2.1.3

30th September, 2020

3.9.1. Highlights

We have added a large number of new features and fixes to this release of the PopVision Graph Analyser. The most notable new features are:

  • Support for Mk2 IPU

  • New tile map memory plot, showing a graphical representation of tile memory usage overlaid on an IPU schematic drawing

  • Visualization of overlapped IO

3.9.2. Summary Report

  • The summary page now shows if the report was for a ‘Mk1’ or ‘Mk2’ IPU. Here the compare reports summary page shows a report generated on Mk1 vs Mk2:

    Comparing Mk1 and Mk2 IPUs
  • Added support for replicated graphs. The number of replicas is shown on the summary page if greater than one.

  • Changed the visualization of deltas on the Summary report to match the Memory report. Negative deltas are show in green and positive deltas are show in red.

  • When comparing reports, you can now see the full paths for each report on the Summary screen.

  • Added support for booleans in app.json and framework.json.

3.9.3. Memory Report

  • Added a new memory view: Tile Map. The new tile map Memory Report can be opened by selecting it from the Graph Type drop-down menu. The tile map shows a diagram of an IPU and colors each tile based on the amount of memory it requires:

    Memory Tile Map The intention of this memory plot is to allow you to see the association between memory useage and the physical position of the tile.

    You can select to see total memory (with/without gaps) or the region interleaved/non interleaved (with/without gaps).

    There are display options that allow you to see the absolute and relative measurements, as well as a ranked display.

    The tile map plot also includes a tooltip and also allows you to select tiles and see the details below. Multiple tiles can be selected while holding the shift key down. When your model is out or memory, the colors are scaled, not just to max memory.

    The tile map also supports comparing reports:

    Tile map comparing reports You can also display the delta & difference between them:

    Tile map comparing reports by difference

  • Added a new option to enlarge the variable memory layout to full-screen:

    Memory variables full-screen
  • Added the option to show memory usage by IPU:

    Memory by IPU
  • You can compare multiple IPUs by shift-clicking them.

  • The memory-by-IPU option allows you to see the total memory required for each vertex type, so you can compare across multiple IPUs:

    Vertices by IPU
  • Displaying memory by IPU now is also supported when comparing reports. This is useful when looking at reports with many IPUs:

    Compare Memory by IPU

3.9.4. Liveness Report

  • Enhanced debug information can be viewed on the liveness report (if a debug.cbor file has been generated). For variables that have the enhanced information you will see an expander. Currently this shows the variable shape, type and the location in code where it was created.

    Enhanced debug information

    For a cloned variable it shows which variable it was cloned from:

    Debug information for cloned variable
  • Added a new option to the Liveness graph, when “Always Live” variables are being displayed. This draws a max memory line for a tile, an IPU or all tiles, depending on whether you are viewing all tiles, an IPU or tile liveness.

    As you can see here, this allows you to see which steps in your program are exceeding the maximum memory:

    Liveness max memory line
  • Fixed liveness graph to correctly stack “always live” and “not always-live” for each IPU, but then not stack IPUs.

  • Changed “Selected Stack” to “Selected Program Step”.

3.9.5. Execution Trace

  • Selecting a BSP step now draws a blue outline around it. You can also see the cycles-per-tile graph for all steps. If available, both cycle estimates and cycles for OnTileExecute are displayed (in this case a StreamCopy):

    BSP cycles per tile

    You can see cycles for exchanges as well as the TX/RX for each tile:

    BSP cycles for exchanges

    To support overlapped IO, a stream copy step has been broken down into separate phases (Begin/Copy/End). When you view the execution trace in flame mode, the StreamCopy Begin/Copy/End phases are grouped together:

    Group copies on flame graph
  • To support overlapped IO, a new option has been added to visualize program steps that execute concurrently. This new option draws overlapping program steps on different ‘levels’:

    Overlapping steps hidden

  • You can now see when stream copies are run in parallel with on-tile compute steps.

    Parallel stream copies

    This also supported on the flame graphs where we group those overlapped program steps together and show overlapping section of the graph. Here you can see multiple weight updates occuring in parallel on different tiles:

    Overlapping sections on flame graph
  • The execution trace now shows the calls to Poplar::Engine::run overlaid on the execution trace. This is useful to see the different phases of execution of a model. Poplar and PopART have been updated to pass a debug string to each Poplar::Engine::run to identify why the run is being called. PopART has also been modified to allow you to set the debug name when you call Session::run.

    Here you can see the “Epoch 0 step 0” comes from a modified version of the resnet public examples. You can double click on a ‘dark grey’ bar and it will expand to the full width.

    See runs on execution trace

    These program intervalsare now shown in the mini map. If you hover you mouse over the ‘U’-shaped bars below the mini map, they are highlighted. Double-click them to expand the execution trace to that run.

    You can see the number of cycles for a run, when you double click on a run, in the summary at the bottom.

  • Added support for displaying SyncAns steps on the execution trace. These can be hidden from the options menu. Here you see the report with and without SyncAns. Notice the cycle proportions have change to reflect the SyncAns.

    Showing SyncAns Hiding SyncAns

  • The calculation of cycle proportions has been modified to include tile balance so as to not show {“>”} 100%.

  • Fixed the cycles graph for StreamCopy on the execution trace.

  • Fixed the execution trace details to show information for an IPU rather than all IPUs.

  • Fixed BSP rendering if the IPU (Model) has been configured with a small number of tiles.

3.9.6. SSH Improvements

  • Added a visual warning if the SSH key is not valid in the preferences dialog.

  • Fixed the issue on Linux that requires the SSH path to be cleared to use SSH agent.

  • Added more diagnostic feedback in the connection dialog when SSH connection fails. In the example below, SSH into a machine failed and falls back to password entry:

    SSH Errors

3.9.7. General application-wide changes

  • The graphs now show a full width ‘bar’ for the first and last values on the graph. This improves the appearance of the graph when viewing memory by IPU (see below).

  • Fixed issues when comparing reports using Mk2 and Mk1 IPUs. Also fixed physical tile id mapping on Mk2 IPUs.

  • Adjusted dark mode support for ‘greyed out’ elements so they are more visible.

  • Added a new options button on graphs, allowing you to change the visibility of the graph keys:

    Graph options

    Improved the graph key display so that the text wraps correctly. The items in the key now change visually when your mouse is over them, and allow you to hide/show a dataset on the graph.

    Remove graph key
  • Added a new side-bar button to reload the reports, so you no longer need to close and reopen reports when they change. (i.e. when you recompile and run your model):

    Reload report button
  • The application monitors the report file folder and detects whether any of the files have changed, alerting you to reload them:

    Reload files alert
  • Changed window quit behavior on MacOS so it doesn’t close the application when the last window is closed. Added a control to the preferences dialog to enable/disable it.

  • Added support for CenOS-based hosts, using MUSL to build the backend.

3.10. Version 2.0.0

1st July, 2020

Poplar Graph Analyser has been renamed PopVision Graph Analyser. Your preferences from the previous version are migrated the first time you run the PopVision Graph Analyser.

For more information on any of the items in the release notes please see the documentation

3.10.1. Capturing Reports

  • A new Poplar engine option has been added to make it easier to collect the reports used by the PopVision Graph Analyser.

    {'POPLAR_ENGINE_OPTIONS={"autoReport.all": "true"}'}

3.10.2. Opening Reports

  • The ‘Open report’ and ‘Compare reports’ dialogs now include the modified date for each file & directory. The list can be sorted by name or date. The sorting methods you choose is saved as the default.

  • The ‘Open report’ dialog now has the option to specify the ssh port to use when connecting to a remote host.

  • The ‘Open report’ dialog prompts for a password if ssh key based authentication does not pass.

  • Opening reports from the “Recent” directory list now prompts for a password if needed.

3.10.3. Summary Report

  • The summary view now shows the contents of `framework.json` or `app.json` if present. The `framework.json` is intended to be used by frameworks. The `app.json` can be used by applications to save additional information about them.

  • Added indicator to show which report files where found and which where not.

3.10.4. Memory Report

  • You can select multiple tiles and compare the differences between them. Either enter a comma-seperated list of tiles in the `select tile(s)` input box or hold down the shift key while selecting tiles on the graph with the mouse. You can compare the details, vertices and varible layout for the selected tiles.

  • The memory graph now supports keyboard input to move the selected tile left and right.

  • Added option to plot the memory usage of a variable across all tiles. You can either select the new “Graph Type - Variable” and search for a variable by name or click “Plot” after selecting a variable in the “Variables” tab. You will then see a graph of how much memory that variable needs on each tile.

    You also have the option to show the layout of that variable in the address space of each tile. (Options-{“>”}Plot variables at address)

    Multiple varaibles can be plots at the same time.

  • Added 2 interference options, when a variable is selected in the “Variables” tab, to show other variables which constrain the placement of the selected variable.

  • The key in the “Variables” tab is interactive, allowing you to select which types of variables you want to see.

  • Show stats (max, min, average, standard deviation) for the current range of tiles on the graph.

  • Fixed the calculation of the “overlapped” and “non-overlapped” categories in the deatils tab.

  • The “Details” shows the “Total including gaps” when opening just the archive.a file.

3.10.5. Liveness Report

  • New option to filter the steps in the graph based on a search string.

  • New select sources option. You can select liveness for all tiles, worst tiles or per IPU. Multiple sources may be selected at the same time.

    The “Always Live Variables” and “Not Always Live Variables” show a breakdown of variables across the sources (size & percentage).

    When selecting multiple IPUs, you can select to show the plot stacked or unstacked (Options-{“>”}Stack IPUs).

  • New option to filter the list of variables shown in the tables.

3.10.6. Program Tree Report

  • A new search option has been added which highlights program steps based on a search string. Functions which have matching steps are also highlighted.

  • The steps in the program tree have been color-coded based on type.

  • The program tree allows the control flow steps to be folded & expanded.

3.10.7. Execution Trace Report

  • The options for selecting flat or flame graph have been moved out of the “Execution View” drop down into a new menu option the top left-hand corner.

  • New option to filter steps in the execution trace that match a string (only supported in flat mode).

  • Added the option to show the BSP trace below the exisiting execution trace. The BSP trace shows the detailed execution of each tile on the IPU. If you hover your mouse over the BSP trace a popop appears showing the details of the program step and the number of cycles executed on that tile for that step.

  • Added option to focus on the execution trace of 1 IPU or see all IPUs.

3.10.8. Comparing Reports

The compare reports feature has moved from an experimental feature to a standard feature. You can now select two reports and compare them.

  • “Compare two reports…” now appear as an option on the starting page.

  • New “Compare Reports” dialog allows you to select reports from local and/or remote.

  • The summary page shows the program, framework and application information for each report and highlights the differences.

  • The Memory Report show the memory requirements per tile for both reports. Details of both reports and the delta between them is shown. Vertices and Varaibles show information for the two reports side by side.

  • Selecting and ploting the variable from one report shows how the size and layout of that variable compares.

  • New options to show differences between the two graphs. You can see the delta and also the difference.

  • The livessness report shows the liveness plot for both reports. The size of the “Always Live Variables” and “Not Always Live Variables” in each report and how they compare.

  • The program tree of each report can be seen side by side.

  • The execution trace of each report can be seen side by side, including BSP trace.

3.10.9. Help

  • The help page now has a search feature.

  • The tool now supports context sensitive help. If you hover your mouse over an area of the tool a popup appears which allows you to click on the link to take you to the relevant section of the help.

    The context sensitive help tool tips can be disabled via the preferences dialog.

3.10.10. General

  • Changing options and moving between views no longer resets the view.

  • Table totals shown at the top, rather than the bottom.

  • All graphs now have a reset button at the top left corner that zooms out and deselects any items.

3.10.11. Experimental Features

  • Add new computation graph view based on Poplar’s serialized graph output.

  • Added the option to show liveness per variable.