Targeting the IPU from TensorFlow 2
- 1. Introduction
- 2. Targeting the Poplar XLA device
- 3. Support for TensorFlow 2
- 4. Keras with IPUs
- 5. Compiling and pre-compiling executables
- 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
- 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. Configuration utilities
- 18.9. Looping utilities
- 18.10. Distributed training
- 18.11. Horovod
- 18.12. Datasets
- 18.13. Estimators
- 18.14. Keras
- 18.15. Keras layers
- 18.16. Keras losses
- 18.17. Keras optimizers
- 18.18. Operators
- 18.18.1. Custom operations
- 18.18.2. Functional operators
- 18.18.3. Image operations
- 18.18.4. Graphcore utility operations
- 18.18.5. IPU specific maths operations
- 18.18.6. Pipelining operators
- 18.18.7. Popnn primitive neural network operators
- 18.18.8. Popnn normalization operators
- 18.18.9. Popnn recurrent neural network operators
- 18.18.10. Popops all to all and all gather operators
- 18.18.11. Popops cross replica operators
- 18.18.12. Popops embedding operators
- 18.18.13. Popops reduce scatter operator
- 18.18.14. Poprand operators
- 18.18.15. Utility operations to be used in replicated mode
- 18.18.16. Slicing operators
- 18.18.17. Statistics operators
- 18.18.18. Summary operations for IPUs
- 18.19. Optimisers
- 18.20. Sharding
- 19. TensorFlow operators supported by the IPU
- 20. Resources
- 21. Index
- 22. Trademarks & copyright