Skip to content

Cluster Architecture

Overview

Each cluster contains 1 Cube core and 2 buddy Vector cores that share a hardware flag-based synchronization mechanism. This architecture enables efficient intra-cluster data communication for co-scheduled InCore kernels.

Cluster Topology

┌─────────────────────── Cluster ───────────────────────┐
│                                                       │
│  ┌──────────┐    flags (8 per dir)     ┌──────────┐   │
│  │ Vector 0 │◄════════════════════════►│          │   │
│  └──────────┘    SET/WAIT V→C, C→V     │   Cube   │   │
│                                        │          │   │
│  ┌──────────┐    flags (8 per dir)     │          │   │
│  │ Vector 1 │◄════════════════════════►│          │   │
│  └──────────┘    SET/WAIT V→C, C→V     └──────────┘   │
│                                                       │
└───────────────────────────────────────────────────────┘

Hardware Flags

Cross-core synchronization uses hardware flags with SET/WAIT semantics:

Property Value
Flags per direction per peer 8
Directions per peer 2 (Vector→Cube, Cube→Vector)
Flags per Vector-Cube pair 16
Total flags per cluster 32 (2 peers × 16)

A Vector core can SET a flag that the Cube core WAITs on, and vice versa.

Ring Buffer Data Channel

Data flows between producer and consumer kernels through a multi-slot ring buffer with flow control. Each slot holds one fixed-size Tile. The ring buffer location is platform-dependent:

Platform Location Description
A2/A3 Global Memory (GM) Off-chip DDR/HBM, accessible by all cores
A5 Consumer's on-chip SRAM UB (Vector consumer) or L1 (Cube consumer)
A2/A3 Platform:                           A5 Platform:

Producer          GM         Consumer    Producer                    Consumer
┌──────┐   ┌─────────────┐   ┌──────┐    ┌──────┐                ┌──────────────┐
│      │──▶│ slot[0..N-1]│──▶│      │    │      │───────────────▶│ UB / L1      │
│ Cube │   │ (off-chip)  │   │ Vec  │    │ Cube │  DMA to local  │ slot[0..N-1] │
│ /Vec │   └─────────────┘   │ /Cube│    │ /Vec │                │ (on-chip)    │
└──────┘                     └──────┘    └──────┘                └──────────────┘

The A5 placement in consumer-local SRAM eliminates the round-trip to GM, enabling lower-latency data handoff. On A5, the consumer can directly operate on tile data in its local buffer without an explicit load from GM.

Communication Capabilities

The TPUSH/TPOP mechanism enables:

  • Tile-level data flow between Cube and buddy Vector cores (producer → ring buffer → consumer)
  • Cross-core synchronization via hardware SET/WAIT flags
  • Pipelined execution through multi-slot ring buffers (8 slots unidirectional, 4 slots per direction bidirectional)
  • Platform-adaptive buffer placement — GM on A2/A3, consumer SRAM on A5

See TPUSH/TPOP Instructions for the instruction specification and Buffer Management for platform-specific buffer placement details.