7. PopVision Analysis Python API

This is a preview release of the PopVision analysis Python API and may change before final release.

import pva

7.1. Compilation reports

pva.openReport(filename: str) → pva::preview::Report
class pva.Report
property compilation

Details from the poplar compilation.

Type

pva.CompilationReport

property execution

Details from the poplar execution.

Type

pva.ExecutionReport

property instrumentationSettings

Details of the instrumentation settings used.

Type

pva.InstrumentationSettings

property poplarVersion

The poplar version.

Type

pva.PoplarVersion

property version

The report format version.

Type

pva.ProfileVersionReport

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

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 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

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

pva.IPU.Architecture

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

pva.Target.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.

Type

pva.VertexType.Source

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

pva.VertexType

property vertexDataBytes

The amount of vertex data.

Type

int

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

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

pva.MemoryOverlap

property overflowed

The overflowed memory region.

Type

pva.MemoryOverlap

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

property sharedCodeStorage

Shared code storage memory category.

Code shared by vertices.

Type

pva.Memory.Category

property sharedDataStorage

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

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

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]

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

class pva.IPU

IPU represents details of a single IPU.

property architecture

The architecture type of this IPU.

Type

pva.IPU.Architecture

property tiles

List of tiles on this ipu.

Type

List[Tile]

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.

property ipus

List of tiles on this replica.

Type

List[pva.IPU]

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

pva.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

pva.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

pva.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

pva.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

pva.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

pva.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

pva.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

pva.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

pva.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

pva.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

pva.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

pva.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

pva.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

pva.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

pva.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

pva.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

pva.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

pva.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

pva.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

pva.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

pva.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

pva.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

pva.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
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
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

pva.Program]

property functions

List of all functions.

Type

List

Type

pva.Program]

property graph

Basic information about the graph.

Type

pva.Graph

property ipus

List of IPUS.

Type

List[pva.IPU]

property livenessProgramSteps

List of program steps with liveness information.

Type

List[pva.LivenessProgramStep]

property programs

List of all programs.

Type

List

Type

pva.Program]

property replicas

List of Replicas.

Type

List[pva.Replica]

property target

Information about the target hardware.

Type

pva.Target

property tiles

List of tiles.

Type

List[pva.Tile]

7.2. Execution reports

class pva.Run

Run contains information about each Poplar engine run.

property name

Name given to this run.

Type

str

property steps

A list of program steps in this run.

Type

List[Run]

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

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

pva.Program

class pva.ExecutionReport

ExecutionReport contains information collected from the execution of a model.

property runs

A list of Poplar engine runs.

Type

List[pva.Run]

property steps

A list of all program steps for the entire execution.

Type

List[pva.ExecutionStep]