Logo
PopVision Graph Analyser User Guide
Version: latest
  • 1. Introduction
  • 2. Overview
    • 2.1. End User License Agreement
    • 2.2. Telemetry consent
    • 2.3. About the IPU
  • 3. Capturing IPU reports
    • 3.1. Unsupported file versions
    • 3.2. Profiling Overhead
      • 3.2.1. Compilation
      • 3.2.2. Execution
    • 3.3. Reloading reports
    • 3.4. Profile troubleshooting
      • 3.4.1. Reducing the size of profile reports
      • 3.4.2. Missing or corrupted report files
      • 3.4.3. Compilation fails with OOM
    • 3.5. Poplar report files
      • 3.5.1. Binary archive (archive.a)
      • 3.5.2. Poplar Profile (profile.pop)
      • 3.5.3. Lowered Vars Information
      • 3.5.4. Frameworks Information (framework.json & app.json)
      • 3.5.5. Debug Information (debug.cbor)
    • 3.6. Using TensorFlow
    • 3.7. Using PopART
    • 3.8. Using PyTorch
  • 4. Opening reports
    • 4.1. Opening recent reports
    • 4.2. Sharing report URLs
    • 4.3. Opening the Demo Report
    • 4.4. Comparing reports
    • 4.5. Local reports
      • 4.5.1. Opening local reports
    • 4.6. Remote reports
      • 4.6.1. Opening a remote report
        • Configure SSH agent
        • Connecting via SSH and ProxyJump
      • 4.6.2. Connection errors
  • 5. Viewing reports
    • 5.1. Using the side menu
    • 5.2. Adjusting report size
    • 5.3. Navigating report graphs
      • 5.3.1. Using the Navigation panel
      • 5.3.2. Keyboard graph navigation
    • 5.4. Graph data keys
    • 5.5. Saving report images to disk
  • 6. Viewing a Summary Report
    • 6.1. Program Information
      • 6.1.1. Target
      • 6.1.2. Graph
    • 6.2. Poplar Engine options
    • 6.3. Framework and application JSON files
    • 6.4. Report files
  • 7. Viewing an Insights Report
    • 7.1. Memory insights
    • 7.2. Vertex and exchange sizes
    • 7.3. Tips on reducing memory usage
  • 8. Viewing a Memory Report
    • 8.1. Navigating memory reports
      • 8.1.1. Selecting individual tiles/IPUs
      • 8.1.2. Memory Report view options
    • 8.2. Total Memory graph
      • 8.2.1. Memory Report breakdown
        • Breakdown by Region
        • Breakdown by category
        • Breakdown by liveness
    • 8.3. Variables Memory graph
    • 8.4. Tile map Memory graph
    • 8.5. Changing the colour scale
  • 9. Tile memory usage
    • 9.1. Tile memory usage: Details tab
      • 9.1.1. Excluding Gaps
    • 9.2. Tile memory usage: Compute Sets tab
    • 9.3. Tile memory usage: Vertices tab
    • 9.4. Tile memory usage: Exchanges tab
    • 9.5. Tile memory usage: Variables tab
      • 9.5.1. Variable display options
      • 9.5.2. Memory interference
    • 9.6. Variable types
    • 9.7. Known variables
    • 9.8. Plot multiple variables
    • 9.9. Full-screen option
    • 9.10. Toggle between table and graph view
    • 9.11. Show differences between selected tiles
    • 9.12. Show base adress offset
  • 10. Viewing a Liveness Report
    • 10.1. Navigating Liveness reports
    • 10.2. The Liveness graph
      • 10.2.1. Selecting a source
      • 10.2.2. Filtering steps
      • 10.2.3. Viewing options
    • 10.3. Liveness stack details
      • 10.3.1. Viewing enhanced debug information
      • 10.3.2. Always-Live Variables
      • 10.3.3. Not-Always-Live Variables
      • 10.3.4. Vertices
      • 10.3.5. Cycle estimates
      • 10.3.6. Show differences between selected tiles
  • 11. Viewing a Program Tree
    • 11.1. Selecting a compilation step
    • 11.2. Searching for program steps
    • 11.3. Details tab
    • 11.4. Viewing debug information
    • 11.5. Change Layout
    • 11.6. Viewing options
  • 12. Viewing an Operations Summary
    • 12.1. Operations table
      • 12.1.1. Selecting a software layer
      • 12.1.2. Selecting which columns to display
    • 12.2. Sorting and filtering
    • 12.3. Operations Summary tabs
      • 12.3.1. Summary tab
      • 12.3.2. Program Tree tab
      • 12.3.3. Code tab
      • 12.3.4. Cycles tab
      • 12.3.5. FLOPs tab
      • 12.3.6. Debug tab
  • 13. Viewing an Operations Graph
    • 13.1. Graph entities
      • 13.1.1. HLO layers
        • Defining HLO layers
      • 13.1.2. High Level Operations (HLOs)
      • 13.1.3. HLO Calls/fusion operations
      • 13.1.4. Edge tensors
    • 13.2. Selected entity information tabs
    • 13.3. Highlighting operations by metric
    • 13.4. Advanced options
  • 14. Viewing an Execution Trace
    • 14.1. Detailed Execution Trace vs Lightweight Profiling
    • 14.2. Execution Trace options
      • 14.2.1. Selecting IPUs
      • 14.2.2. View options
        • Detailed Execution Trace Options
        • Lightweight Profiling Options
      • 14.2.3. Colour Key
      • 14.2.4. Change Layout
    • 14.3. Detailed Execution Trace
      • 14.3.1. The Execution Trace graph
      • 14.3.2. Execution View
        • Defining program names
        • Run-specific execution parameters
      • 14.3.3. Filtering steps
      • 14.3.4. Summary tab
        • Statistics
        • Cyclye proportions
        • Tile balance
        • New BSP statistics
      • 14.3.5. Details tab
        • Internal Sync
        • External Sync
        • SyncAns
        • OnTileExecute
        • DoExchange
        • GlobalExchange operations
        • StreamCopy
    • 14.4. Lightweight Profiling
      • 14.4.1. The Lightweight Profiling graph
      • 14.4.2. Lightweight Profiling block types
        • Common
        • Stream Copy
        • Buffer Flush (or Block Flush)
        • Overflow
        • Unknown
  • 15. Application preferences
    • 15.1. Setting the colour theme
    • 15.2. SSH preferences
    • 15.3. Menu close delay
    • 15.4. Scroll behaviour
    • 15.5. Show help links
    • 15.6. Quit after last window is closed
    • 15.7. Experimental features
    • 15.8. Byte units
    • 15.9. Show graph stats
    • 15.10. Stack graph values
    • 15.11. Send telemetry
    • 15.12. Software update
  • 16. FAQs
    • 16.1. Not-always-live memory discrepancy
    • 16.2. Using the Graph Analyser over X-Forwarding on MacOS
    • 16.3. How can I reduce the size of my profile report files?
  • 17. Glossary
  • 18. Release notes
  • 19. Licensing information
  • 20. Data we collect
  • 21. Trademarks & copyright
PopVision Graph Analyser User Guide

Search help

Note: Searching from the top-level index page will search all documents. Searching from a specific document will search only that document.

  • Find an exact phrase: Wrap your search phrase in "" (double quotes) to only get results where the phrase is exactly matched. For example "PyTorch for the IPU" or "replicated tensor sharding"
  • Prefix query: Add an * (asterisk) at the end of any word to indicate a prefix query. This will return results containing all words with the specific prefix. For example tensor*
  • Fuzzy search: Use ~N (tilde followed by a number) at the end of any word for a fuzzy search. This will return results that are similar to the search word. N specifies the “edit distance” (fuzziness) of the match. For example Polibs~1
  • Words close to each other: ~N (tilde followed by a number) after a phrase (in quotes) returns results where the words are close to each other. N is the maximum number of positions allowed between matching words. For example "ipu version"~2
  • Logical operators. You can use the following logical operators in a search:
    • + signifies AND operation
    • | signifies OR operation
    • - negates a single word or phrase (returns results without that word or phrase)
    • () controls operator precedence


Revision 8f70d073.