7. PopVision Analysis Python API¶
-
pva.
openReport
(filename: str) → pva::preview::Report¶
-
class
pva.
Report
¶ -
property
compilation
¶ Details from the poplar compilation.
-
property
execution
¶ Details from the poplar execution.
- Type
-
property
instrumentationSettings
¶ Details of the instrumentation settings used.
-
property
poplarVersion
¶ The poplar version.
- Type
-
property
version
¶ The report format version.
- Type
pva.ProfileVersionReport
-
property
-
class
pva.
PoplarVersion
¶ The poplar version that was used when generating the report.
-
property
major
¶ Major version number.
- Type
int
-
property
minor
¶ Minor version number.
- Type
int
-
property
packageHash
¶ Poplar GIT hash
- Type
str
-
property
point
¶ Point version number.
- Type
int
-
property
string
¶ Poplar version as a string.
- Type
str
-
property
-
class
pva.
InstrumentationSettings
¶ InstrumentationSettings contain information about the instrumentation settings used when compiling the graph.
-
class
ComputeInstrumentationLevel
¶ Members:
Off
Vertex
Tile
Ipu
Device
Unknown
-
Device
= ComputeInstrumentationLevel.Device¶
-
Ipu
= ComputeInstrumentationLevel.Ipu¶
-
Off
= ComputeInstrumentationLevel.Off¶
-
Tile
= ComputeInstrumentationLevel.Tile¶
-
Unknown
= ComputeInstrumentationLevel.Unknown¶
-
Vertex
= ComputeInstrumentationLevel.Vertex¶
-
property
name
¶ handle) -> str
- Type
(self
-
-
Device
= ComputeInstrumentationLevel.Device¶
-
class
ExternalExchangeInstrumentationLevel
¶ Members:
Off
Tile
Unknown
-
Off
= ExternalExchangeInstrumentationLevel.Off¶
-
Tile
= ExternalExchangeInstrumentationLevel.Tile¶
-
Unknown
= ExternalExchangeInstrumentationLevel.Unknown¶
-
property
name
¶ handle) -> str
- Type
(self
-
-
Ipu
= ComputeInstrumentationLevel.Ipu¶
-
Off
= ExternalExchangeInstrumentationLevel.Off¶
-
Tile
= ExternalExchangeInstrumentationLevel.Tile¶
-
Unknown
= ExternalExchangeInstrumentationLevel.Unknown¶
-
Vertex
= ComputeInstrumentationLevel.Vertex¶
-
property
compute
¶ Compute instrumentation level.
- Type
pva.ComputeInstrumentationLevel
-
property
externalExchange
¶ External exchange instrumentation level.
- Type
pva.ExternalExchangeInstrumentationLevel
-
class
-
class
pva.
Graph
¶ Graph contains basic details about the graph.
-
property
numComputeSets
¶ The number of compute sets.
- Type
int
-
property
numEdges
¶ The number of edges.
- Type
int
-
property
numVars
¶ The number of variables.
- Type
int
-
property
numVertices
¶ The number of vertices.
- Type
int
-
property
-
class
pva.
Target
¶ Target contains information about the target hardware.
-
Cpu
= Type.Cpu¶
-
Ipu
= Type.Ipu¶
-
IpuModel
= Type.IpuModel¶
-
class
Type
¶ The type of hardware
Members:
Ipu
IpuModel
Cpu
Unknown
-
Cpu
= Type.Cpu¶
-
Ipu
= Type.Ipu¶
-
IpuModel
= Type.IpuModel¶
-
Unknown
= Type.Unknown¶
-
property
name
¶ handle) -> str
- Type
(self
-
-
Unknown
= Type.Unknown¶
-
property
architecture
¶ The IPU architecture.
- Type
-
property
bytesPerIPU
¶ The number of bytes of memory on an IPU.
- Type
int
-
property
bytesPerTile
¶ The number of bytes of memory on a tile.
- Type
int
-
property
clockFrequency
¶ The tile clock frequency in Hz
- Type
float
-
property
ipusPerReplica
¶ The number of IPUS in a replica.
- Type
int
-
property
memoryPerReplica
¶ The total memory in a replia.
- Type
int
-
property
minSyncDelay
¶ The minimum sync delay for any tile.
- Type
int
-
property
numIPUs
¶ The number of IPU chips in the system.
- Type
int
-
property
numReplicas
¶ The number of replicas.
- Type
int
-
property
numTiles
¶ The total number of tiles. This is the product of numIPUs and tilesPerIPU. It is stored redundantly for convenience.
- Type
int
-
property
tilesPerIpu
¶ The number of tiles on each IPU chip.
- Type
int
-
property
tilesPerReplica
¶ The number of tiles in a replica.
- Type
int
-
property
totalMemory
¶ The total memory. This is the product of bytesPerTile and numTiles (or bytesPerIPU and numIPUs).
- Type
int
-
property
type
¶ The target typ.
- Type
-
-
class
pva.
VertexType
¶ VertexType represents a vertex type.
-
Asm
= Source.Asm¶
-
CPlusPlus
= Source.CPlusPlus¶
-
class
Source
¶ Source indicates how the vertex has been implemented.
Members:
Asm : Implemented in assembler.
CPlusPlus : Implemented in C++.
Unknown : Implementation unknown.
-
Asm
= Source.Asm¶
-
CPlusPlus
= Source.CPlusPlus¶
-
Unknown
= Source.Unknown¶
-
property
name
¶ handle) -> str
- Type
(self
-
-
Unknown
= Source.Unknown¶
-
property
name
¶ The name of the vertex type.
- Type
str
-
property
size
¶ The size of the vertex type in bytes.
Contains the size of the vertex state (the class members) of each vertex type. For example Doubler might have 4 bytes of state.
- Type
int
-
property
source
¶ How the vertex type has been implemented.
-
-
class
pva.
VertexMemory
¶ VertexMemory represents how much memory a vertex type uses on a tile.
-
property
codeBytes
¶ The amount of code.
- Type
int
-
property
copyPtrBytes
¶ The amount of copy pointers.
- Type
int
-
property
descriptorBytes
¶ The amount of descriptors.
- Type
int
-
property
edgePtrBytes
¶ The amount of edge pointers.
- Type
int
-
property
paddingBytes
¶ The amount of padding pointers.
- Type
int
-
property
type
¶ The type of vertex.
- Type
-
property
vertexDataBytes
¶ The amount of vertex data.
- Type
int
-
property
-
class
pva.
MemoryOverlap
¶ MemoryOverlap represents how much memory within a category / region is overlapped or not overlapped.
The memory used by some variables can be overlapped with others, because they are not live at the same time. Hence, the usage is split into overlappedand nonOverlapped components.
-
property
nonOverlapped
¶ The memory not overlapped.
- Type
int
-
property
overlapped
¶ The memory overlapped.
- Type
int
-
property
-
class
pva.
CategoryMemory
¶ CategoryMemory represents the breakdown of memory by region for a category.
Category is a breakdown of memory usage across the whole system by the type of data, and the region it is in.
There are two memory regions on each tile, interleaved and non-interleaved, the use of each of these is reported separately. If the memory requirement is greater than the available memory, then this is reported as overflowed.
-
property
interleaved
¶ The interleaved memory region.
- Type
pvaMemoryOverlap
-
property
nonInterleaved
¶ The non interleaved memory region
- Type
-
property
overflowed
¶ The overflowed memory region.
- Type
-
property
-
class
pva.
TileMemoryCategories
¶ Memory represent the memory layout of a tile in various different ways.
The memory object contains a lot of information about memory use. All memory is statically allocated so you don’t need to run the program to gather this data.
-
property
constant
¶ Constants memory category.
Constants added by the user. Variables added by the compiler that happen to be constant will be categorised as “variable”.
- Type
pva.Memory.Category
-
property
controlCode
¶ Control code memory category.
Code for Program objects and running compute sets.
- Type
pva.Memory.Category
-
property
controlId
¶ Control id memory category.
Variables that are used in switch programs or variables that store a sync ID for tracking host/device synchronisation points.
- Type
pva.Memory.Category
-
property
controlTable
¶ Control table memory category.
A table that lists the vertices to run in each compute set. Only used if the table scheduler is enabled.
- Type
pva.Memory.Category
-
property
copyDescriptor
¶ Copy descriptor memory category.
Copy descriptors are special variable-sized fields used by copy vertices.
- Type
pva.Memory.Category
-
property
globalExchangeCode
¶ Global exchange code memory category.
Code for performing exchange operations between IPUs.
- Type
pva.Memory.Category
-
property
globalExchangePacketHeader
¶ Global exchange packet header category.
Packet headers for exchange operations between IPUs.
- Type
pva.Memory.Category
-
property
globalMessage
¶ Global message memory category.
Message variables holding data being sent between IPUs.
- Type
pva.Memory.Category
-
property
hostExchangeCode
¶ Host exchange code memory category.
Code for performing exchange operations to and from the host
- Type
pva.Memory.Category
-
property
hostExchangePacketHeader
¶ Host exchange packet header memory category.
Data used as packet headers for host exchange.
- Type
pva.Memory.Category
-
property
hostMessage
¶ Host message memory category.
Message variables holding data being sent or received from the host.
- Type
pva.Memory.Category
-
property
instrumentationResults
¶ Instrumentation results memory category.
Storage for profiling information.
- Type
pva.Memory.Category
-
property
internalExchangeCode
¶ Internal exchange code memory category.
Code for performing internal exchanges.
- Type
pva.Memory.Category
-
property
message
¶ Message memory category.
Message data for internal exchanges.
- Type
pva.Memory.Category
-
property
multiple
¶ Multiple memory category.
Space shared by variables from multiple different categories.
- Type
pva.Memory.Category
-
property
outputEdge
¶ Output edge memory category.
Storage for output edge data before an exchange takes place.
- Type
pva.Memory.Category
-
property
rearrangement
¶ Rearrangement memory category.
Variables holding rearranged versions of tensor data. A rearranged variable will never be always live as it is only required in the context of a specific compute set.
- Type
pva.Memory.Category
Shared code storage memory category.
Code shared by vertices.
- Type
pva.Memory.Category
Shared data storage memory category.
Data shared by vertices.
- Type
pva.Memory.Category
-
property
stack
¶ Stack memory category.
The work and supervisor stacks allocated on the specified tile. For more information about worker stack allocation see the Vertex Assembly Programming Guide.
- Type
pva.Memory.Category
-
property
variable
¶ Variable memory category.
Variables created in the program (for example, created by the Poplar graph.addVariable() function).
- Type
pva.Memory.Category
-
property
vectorListDescriptor
¶ Vector list descriptor memory category.
The data for VectorList<Input<…>, DeltaN> fields.
- Type
pva.Memory.Category
-
property
vertexCode
¶ Vertex code memory category.
Code for vertex functions (codelets).
- Type
pva.Memory.Category
-
property
vertexFieldData
¶ Vertex field data memory category.
Variable-sized fields, e.g. the data for Vector<float>, Vector<Input<…>> and InputSet<…> fields.
- Type
pva.Memory.Category
-
property
vertexInstanceState
¶ Vertex instance state memory category.
An instance of a Vertex class object. This will be sizeof(VertexName) for each vertex.
- Type
pva.Memory.Category
-
property
-
class
pva.
MemoryWithAndWithoutGaps
¶ MemoryWithAndWithoutGaps represents the amount of memory with and without gaps between allocations.
The memory usage in each region is provided, both with and without gaps. Gaps arise because of memory allocation constraints, such as alignment requirements. For more information on the tile memory architecture, refer to the IPU Programmer’s Guide. Memory with and with gaps between allocations.
-
property
excludingGaps
¶ Memory excluding gaps between allocations.
- Type
int
-
property
includingGaps
¶ Memory including gaps between allocations.
- Type
int
-
property
-
class
pva.
Memory
¶ Memory represent the memory layout of a tile in various different ways.
The memory object contains a lot of information about memory use. All memory is statically allocated so you don’t need to run the program to gather this data.
-
property
alwaysLiveBytes
¶ The total always live memory for this tile.
Variables that exist for the entire execution are always live.
- Type
int
-
property
category
¶ Details memory by category.
- Type
pva.Memory.Category
-
property
interleaved
¶ Details of memory with the interleaved region for this tile.
- Type
pva.Memory.MemoryWithWithoutGaps
-
property
nonInterleaved
¶ Details of memory with the non interleaved region for this tile.
- Type
pva.Memory.MemoryWithWithoutGaps
-
property
notAlwaysLiveBytes
¶ The total not always live memory for this tile.
Variables that are created and/or deleted during execution are not. always live.
- Type
int
-
property
overflowed
¶ Details of memory with the overflowed region for this tile.
- Type
pva.Memory.MemoryWithWithoutGaps
-
property
total
¶ Details of the total memory usage for this tile.
- Type
pva.Memory.MemoryWithWithoutGaps
-
property
vertices
¶ List of vertex memory usage on this tile.
- Type
List[VertexMemory]
-
property
-
class
pva.
Tile
¶ Tile represents details of a single tile on an IPU.
-
property
clockFrequency
¶ The tile clock frequency in Hertz.
- Type
float
-
property
memory
¶ Details of memory useage by this tile.
- Type
pva.Tile.Memory
-
property
relativeSyncDelay
¶ The sync delay for each tile (relative to the minimum value).
- Type
int
-
property
-
class
pva.
IPU
¶ IPU represents details of a single IPU.
-
property
architecture
¶ The architecture type of this IPU.
- Type
-
property
-
class
pva.IPU.
Architecture
¶ Enum of the different IPU architectures
Members:
Ipu1 : IPU Mk1
Ipu2 : IPU Mk2
Unknown : Unknown
-
class
pva.
Replica
¶ Replica represents details of a single replica.
-
class
pva.
Program
¶ Program is a base class that represents program type.
-
Call
= Type.Call¶
-
DoExchange
= Type.DoExchange¶
-
GetGlobalConsensus
= Type.GetGlobalConsensus¶
-
GlobalExchange
= Type.GlobalExchange¶
-
IfElse
= Type.IfElse¶
-
OnEveryTileSwitch
= Type.OnEveryTileSwitch¶
-
OnTileExecute
= Type.OnTileExecute¶
-
OnTileSwitch
= Type.OnTileSwitch¶
-
Repeat
= Type.Repeat¶
-
RepeatWhile
= Type.RepeatWhile¶
-
Sans
= Type.Sans¶
-
Sequence
= Type.Sequence¶
-
SetLocalConsensus
= Type.SetLocalConsensus¶
-
SetLocalConsensusFromVar
= Type.SetLocalConsensusFromVar¶
-
StreamCopyBegin
= Type.StreamCopyBegin¶
-
StreamCopyEnd
= Type.StreamCopyEnd¶
-
StreamCopyMid
= Type.StreamCopyMid¶
-
Sync
= Type.Sync¶
-
SyncAns
= Type.SyncAns¶
-
class
Type
¶ Members:
Unknown
Sequence
OnTileExecute
Repeat
RepeatWhile
OnTileSwitch
OnEveryTileSwitch
IfElse
DoExchange
GlobalExchange
StreamCopyBegin
StreamCopyMid
StreamCopyEnd
WriteUndef
Sync
SetLocalConsensus
SetLocalConsensusFromVar
GetGlobalConsensus
Sans
Call
SyncAns
-
Call
= Type.Call¶
-
DoExchange
= Type.DoExchange¶
-
GetGlobalConsensus
= Type.GetGlobalConsensus¶
-
GlobalExchange
= Type.GlobalExchange¶
-
IfElse
= Type.IfElse¶
-
OnEveryTileSwitch
= Type.OnEveryTileSwitch¶
-
OnTileExecute
= Type.OnTileExecute¶
-
OnTileSwitch
= Type.OnTileSwitch¶
-
Repeat
= Type.Repeat¶
-
RepeatWhile
= Type.RepeatWhile¶
-
Sans
= Type.Sans¶
-
Sequence
= Type.Sequence¶
-
SetLocalConsensus
= Type.SetLocalConsensus¶
-
SetLocalConsensusFromVar
= Type.SetLocalConsensusFromVar¶
-
StreamCopyBegin
= Type.StreamCopyBegin¶
-
StreamCopyEnd
= Type.StreamCopyEnd¶
-
StreamCopyMid
= Type.StreamCopyMid¶
-
Sync
= Type.Sync¶
-
SyncAns
= Type.SyncAns¶
-
Unknown
= Type.Unknown¶
-
WriteUndef
= Type.WriteUndef¶
-
property
name
¶ handle) -> str
- Type
(self
-
-
Unknown
= Type.Unknown¶
-
WriteUndef
= Type.WriteUndef¶
-
accept
(self: pva_core.Program, arg0: pva::preview::ProgramVisitor) → None¶ The visitor pattern accept method.
-
property
children
¶ List of child programs. May be empty.
- Type
List[pva.Program]
-
property
name
¶ The name of the program. May be empty.
- Type
str
-
property
type
¶ The type of the program.
- Type
-
-
class
pva.
OnTileExecuteProgram
¶ -
accept
(self: pva_core.OnTileExecuteProgram, arg0: pva::preview::ProgramVisitor) → None¶ The visitor pattern accept method.
-
property
children
¶ List of child programs.
- Type
List[pva.Program]
-
property
computeset
¶ The computeset used by this on tile execute program.
- Type
pva.Computset
-
property
name
¶ The name of the program.
- Type
str
-
property
type
¶ The type of the program.
- Type
-
-
class
pva.
UnknownProgram
¶ -
accept
(self: pva_core.UnknownProgram, arg0: pva::preview::ProgramVisitor) → None¶ The visitor pattern accept method.
-
property
children
¶ List of child programs.
- Type
List[pva.Program]
-
property
name
¶ The name of the program.
- Type
str
-
property
type
¶ The type of the program.
- Type
-
-
class
pva.
SequenceProgram
¶ -
accept
(self: pva_core.SequenceProgram, arg0: pva::preview::ProgramVisitor) → None¶ The visitor pattern accept method.
-
property
children
¶ List of child programs.
- Type
List[pva.Program]
-
property
name
¶ The name of the program.
- Type
str
-
property
type
¶ The type of the program.
- Type
-
-
class
pva.
OnTileExecuteProgram
¶ -
accept
(self: pva_core.OnTileExecuteProgram, arg0: pva::preview::ProgramVisitor) → None¶ The visitor pattern accept method.
-
property
children
¶ List of child programs.
- Type
List[pva.Program]
-
property
computeset
¶ The computeset used by this on tile execute program.
- Type
pva.Computset
-
property
name
¶ The name of the program.
- Type
str
-
property
type
¶ The type of the program.
- Type
-
-
class
pva.
RepeatProgram
¶ -
accept
(self: pva_core.RepeatProgram, arg0: pva::preview::ProgramVisitor) → None¶ The visitor pattern accept method.
-
property
children
¶ List of child programs.
- Type
List[pva.Program]
-
property
name
¶ The name of the program.
- Type
str
-
property
type
¶ The type of the program.
- Type
-
-
class
pva.
RepeatWhileProgram
¶ -
accept
(self: pva_core.RepeatWhileProgram, arg0: pva::preview::ProgramVisitor) → None¶ The visitor pattern accept method.
-
property
children
¶ List of child programs.
- Type
List[pva.Program]
-
property
name
¶ The name of the program.
- Type
str
-
property
type
¶ The type of the program.
- Type
-
-
class
pva.
OnTileSwitchProgram
¶ -
accept
(self: pva_core.OnTileSwitchProgram, arg0: pva::preview::ProgramVisitor) → None¶ The visitor pattern accept method.
-
property
children
¶ List of child programs.
- Type
List[pva.Program]
-
property
name
¶ The name of the program.
- Type
str
-
property
type
¶ The type of the program.
- Type
-
-
class
pva.
OnEveryTileSwitchProgram
¶ -
accept
(self: pva_core.OnEveryTileSwitchProgram, arg0: pva::preview::ProgramVisitor) → None¶ The visitor pattern accept method.
-
property
children
¶ List of child programs.
- Type
List[pva.Program]
-
property
name
¶ The name of the program.
- Type
str
-
property
type
¶ The type of the program.
- Type
-
-
class
pva.
IfElseProgram
¶ -
accept
(self: pva_core.IfElseProgram, arg0: pva::preview::ProgramVisitor) → None¶ The visitor pattern accept method.
-
property
children
¶ List of child programs.
- Type
List[pva.Program]
-
property
name
¶ The name of the program.
- Type
str
-
property
type
¶ The type of the program.
- Type
-
-
class
pva.
DoExchangeProgram
¶ -
accept
(self: pva_core.DoExchangeProgram, arg0: pva::preview::ProgramVisitor) → None¶ The visitor pattern accept method.
-
property
bytesReceivedByTile
¶ The number of bytes received on each tile.
- Type
List[int]
-
property
bytesSentByTile
¶ The number of bytes sent on each tile.
- Type
List[int]
-
property
children
¶ List of child programs.
- Type
List[pva.Program]
-
property
codeBytesByTile
¶ The size of the code required for this program on each tile.
- Type
List[int]
-
property
estimatedCyclesByTile
¶ The estimated number of cycles used to execute this program.
- Type
List[int]
-
property
name
¶ The name of the program.
- Type
str
-
property
type
¶ The type of the program.
- Type
-
-
class
pva.
GlobalExchangeProgram
¶ -
accept
(self: pva_core.GlobalExchangeProgram, arg0: pva::preview::ProgramVisitor) → None¶ The visitor pattern accept method.
-
property
bytesReceivedByTile
¶ The number of bytes received on each tile.
- Type
List[int]
-
property
bytesSentByTile
¶ The number of bytes sent on each tile.
- Type
List[int]
-
property
children
¶ List of child programs.
- Type
List[pva.Program]
-
property
estimatedCyclesByTile
¶ The estimated number of cycles used to execute this program.
- Type
List[int]
-
property
name
¶ The name of the program.
- Type
str
-
property
type
¶ The type of the program.
- Type
-
-
class
pva.
StreamCopyBeginProgram
¶ -
accept
(self: pva_core.StreamCopyBeginProgram, arg0: pva::preview::ProgramVisitor) → None¶ The visitor pattern accept method.
-
property
children
¶ List of child programs.
- Type
List[pva.Program]
-
property
name
¶ The name of the program.
- Type
str
-
property
type
¶ The type of the program.
- Type
-
-
class
pva.
StreamCopyMidProgram
¶ -
accept
(self: pva_core.StreamCopyMidProgram, arg0: pva::preview::ProgramVisitor) → None¶ The visitor pattern accept method.
-
property
bytesReceivedByTile
¶ The number of bytes received on each tile.
- Type
List[int]
-
property
bytesSentByTile
¶ The number of bytes sent on each tile.
- Type
List[int]
-
property
children
¶ List of child programs.
- Type
List[pva.Program]
-
property
estimatedCyclesByTile
¶ The estimated number of cycles used to execute this program.
- Type
List[int]
-
property
name
¶ The name of the program.
- Type
str
-
property
type
¶ The type of the program.
- Type
-
-
class
pva.
StreamCopyEndProgram
¶ -
accept
(self: pva_core.StreamCopyEndProgram, arg0: pva::preview::ProgramVisitor) → None¶ The visitor pattern accept method.
-
property
children
¶ List of child programs.
- Type
List[pva.Program]
-
property
name
¶ The name of the program.
- Type
str
-
property
type
¶ The type of the program.
- Type
-
-
class
pva.
WriteUndefProgram
¶ -
accept
(self: pva_core.WriteUndefProgram, arg0: pva::preview::ProgramVisitor) → None¶ The visitor pattern accept method.
-
property
children
¶ List of child programs.
- Type
List[pva.Program]
-
property
name
¶ The name of the program.
- Type
str
-
property
type
¶ The type of the program.
- Type
-
-
class
pva.
SyncProgram
¶ -
accept
(self: pva_core.SyncProgram, arg0: pva::preview::ProgramVisitor) → None¶ The visitor pattern accept method.
-
property
children
¶ List of child programs.
- Type
List[pva.Program]
-
property
name
¶ The name of the program
- Type
str
-
property
type
¶ The type of the program.
- Type
-
-
class
pva.
SetLocalConsensusProgram
¶ -
accept
(self: pva_core.SetLocalConsensusProgram, arg0: pva::preview::ProgramVisitor) → None¶ The visitor pattern accept method.
-
property
children
¶ List of child programs.
- Type
List[pva.Program]
-
property
name
¶ The name of the program.
- Type
str
-
property
type
¶ The type of the program.
- Type
-
-
class
pva.
SetLocalConsensusFromVarProgram
¶ -
accept
(self: pva_core.SetLocalConsensusFromVarProgram, arg0: pva::preview::ProgramVisitor) → None¶ The visitor pattern accept method.
-
property
children
¶ List of child programs.
- Type
List[pva.Program]
-
property
name
¶ The name of the program.
- Type
str
-
property
type
¶ The type of the program.
- Type
-
-
class
pva.
GetGlobalConsensusProgram
¶ -
accept
(self: pva_core.GetGlobalConsensusProgram, arg0: pva::preview::ProgramVisitor) → None¶ The visitor pattern accept method.
-
property
children
¶ List of child programs.
- Type
List[pva.Program]
-
property
name
¶ The name of the program.
- Type
str
-
property
type
¶ The type of the program.
- Type
-
-
class
pva.
SansProgram
¶ -
accept
(self: pva_core.SansProgram, arg0: pva::preview::ProgramVisitor) → None¶ The visitor pattern accept method.
-
property
children
¶ List of child programs.
- Type
List[pva.Program]
-
property
name
¶ The name of the program.
- Type
str
-
property
type
¶ The type of the program.
- Type
-
-
class
pva.
CallProgram
¶ -
accept
(self: pva_core.CallProgram, arg0: pva::preview::ProgramVisitor) → None¶ The visitor pattern accept method.
-
property
children
¶ List of child programs.
- Type
List[pva.Program]
-
property
name
¶ The name of the program.
- Type
str
-
property
type
¶ The type of the program.
- Type
-
-
class
pva.
SyncAnsProgram
¶ -
accept
(self: pva_core.SyncAnsProgram, arg0: pva::preview::ProgramVisitor) → None¶ The visitor pattern accept method.
-
property
children
¶ List of child programs.
- Type
List[pva.Program]
-
property
name
¶ The name of the program.
- Type
str
-
property
type
¶ The type of the program.
- Type
-
-
class
pva.
ProgramVisitor
¶ -
visitCall
(self: pva_core.ProgramVisitor, arg0: pva_core.CallProgram) → None¶
-
visitDoExchange
(self: pva_core.ProgramVisitor, arg0: pva_core.DoExchangeProgram) → None¶
-
visitGetGlobalConsensus
(self: pva_core.ProgramVisitor, arg0: pva_core.GetGlobalConsensusProgram) → None¶
-
visitGlobalExchange
(self: pva_core.ProgramVisitor, arg0: pva_core.GlobalExchangeProgram) → None¶
-
visitIfElse
(self: pva_core.ProgramVisitor, arg0: pva_core.IfElseProgram) → None¶
-
visitOnEveryTileSwitch
(self: pva_core.ProgramVisitor, arg0: pva_core.OnEveryTileSwitchProgram) → None¶
-
visitOnTileExecute
(self: pva_core.ProgramVisitor, arg0: pva_core.OnTileExecuteProgram) → None¶
-
visitOnTileSwitch
(self: pva_core.ProgramVisitor, arg0: pva_core.OnTileSwitchProgram) → None¶
-
visitRepeat
(self: pva_core.ProgramVisitor, arg0: pva_core.RepeatProgram) → None¶
-
visitRepeatWhile
(self: pva_core.ProgramVisitor, arg0: pva_core.RepeatWhileProgram) → None¶
-
visitSans
(self: pva_core.ProgramVisitor, arg0: pva_core.SansProgram) → None¶
-
visitSequence
(self: pva_core.ProgramVisitor, arg0: pva_core.SequenceProgram) → None¶
-
visitSetLocalConsensus
(self: pva_core.ProgramVisitor, arg0: pva_core.SetLocalConsensusProgram) → None¶
-
visitSetLocalConsensusFromVar
(self: pva_core.ProgramVisitor, arg0: pva_core.SetLocalConsensusFromVarProgram) → None¶
-
visitStreamCopyBegin
(self: pva_core.ProgramVisitor, arg0: pva_core.StreamCopyBeginProgram) → None¶
-
visitStreamCopyEnd
(self: pva_core.ProgramVisitor, arg0: pva_core.StreamCopyEndProgram) → None¶
-
visitStreamCopyMid
(self: pva_core.ProgramVisitor, arg0: pva_core.StreamCopyMidProgram) → None¶
-
visitSync
(self: pva_core.ProgramVisitor, arg0: pva_core.SyncProgram) → None¶
-
visitSyncAns
(self: pva_core.ProgramVisitor, arg0: pva_core.SyncAnsProgram) → None¶
-
visitUnknown
(self: pva_core.ProgramVisitor, arg0: pva_core.UnknownProgram) → None¶
-
visitWriteUndef
(self: pva_core.ProgramVisitor, arg0: pva_core.WriteUndefProgram) → None¶
-
-
class
pva.
LivenessProgramStep
¶ LivenessProgramStep represents details liveness for step in the program.
-
property
notAlwaysLiveBytes
¶
-
property
notAlwaysLiveVariables
¶ List of not always live variables for this step.
- Type
List[pva.Variable]
-
property
program
¶
-
property
-
class
pva.
LivenessProgramStep
¶ LivenessProgramStep represents details liveness for step in the program.
-
property
notAlwaysLiveBytes
¶
-
property
notAlwaysLiveVariables
¶ List of not always live variables for this step.
- Type
List[pva.Variable]
-
property
program
¶
-
property
-
class
pva.
CompilationReport
¶ Information from the complation of your model.
-
property
alwaysLiveVariables
¶ List of always live variables.
- Type
List[pva.Variable]
-
property
controlPrograms
¶ List of all control programs.
- Type
List
- Type
-
property
functions
¶ List of all functions.
- Type
List
- Type
-
property
livenessProgramSteps
¶ List of program steps with liveness information.
- Type
List[pva.LivenessProgramStep]
-
property
programs
¶ List of all programs.
- Type
List
- Type
-
property
replicas
¶ List of Replicas.
- Type
List[pva.Replica]
-
property
target
¶ Information about the target hardware.
- Type
-
property
-
class
pva.
Run
¶ Run contains information about each Poplar engine run.
-
property
name
¶ Name given to this run.
- Type
str
-
property
-
class
pva.
ExecutionStepIpu
¶ -
property
activeCycles
¶ Statistics for the cycles on active tiles.
Note : Will return 0’s if this ipu has not be profiled.
- Type
pva.ExecutionStep.CyclesInfo
-
property
activeThreadBalance
¶ Indication of hardware thread utilisation for those tiles involved.
Measures how well-utilised the hardware threads are. If you always run 6 threads or 0 threads this will be 1.0 even if the total computation on each tile takes a different amount of time.
Note : Will return 0 if this ipu has not be profiled.
- Type
float
-
property
activeTiles
¶ The range of cycles for all tiles involved on this IPU.
Note : Will return 0 if this ipu has not be profiled.
- Type
int
-
property
allCycles
¶ Statistics for the cycles on all tiles.
Note : Will return 0’s if this ipu has not be profiled.
- Type
pva.ExecutionStep.CyclesInfo
-
property
cycles
¶ Total cycles executed on this ipu. Note : will return 0 if this ipu has not be profiled.
- Type
“int
-
property
dataBalance
¶ Indication if this IPU was profiled.
With the poplar engine option ‘replicaToProfile’, only a subset of the ipu may have execution profile information.
Note : Will return 0 if this ipu has not be profiled.
- Type
float
-
property
profiled
¶ Indication if this IPU was profiled.
With the poplar engine option ‘replicaToProfile’, only a subset of the ipu’s may have execution profile information.
- Type
bool
-
property
threadBalance
¶ Indication of hardware thread utilisation.
Measures how well-utilised the hardware threads are. If you always run 6 threads or 0 threads this will be 1.0 even if the total computation on each tile takes a different amount of time.
Note : Will return 0 if this ipu has not be profiled.
- Type
float
-
property
-
class
pva.
ExecutionStep
¶ ExecutionStep contains information about a step of execution. Each step will represent the execution of Poplar program.
-
property
cyclesByTile
¶ The measured cycles-by-tile for this execution step.
When using the ‘replicaToProfile’ option, tiles on the replica profiled will have measured values, the other tiles will return 0
- Type
List[int]
-
property
ipus
¶ Details of a program step execution per IPU.
- Type
pva.ExecutionStep.IPU
-
property
program
¶ The program being executed.
- Type
-
property
-
class
pva.
ExecutionReport
¶ ExecutionReport contains information collected from the execution of a model.
-
property
steps
¶ A list of all program steps for the entire execution.
- Type
List[pva.ExecutionStep]
-
property