17. Glossary

  • Architecture

  • BSP

  • Bulk-synchronous parallel

  • Codelet

  • Compute set

  • Debug context

  • Edge

  • Exchange

  • Flame graph

    • A visualisation of hierarchical data that is often used to show sampled stack traces of a program that has been profiled.

  • IPU

  • Liveness

    • For more information, see the Memory and Performance Optimisation Guide.

    • Always-live

      • An always-live variable is allocated an exclusive memory region for the entire lifetime of the graph execution, such as vertex code.

    • Not-always-live

      • It is not necessary to keep the content of not-always-live variables in memory throughout execution. Therefore, two variables that are not live at the same time can be allocated to the same location

  • Lowering

  • Lowered variable

    • To execute an application on the IPU, variables may need to be divided between tiles to satisfy memory constraints. Poplar maps global user-defined variables onto tiles by a process that is called lowering. During this process, Poplar typically translates each of these unlowered variables into a set of lowered variables which have specific tile allocations.

  • Memory

    • For more information, see the Poplar and PopLibs User Guide.

    • Memory bank

      • An area of memory that allows a single concurrent access only. A memory bank is 32 and 16 KiB in the Mk1 and Mk2 Colossus, respectively. Note that addresses are only contiguous in non-interleaved memory.

    • Memory element

      • In interleaved memory, an element is a pair of banks that allows access to 128 bits. In non-interleaved memory, it is a single bank that allows access to 64 bits.

  • Memory interference

  • Memory region

    • A tile’s memory is organised as two regions, each made up of banks. Concurrent accesses can be made to addresses in different banks.

    • Non-interleaved memory

      • Instructions can only be fetched from non-interleaved memory.

    • Interleaved memory

      • Interleaving allows for two 64-bit-aligned addresses to be accessed simultaneously.

    • Overflowed memory

      • If the memory required by an application exceeds the maximum memory available on a tile, part of it is overflowed.

    • Out-of-memory (OOM)

      • An application that is out of memory needs more memory than is available on one or more tiles and cannot be executed.

  • Pipelining

  • PopART

  • Poplar

  • PopLibs

  • Replication

  • Sync

    • External sync

      • Synchronisation between IPUs.

    • Internal sync

      • Synchronisation between all of the tiles on a single IPU.

  • Tile

    • Active tile

      • A tile is active in the context of a program step if it is involved in executing that step.

    • Tile balance

      • A measure of the fraction of tiles that are involved in executing a program step.

    • Unlowered variable

      • See lowering.

  • Vertex