Vertex Programming Guide
Version: latest
1. Introduction
2. Understanding vertices
2.1. The Vertex class
2.2. Vertex state
2.2.1. Vector and VectorList types
2.2.2. Specifying memory constraints
2.3. MultiVertex worker threads
2.3.1. Thread safety
2.4. Calling conventions
2.4.1. External codelets
2.5. Worker stack and scratch space
2.5.1. Specifying stack size
2.5.2. Examples
2.5.3. Recursion and function pointers
2.6. Vertex name mangling
3. Vector types
3.1. Parameters
3.1.1. Types
3.1.2. Layout
3.1.3. Minimum alignment
3.1.4. Interleaved memory
3.2. Memory layout for vectors
3.2.1. Pointer compression
SCALED_PTR32
SCALED_PTR64
SCALED_PTR128
3.2.2. Vector<T> layout
3.2.3. Vector<Input<Vector<T>>> layout
3.2.4. VectorList layout
DELTANELEMENTS layout
DELTAN layout
COMPACT_DELTAN layout
4. Writing vertices in assembly
4.1. Notation
4.2. Instruction set overview
4.2.1. Supervisors and workers
4.2.2. Execution pipelines
4.3. Memory architecture
4.3.1. Getting information about the memory
4.3.2. Mk1 Colossus (GC2)
4.3.3. Mk2 Colossus (GC200)
4.3.4. Load and store instructions
5. Vertex pipelines
5.1. Memory conflicts
5.2. Modified pipeline
5.3. Fill and drain
6. Assembly hints & tips
6.1. Using the assembler
6.1.1. Assembler macros
6.1.2. Labels
6.1.3. Recording the code size of the vertex
6.1.4. Place each vertex in a unique section
6.2. Architectural tips
6.2.1. Aligning repeat bodies
6.2.2. Over-reading and over-processing
6.2.3. Scratch space
6.2.4. Loading constants
6.2.5. Pre-division by 6
6.3. General
6.3.1. Focus on optimising the vectorised case
6.3.2. Testing
6.3.3. Bit twiddling
7. Application binary interface (ABI)
7.1. Types
7.1.1. Floating point types
7.1.2. Structure types
7.1.3. Bit fields
7.2. Vertex calling convention
7.3. Function calling convention
7.3.1. Parameters
7.3.2. Returns
7.3.3. Entry and exit
7.3.4. Register assignments
7.4. Stack frame
8. Glossary
9. Trademarks & copyright
Vertex Programming Guide
This document was merged with the
Poplar User Guide
in Poplar SDK version 2.2.
»
Vertex Programming Guide
Edit on GitHub
Vertex Programming Guide
ΒΆ
1. Introduction
2. Understanding vertices
2.1. The Vertex class
2.2. Vertex state
2.2.1. Vector and VectorList types
2.2.2. Specifying memory constraints
2.3. MultiVertex worker threads
2.3.1. Thread safety
2.4. Calling conventions
2.4.1. External codelets
2.5. Worker stack and scratch space
2.5.1. Specifying stack size
2.5.2. Examples
2.5.3. Recursion and function pointers
2.6. Vertex name mangling
3. Vector types
3.1. Parameters
3.1.1. Types
3.1.2. Layout
3.1.3. Minimum alignment
3.1.4. Interleaved memory
3.2. Memory layout for vectors
3.2.1. Pointer compression
SCALED_PTR32
SCALED_PTR64
SCALED_PTR128
3.2.2. Vector<T> layout
3.2.3. Vector<Input<Vector<T>>> layout
3.2.4. VectorList layout
DELTANELEMENTS layout
DELTAN layout
COMPACT_DELTAN layout
4. Writing vertices in assembly
4.1. Notation
4.2. Instruction set overview
4.2.1. Supervisors and workers
4.2.2. Execution pipelines
4.3. Memory architecture
4.3.1. Getting information about the memory
4.3.2. Mk1 Colossus (GC2)
4.3.3. Mk2 Colossus (GC200)
4.3.4. Load and store instructions
5. Vertex pipelines
5.1. Memory conflicts
5.2. Modified pipeline
5.3. Fill and drain
6. Assembly hints & tips
6.1. Using the assembler
6.1.1. Assembler macros
6.1.2. Labels
6.1.3. Recording the code size of the vertex
6.1.4. Place each vertex in a unique section
6.2. Architectural tips
6.2.1. Aligning repeat bodies
6.2.2. Over-reading and over-processing
6.2.3. Scratch space
6.2.4. Loading constants
6.2.5. Pre-division by 6
6.3. General
6.3.1. Focus on optimising the vectorised case
6.3.2. Testing
6.3.3. Bit twiddling
7. Application binary interface (ABI)
7.1. Types
7.1.1. Floating point types
7.1.2. Structure types
7.1.3. Bit fields
7.2. Vertex calling convention
7.3. Function calling convention
7.3.1. Parameters
7.3.2. Returns
7.3.3. Entry and exit
7.3.4. Register assignments
7.4. Stack frame
8. Glossary
9. Trademarks & copyright
Read the Docs
v: latest
Versions
latest
2.1.0
1.4.0
1.3.36
1.2.100
Downloads
pdf
html
On Read the Docs
Project Home
Builds