Logo
PopXL User Guide and API (experimental)
Version: 3.1.0
  • 1. Introduction
  • 2. Concepts
    • 2.1. IRs
    • 2.2. Graphs
    • 2.3. Tensors
    • 2.4. Operations
  • 3. Simple example
  • 4. Data types
    • 4.1. 8-bit floating point datatypes
    • 4.2. 8-bit floating point inference model example
  • 5. Tensors
    • 5.1. Constant tensors
    • 5.2. Variable tensors
    • 5.3. Intermediate tensors
  • 6. Supported operations
    • 6.1. Data input and output
    • 6.2. List of available operations
  • 7. Custom operations
    • 7.1. Environment
    • 7.2. Parameter struct
    • 7.3. Operation class
    • 7.4. Opx class
    • 7.5. Gradient operation class
    • 7.6. Gradient opx class
    • 7.7. Python bindings
    • 7.8. Python wrapper
    • 7.9. Auto-compiling custom operations with cppimport
    • 7.10. Using your custom operation
  • 8. Graphs
    • 8.1. Main graph
    • 8.2. Graphs
    • 8.3. Creating a graph
    • 8.4. Calling a graph
    • 8.5. Calling a graph in a loop
    • 8.6. Graph replication
    • 8.7. Code loading from Streaming Memory
      • 8.7.1. Minimal example
      • 8.7.2. Controlling liveness between multiple calls
      • 8.7.3. Optimisation: merging the code load operations
      • 8.7.4. Advanced example: nested code loading
      • 8.7.5. Advanced concept: code loading in dynamic branches
  • 9. Transforms
    • 9.1. Autodiff
  • 10. Context manager
  • 11. Session
    • 11.1. Running a session
    • 11.2. Getting and setting tensor data
      • 11.2.1. When transfers will occur between host and device
    • 11.3. Nested Session Contexts
    • 11.4. Number of host transfers
    • 11.5. Data input shape
    • 11.6. Device Types
  • 12. Variables in Streaming Memory
    • 12.1. Remote buffers
    • 12.2. Remote variable tensors
    • 12.3. Variable tensors for replicated tensor sharding
  • 13. Replication
    • 13.1. Graph replication
    • 13.2. Replica grouping
    • 13.3. Code examples
    • 13.4. Retrieval modes
  • 14. Distributed PopXL Instances
    • 14.1. Introduction
    • 14.2. Primer on using PopDist and PopRun to run multi-instance applications
    • 14.3. Basic Example
    • 14.4. Variable ReplicaGroupings and multiple instances
      • 14.4.1. Detail of inter-instance communication
    • 14.5. Sharding and multiple instances
      • 14.5.1. Basic Example
      • 14.5.2. Using shard_over
      • 14.5.3. Complex Example
  • 15. Application example: MNIST
    • 15.1. Import the necessary libraries
    • 15.2. Prepare dataset
    • 15.3. Create IR for training
      • 15.3.1. Create network
      • 15.3.2. Calculate gradients and update weights
    • 15.4. Run the IR to train the model
    • 15.5. Create an IR for testing and run the IR to test the model
  • 16. Application example: MNIST with replication and RTS
    • 16.1. Add support for replications
    • 16.2. Change variable tensors to RTS variable tensors
  • 17. Environment variables
    • 17.1. Logging
      • 17.1.1. POPART_LOG_LEVEL
      • 17.1.2. POPART_LOG_DEST
      • 17.1.3. POPART_LOG_CONFIG
    • 17.2. Generating DOT files
    • 17.3. Caching of compiled executables
  • 18. Python API Reference
    • 18.1. Ir
    • 18.2. Contexts
    • 18.3. Data types
    • 18.4. Graphs
    • 18.5. Modules
    • 18.6. Random seeds
    • 18.7. Remote buffers
    • 18.8. Replica grouping
    • 18.9. Session
    • 18.10. Streams
    • 18.11. Tensors
    • 18.12. Tensor locations
    • 18.13. Transforms
    • 18.14. Utils
    • 18.15. Ops available in PopXL
  • 19. Index
  • 20. Legal notices
PopXL User Guide and API (experimental)


Revision 2eab3dd3.