Reserved Memory Constraint - Reserved Memory Constraint - 2026.1 English - UG1603

AI Engine-ML Kernel and Graph Programming Guide (UG1603)

Document ID
UG1603
Release Date
2026-07-08
Version
2026.1 English

This constrains the location of system memory (stack and heap) for a kernel to a specific address on a specific tile. You can specify the address in one of two ways:

Column, row, bankId, and offset
The tile is specified by column, row. The bankId is relative to the tile and can be set to either 0, 1, 2, or 3. The offset address is relative to the bankId, and can be set to any value from 0 to 8192 which corresponds to the maximum number of bytes in a bank.
Column, row, and bankId
the bankId is relative to the tile and can be set to either 0, 1, 2, or 3.
Note: The hardware treats each AI Engine-ML memory as eight banks of 128-bit width data. The AI Engine compiler treats of each AI Engine memory as four banks of 256-bit width data.

Syntax

"reserved_memory": <bank_address>
<bank_address> ::= {
  "column": integer,
  "row": integer,
  "bankId": integer,
  "offset": integer
}
<bank_address> ::= {
  "column": integer,
  "row": integer,
  "bankId": integer
}

Example

{
  "NodeConstraints": {
    "mygraph.k1": {
      "reserved_memory": {
        "column": 2,
        "row": 1,
        "bankId": 3, 
        "offset": 4128
      }
    },
    "mygraph.k2": {
      "reserved_memory": {
        "column": 1,
        "row": 1,
        "bankId": 3
      }
    }
  }
}