Overview
THRINDEX separates the portable model from the chip.thx.compile writes a .thx with target sim. The Console turns that file into the AKD1500 program when you deploy. The Runtime on the device loads that program. The SDK does not talk to the chip.
BrainChip AKD1500
AKD1500 is a chip. The SDK does not compile a.thx for it. This is the compile that works:
thx.compile(..., target="akida-akd1500") fails. The compiler accepts sim only. At deploy, the Console uses the device chip type and builds the chip program. The artifact’s target field is not that program.
akida-akd1500 below is the name of the local backend and of the conformance exclusion. It is not a thx.compile target.
Capability
What the AKD1500 supports
AKD1500 executes feedforward integer networks.- Dense (
snn.Dense) — fully connected, no delays. Passbias=False. A non-zero bias is rejected (E0406) because this chip program has no bias input. A bias of all zeros is accepted. The defaultbias=Trueis not zero after training. - Conv2d (
snn.Conv2d) — kernel 3, 5, or 7, image at least 5×5. Passinput_heightandinput_width; the layer does not store the image size.
What the AKD1500 rejects
AKD1500 is not an SNN backend. It does not implement leaky integrate-and-fire dynamics, temporal state, or spike-triggered reset. If your model uses LIF neurons, use
target="sim" instead. See E0401 for a full explanation.
Weight quantization
Weights are quantized fromf32 to 4-bit signed integers during the Tier-1 compile step:
scale / 2 per weight. For models with large weight ranges, this error can be significant. Training with weight regularization that keeps max(|W|) small reduces quantization error.
Put a model on the chip
- Compile a dense model.
simis the only compile target:
bias=False is required. snn.Dense otherwise adds a bias, and the deploy is rejected rather than omitting it.
A model with a LIF layer is rejected for this chip. A convolution passes the image size on the first layer:
-
In the Console, open Devices → Connect a device. Copy Install onto the machine that has the chip. The first time, also copy the Console key and run
sudo thrindex-runtime setup. Setup prints a fingerprint. Use Add device, choose BrainChip AKD1500, and paste that fingerprint. When the device is already connected, run Install andsudo systemctl restart thrindex-runtime. Do not run setup again. -
Upload
model.thxunder Artifacts. Open it, choose the device, and press Deploy to device. Wait until the deployment is Confirmed. Confirmed means the program is on the chip. The chip computes when something on the device sends an input.
Send an input
Software on the device sends one input and reads the floats back. The reference client is the Runtime CLI. It does not open the chip itself. The values never go to the Console.in_features. A convolution wants input_height × input_width × in_channels in row-major order, the last channel index changing fastest. Each output float is printed on its own line.
A 5×5 center-tap convolution (kernel 3×3, only the center weight is 1, padding 1) copies each pixel with the same 4-bit rounding as the dense layer. Put 0.2 at the center, index 12. The other 24 values are 0. The center line is 0.2. The other lines are 0.
/run/thrindex/infer.sock, group thrindex, mode 0660. A process in that group can connect. Otherwise use sudo. Add a user with sudo usermod -aG thrindex <user>.
The frame is little-endian. A request is THXI, version u16 = 1, flags u16 = 0, count u32, then that many f32s. A response is THXO, version u16 = 1, status u16, count u32, then the payload. Status 0 is that many floats. Status 1 is UTF-8, at most 400 bytes. More than 8192 floats is rejected.
AKD1500 inputs are 4-bit and unsigned. Float 0 stays 0. Float 1 is the top code. A value above 1 saturates. A value below 0 becomes 0. The float that comes back can differ from the simulator by one 4-bit step. For a layer that copies its input, 0.1 comes back as 0.13333334 and 0.2 comes back as 0.2.
Conformance
akida-akd1500 is permanently excluded from the THRINDEX Certified [v0] conformance suite. The Certified badge measures spike-raster equivalence between a hardware backend and the reference simulator. AKD1500 does not implement SNN dynamics — it performs integer feedforward inference — and cannot produce a spike raster that is equivalent to the LIF simulator output.
When the conformance harness runs, it prints: