Targeting the IPU from TensorFlow 2
- 1. Introduction
- 2. Targeting the Poplar XLA device
- 3. Compiling and pre-compiling executables
- 4. Support for TensorFlow 2
- 5. TensorFlow 2 examples
- 6. Training a model
- 7. Efficient IPU I/O
- 8. Example using IPUEstimator
- 9. Example using IPUPipelineEstimator
- 10. Distributed training
- 11. Half-precision floating point and stochastic rounding
- 12. IPU-optimised operations
- 13. IPU Outlined Functions
- 14. Writing custom operations
- 15. IPU host embeddings
- 16. Retrieving information about compilation and execution
- 16.1. Adding an operation to get compilation and execution events
- 16.2. Enabling tracing in the hardware configuration options
- 16.3. Extract the reports from the returned events
- 16.4. Producing reports for use with the PopVision Graph Analyser
- 16.5. Using the IPU Model device for debugging
- 16.6. TensorFlow options for reporting
- 16.7. Reading the Poplar textual summary report
- 16.8. Producing an ELF image of the compilation
- 16.9. Dumping auxiliary Poplar information
- 16.10. XLA graph file naming
- 17. API changes
- 18. Python API
- 18.1. Operations and utilities related to the Graphcore IPU
- 18.2. Distribution strategy for a single system
- 18.3. Compiler interface
- 18.4. Scoping contexts
- 18.5. Infeed queue
- 18.6. Outfeed queue
- 18.7. General utilities
- 18.8. Looping utilities
- 18.9. Distributed training
- 18.10. Horovod
- 18.11. Datasets
- 18.12. Estimators
- 18.13. Keras
- 18.14. Keras layers
- 18.15. Keras losses
- 18.16. Operators
- 18.16.1. Custom operations
- 18.16.2. Functional operators
- 18.16.3. Graphcore utility operations
- 18.16.4. IPU specific maths operations
- 18.16.5. Pipelining operators
- 18.16.6. Popnn primitive neural network operators
- 18.16.7. Popnn normalization operators
- 18.16.8. Popnn recurrent neural network operators
- 18.16.9. Popops all to all and all gather operators
- 18.16.10. Popops cross replica operators
- 18.16.11. Popops embedding operators
- 18.16.12. Popops reduce scatter operator
- 18.16.13. Poprand operators
- 18.16.14. Utility operations to be used in replicated mode
- 18.16.15. Summary operations for IPUs
- 18.17. Optimisers
- 18.18. Sharding
- 19. TensorFlow operators supported by the IPU
- 20. Resources
- 21. Index
- 22. Trademarks & copyright