PopART User Guide
Version: 2.2.0
1. Introduction
2. Importing graphs
2.1. Creating a session
2.2. Session control options
3. Building graphs in PopART
3.1. Adding operations to the graph
3.2. Adding parameters to the graph
3.3. Setting outputs
3.4. Setting the IPU number for operations
4. Executing graphs
4.1. Setting input/output data buffers for an execution
4.1.1. Retrieving results
4.2. Selecting a device for execution
4.3. Executing a session
4.4. Saving and loading a model
4.5. Retrieving profiling reports
4.6. Turning on execution tracing
4.6.1. Programming interface
4.6.2. Output format
4.7. Errors
4.7.1. Application errors
4.7.2. System errors
5. Distributed training with Horovod
5.1. How to modify a PopART program for distributed training
5.2. Install
5.3. Configuring and running distributed training
5.4. Full distributed training example
6. Performance optimisation
6.1. Pipelined execution
6.2. Graph replication
6.2.1. Local replication
6.2.2. Global replication
6.3. Sync configuration
6.3.1. Sync patterns
7. Supported operators
7.1. Domain: ai.graphcore
7.2. Domain: ai.onnx
8. Custom operators
8.1. Overview
8.1.1. Custom op classes
8.2. Implementing a custom op
8.2.1. The op class
LeakyReluOp example
8.2.2. The grad op class
8.2.3. The opx class
8.2.4. The grad opx class
8.3. Making the op available to PopART
8.3.1. Define the op identifier
8.3.2. Define the op creator
8.3.3. Define the opx creator
8.4. ONNX schema and shape inference
8.5. Using the op in a program
9. Environment variables
9.1. Logging
9.1.1. POPART_LOG_LEVEL
9.1.2. POPART_LOG_DEST
9.1.3. POPART_LOG_CONFIG
9.2. Generating DOT files
9.2.1. POPART_DOT_CHECKS
9.3. Inspecting the Ir
9.3.1. POPART_IR_DUMP
10. References
11. Glossary
11.1. Sample
11.2. Micro-batch size
11.3. Replication factor
11.4. Accumulation factor
11.5. Batch size
11.6. Batches per step
11.7. Step size
11.8. Input data shape
12. Trademarks & copyright
PopART User Guide
Index