Get desktop application:
View/edit binary Protocol Buffers messages
Used in:
A use of an HloPoplarBuffer which reads a buffer, but it is not aliased by any outputs.
A use of an HloPoplarBuffer which reads a buffer and outputs alias that buffer without modifying the values in it.
A use of an HloPoplarBuffer which reads a buffer, modifies the values and outputs alias that buffer.
An enum representing copy method for each tensor copied.
Used in:
Preserve order and aliases.
Preserve order unless there are aliases, otherwise expand them.
Copy nothing and return input tensor.
Try to defer copy to get better layout or do alias-preserving copy.
Try to defer copy to get better layout or do alias-expanding copy.
Try to defer copy to get better layout or return input tensor.
Used in:
Used in:
An enum used for representing a convolution type in a multi-convolution.
Retired2 = 2; Retired3 = 3;
Used in:
The functional signature of the poplar executable.
Information about runtime used to compile executable
Whether this is model can stall without more data arriving. This can currently happen when using pipelining with Grouped or Interleaved schedule or IO tiles.
Configuration for one of the infeed/outfeed streams
Used in:
Enums to use as string keys in the FrontendAttributes map from tensorflow/compiler/xla/xla_data.proto for the Poplar specific attributes.
Scope override for stochastic rounding (See tensorflow/python/ipu/scopes.py)
Custom call's type (Used in pipelining).
Type to use to store the partials results.
Used in pipelining to indicate how many times each stage is executed.
ID of a pipeline stage.
Used in pipelining to indicate how many times the pipeline should be executed.
Used to select the pipeline schedule.
Used to configure the pipeline lowering to Poplar.
Used to indicate whether to offload variables which are only used by the resource update.
Used to indicate how many batches need to be accumulated during gradient accumulation.
The "Machine Learning" type of the instruction
Used to set Poplar OptionFlags of an instruction.
The number of times a loop executes to compute a batch on each pipeline stage execution.
Whether to partition offloaded weight update variables across the replicas.
Used in pipelining to indicate whether activations should be offloaded into remote memory
Used in pipelining to indicate whether the gradient accumulation buffers should be offloaded.
Used in pipelining to indicate whether weights used by the forward/backward stages should be partitioned between replicas.
Used in pipelining to indicate whether weights used by the forward/backward stages should be offloaded.
Used in pipelining to indicate the recomputation mode.
Used for functions to indicate whether the callsite should have unique sharding.
Used for functions to indicate whether the callsite should keep the input layouts or whether they can be reallocated.
Used in:
Used in:
When to attach to the device.
Used in:
Attach when configuring the device.
Defer connection to when the IPU is needed. (i.e when running an executable).
Never attach to the device. (Device can only be used for compilation).
Do not attach to a device and any execution will just return zeros.
The type of execution profiling to use. See poplar docs for the meaning of the profiling types.
Used in:
Do not do execution profiling.
Do execution profiling at the device level.
Do execution profiling at the IPU level.
Do execution profiling at the Tile level.
Options to control Poplar compilation
Options controlling the configuration of convolutions
Options controlling the configuration of matmuls
Options controlling the configuration of pooling operations
If set, then don't include MatMul pass type in the matmul options
Removed feature
The maximum number of bytes to wait before scheduling an all-reduce
The maximum number of bytes to wait before scheduling a reduce-scatter
The maximum number of bytes to wait before a inter IPU copy between IPUs is scheduled.
The maximum number of bytes that can be waiting before a send/recv instruction cluster is scheduled.
The maximum distance to look into the future for valid schedules.
The maximum number of nodes to consider when building the tree of future schedules.
Whether to prefetch data for data streams.
Whether to fuse multi_slice operations that use the same input.
Whether to fuse matmul operations that use the same input or the same weights.
Which selection order to use when creating the virtual graphs.
Whether to converts gathers into multiSlice operations.
Where to save the compiled executable.
When to attach to the device.
Version of the IPU hardware used.
Use stable statistics calculation in norms
How many tiles to reserve per IPU for IO operations.
Collective operations options for the Graphcore Communication Library.
Block size for triangular solve expander pass.
Enable remote buffer embeddings
Enable math optimizations which might not adhere to IEEE.
Options for multi-replica distribution.
The minimum size a tensor (in bytes) has to be in order to be consider for being stored in remote memory.
Whether to place TensorFlow operations on IO tiles.
Whether to enable remote buffers for the compilations without devices attached.
Control the merging mode for compatible remote buffers. THREESTATE_OFF: Do not attempt to merge any remote buffers. THREESTATE_ON: Attempt to merge all compatible remote buffers. THREESTATE_UNDEFINED: Merge remote buffers only when it is considered beneficial to enable code re-use.
Block size for triangular solve expander pass.
Group size for distributed batch norm.
Options controlling the configuration of slice operations.
The maximum number of bytes to wait before scheduling a reduce-many
Option for controlling whether experimental prng work is enabled
The maximum number of bytes to wait before scheduling an all-gather
Option for controlling whether the DynamicSliceReplacer pass is run.
Options controlling the configuration of each IPU device
Used in:
Set one of these fields to determine the way to select IPUs
Set this to the number of IPUs which are required. The system will acquire a free IPU configuration containing this many physical IPUs.
Set this to acquire a specific IPU hardware configuration.
Used in:
These flags match the ones provided by the poplar::FloatingPointBehaviour structure
Used in:
Options controlling the software IPU model (see IPUModel in poplar)
Used in:
Options to control IPU profiling
Used in:
Set to enable compilation trace.
Set to have the poplar reports in text, not JSON.
Set to enable I/O trace.
Execution trace type.
Report every N'th execution (0=once only).
Enable IPU trace events - indpendently of poplar reporting.
Set to have the poplar reports in CBOR, not JSON.
When non-empty, reports will be written into this directory, instead of into the Tensorboard events.
Reports over this size (in bytes) will be discarded.
Options for controlling graph profile report generation.
Set to have the Poplar serialized graph to be included with the compiler report.
Options to control the memory size and speed of the execution trade-off.
Used in:
Option controlling whether to rearrange streamed copies on the host
Option to disable caching of sub-graphs containing convolutions
Option to enable re-computation.
Merge all streaming reads into a block to reduce the host-sync round-trip count. This may decrease the device->host read latency at the expense of having more live tensors in memory on the device.
Specifies the scheduling algorithm to use
Who instantiated the IpuOptions object.
Used in:
Used in:
Tries to automatically determine the best scheduler based on TensorFlow's native heap simulator.
Groups clusters of operations together in order to look through stretches of instructions with potentially high liveness.
Schedules the instructions in the order which is obtained by walking the graph in 'post order'.
Looks ahead a number of operations from any schedulable one, as given by the `max_scheduler_lookahead_depth` and `max_scheduler_search_space_size` options. It attempts to look through areas of high liveness.
Schedules the graph giving priority to the shortest path to the root.
Used in:
An enum representing the "Machine Learning" type of the instruction.
Used in:
Used in:
Used in:
Backend specific HloInstruction config
Flags to be used by the convolution.
Flags to be used by the matmul.
Flags to be used by the slice operation.
The tile subset that should be used by this instruction.
Tag that says whether an instruction produces a value thats identical across replicas.
Tag for controlling how we perform SR.
Instruction config for a Call instruction
Used in:
Used in:
(message has no fields)
Used in:
Used in:
Used in:
Used in:
Used in:
Used in:
TODO(T25039): always enable this option.
Used in:
Used in:
Call by default.
Copy config for a copy instruction
Used in:
Instruction config for a fusion instruction
Used in:
Convolutions
The number of replicas
Names of the infeed instructions
Names of the outfeed instructions
The OptionFlags which were used during engine compilation
Message which is stored as the config field for an HloInstruction for an HloInfeedInstruction/HloOutfeedInstruction instruction.
Used in:
The unique name of this feed.
Optional mode.
We store the TF DataType for each shape as it is not safe to convert from XLA PrimitveType to TF DataType.
How many elements to prefetch.
Whether the feed sequence is reusable because this feed id has multiple uses.
Whether to focus on latency over throughput
Used in:
Structure for setting an individual Poplar OptionFlag for OptionFlags
Used in: , , , , ,
Structure for holding multiple Poplar OptionFlags
Used to describe how an input buffer from an operand for an instruction is used in the output of that instruction.
Used in:
Used in:
Used in:
Used in:
Used in:
Used in:
An enum for helping with setting a state of something, where the state can be on, off or automatic/not set/undefined.
Used in: , , ,
An enum representing a subset of tiles per IPU.
Used in: