PopVision Graph Analyser User Guide
Version: 3.11.2
1. Introduction
2. User guide
2.1. Overview
2.1.1. End User License Agreement
2.1.2. Telemetry consent
2.1.3. About the IPU
2.2. Capturing IPU reports
2.2.1. Unsupported file versions
2.2.2. Profiling Overhead
Compilation
Execution
2.2.3. Reloading reports
2.2.4. Profile troubleshooting
Reducing the size of profile reports
Missing or corrupted report files
Compilation fails with OOM
2.2.5. Poplar report files
Binary archive (‘archive.a’)
Poplar Profile (‘profile.pop’)
Lowered Vars Information
Serialized Computation graph (‘serialized_graph.capnp’)
Frameworks Information (‘framework.json’ & ‘app.json’)
Debug Information (‘debug.cbor’)
2.2.6. Using TensorFlow
2.2.7. Using PopART
2.2.8. Using PyTorch
2.3. Opening reports
2.3.1. Opening recent reports
2.3.2. Opening the Demo Report
2.3.3. Comparing reports
2.3.4. Local reports
Opening local reports
2.3.5. Remote reports
Opening a remote report
Connection errors
2.4. Viewing reports
2.4.1. Using the side menu
2.4.2. Adjusting report size
2.4.3. Navigating report graphs
Using the Navigation panel
Keyboard graph navigation
Graph data keys
2.4.4. Saving report images to disk
2.5. Viewing a Summary Report
2.5.1. Program Information
Target
Graph
2.5.2. Engine options
2.5.3. Framework and Application JSON files
2.5.4. Report files
2.6. Viewing an Insights Report
2.6.1. Memory insights
2.6.2. Vertex and exchange sizes
2.6.3. Tips on reducing memory usage
2.7. Viewing a Memory Report
2.7.1. Navigating memory reports
Selecting individual tiles/IPUs
Memory Report view options
2.7.2. Total Memory graph
Memory Report breakdown
Breakdown by Region
Breakdown by category
Breakdown by liveness
2.7.3. Variables Memory graph
2.7.4. Tile map Memory graph
Changing the colour scale
2.7.5. Tile memory usage
Tile memory usage: Details tab
Excluding Gaps
Tile memory usage: Compute Sets tab
Tile memory usage: Vertices tab
Tile memory usage: Exchanges tab
Tile memory usage: Variables tab
Memory interference
Variable types
Known variables
Plot multiple variables
Full-screen option
Toggle between table and graph view
Show differences between selected tiles
Show base address offset
2.8. Viewing a Liveness Report
2.8.1. Navigating Liveness reports
2.8.2. The Liveness graph
Selecting a source
Filtering steps
Viewing options
2.8.3. Liveness stack details
Viewing enhanced debug information
Always-Live Variables
Not-Always-Live Variables
Vertices
Cycle estimates
Show differences between selected tiles
2.9. Viewing a Program Tree
2.9.1. Searching for program steps
2.9.2. Details tab
2.9.3. Viewing Debug Information
2.9.4. Change Layout
2.9.5. Viewing options
2.10. Viewing an Operations Summary
2.10.1. Operations table
Selecting a software layer
Selecting which columns to display
Sorting and filtering
2.10.2. Operations Summary tabs
Summary tab
Program Tree tab
Code tab
Cycles tab
FLOPs tab
Debug tab
2.11. Viewing an Operations Graph
2.11.1. Graph entities
HLO layers
Defining HLO layers
High Level Operations (HLOs)
HLO Calls/fusion operations
Edge tensors
2.11.2. Selected entity information tabs
2.11.3. Highlighting operations by metric
2.11.4. Advanced options
2.12. Viewing an Execution Trace
2.12.1. Detailed Execution Trace vs Lightweight Profiling
2.12.2. Execution Trace options
Selecting IPUs
View options
Detailed Execution Trace Options
Lightweight Profiling Options
Colour Key
Change Layout
2.12.3. Detailed Execution Trace
The Execution Trace graph
Execution View
Defining program names
Run-specific execution parameters
Filtering steps
Summary tab
Statistics
Cycle proportions
Tile balance
New BSP statistics
Details tab
Internal Sync
External Sync
SyncAns
OnTileExecute
DoExchange
GlobalExchange operations
StreamCopy
2.12.4. Lightweight Profiling
The Lightweight Profiling graph
Lightweight Profiling block types
Common
Stream Copy
Buffer Flush (or Block Flush)
Overflow
Unknown
2.13. Application preferences
2.13.1. Setting the colour theme
2.13.2. SSH preferences
2.13.3. Menu close delay
2.13.4. Scroll behaviour
2.13.5. Show help links
2.13.6. Quit after last window is closed
2.13.7. Experimental features
2.13.8. Show graph stats
2.13.9. Stack graph values
2.13.10. Send telemetry
2.13.11. Software update
2.14. FAQs
2.14.1. Not-always-live memory discrepancy
2.14.2. Using the Graph Analyser over X-Forwarding on MacOS
2.14.3. How can I reduce the size of my profile report files?
2.15. Glossary
2.15.1. Architecture
2.15.2. BSP
2.15.3. Bulk-synchronous parallel
2.15.4. Codelet
2.15.5. Compute set
2.15.6. Debug context
2.15.7. Edge
2.15.8. Exchange
External exchange
Global exchange
Host exchange
Inter-IPU exchange
2.15.9. Flame graph
2.15.10. IPU
2.15.11. Liveness
Always-live
Not-always-live
2.15.12. Lowering
2.15.13. Lowered variable
2.15.14. Memory
Memory bank
Memory element
Memory interference
Memory region
Non-interleaved memory
Interleaved memory
Overflowed memory
Out-of-memory (OOM)
2.15.15. Pipelining
2.15.16. PopART
2.15.17. Poplar
2.15.18. PopLibs
2.15.19. Replication
2.15.20. Sync
External sync
Internal sync
2.15.21. Tile
Active tile
Tile balance
Unlowered variable
2.15.22. Vertex
Vertex field
Vertex instance
Vertex source
Vertex state
Vertex type
2.16. Release notes
2.17. Licensing information
2.18. Data we collect
3. Release notes
3.1. Version 3.11.2
3.2. Version 3.10.0
3.3. Version 3.9.1
3.4. Version 3.8.0
3.5. Version 3.7.2
3.6. Version 3.6.1
3.7. Version 3.4.1
3.8. Version 3.3.1
3.9. Version 3.2.0
3.10. Version 3.1.1
3.11. Version 3.0.3
3.11.1. General improvements
3.11.2. Execution Trace
3.11.3. Program Tree
3.12. Version 2.5.5
3.12.1. Highlights
3.12.2. Liveness Report
3.12.3. Program Tree
3.12.4. Execution Trace
3.12.5. General improvements and bug fixes
3.13. Version 2.4.4
3.13.1. Highlights
3.13.2. Summary Report
3.13.3. Memory Report
3.13.4. Liveness Report
3.13.5. Program Tree
3.13.6. Operations Graph
3.13.7. Operations Summary
3.13.8. Execution Trace
3.13.9. General improvements and bug fixes
3.14. Version 2.3.2
3.14.1. Highlights
3.14.2. Poplar
3.14.3. PopART and TensorFlow
3.14.4. PopVision™ Graph Analyser
3.14.5. Summary Report
3.14.6. Memory Report
3.14.7. Liveness Report
3.14.8. Operations Report
3.14.9. Execution Trace Report
3.15. Version 2.2.5
3.15.1. Highlights
3.15.2. Poplar
3.15.3. Memory Report
3.15.4. Liveness Report
3.15.5. Program Tree
3.16. Version 2.1.3
3.16.1. Highlights
3.16.2. Summary Report
3.16.3. Memory Report
3.16.4. Liveness Report
3.16.5. Execution Trace
3.16.6. SSH Improvements
3.16.7. General application-wide changes
3.17. Version 2.0.0
3.17.1. Capturing Reports
3.17.2. Opening Reports
3.17.3. Summary Report
3.17.4. Memory Report
3.17.5. Liveness Report
3.17.6. Program Tree Report
3.17.7. Execution Trace Report
3.17.8. Comparing Reports
3.17.9. Help
3.17.10. General
3.17.11. Experimental Features
3.18. Known issues
3.19. Installation
3.19.1. Apple MacOS
3.19.2. Linux Ubuntu
3.19.3. Microsoft Windows
3.20. OS Compatibility
4. Legal notices
PopVision Graph Analyser User Guide
Index