E6009
E6009 — A statically-shaped tensor placed in a memory space exceeds that space's capacity.
What the compiler reports
E6009 … 16384 bytes
The fragments the test suite holds the compiler to. An ellipsis marks text the test does not constrain; the emitted message also carries a source location.
A program that triggers it
//
// Part of the Vx Project, under the Apache License v2.0 with LLVM Exceptions.
// See LICENSE for license information.
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
//
// A tensor transferred into a memory space must fit that space's declared capacity
// (E6009). Here a 64x64 f32 tile (16 KiB) is transferred into a 1 KiB NPU_HBM.
//
Memory NPU_HBM {
capacity: 1 KiB
}
fn main() -> i32 {
let big: Tensor<f32, [64, 64]> = Tensor<f32, [64, 64]>::uninit();
let staged = transfer(big, Memory::NPU_HBM);
return 0;
}
From tests/frontend/fail/memory_capacity_exceeded.vx, which asserts this diagnostic on every commit.
Related
Topologies and memoryThe chapter covering the rule this code enforces.
All diagnosticsEvery code the compiler can emit, grouped by stage.
E6008A
Memory declaration has a non-positive capacity, bandwidth, or granule.
E6010The working set placed in a memory space (the sum of its tiles) exceeds capacity. Downgraded to W1028 when the space is declared overcommit.