You are browsing as a guest. Sign up (or log in) to start making projects!

8h 1m 44s logged

Devlog 02: Hardware Smoke Tests & The 14ms Trap

why have random shi like gate-1? bcs xdna1 is the worst supported from amd, idk their docs are incomplete im like testing and figuring stuff out

Gate 1 milestone: getting real AIE execution contexts spinning via AMD XRT.

Initial prototype had a huge bug: we were creating an xrt::hw_context and reloading the .xclbin bitstream inside the operator compute loop. Profiling showed this added ~14 ms of pure driver overhead per tensor dispatch—which murdered performance before we even started doing math.

Fixed it by making the context a persistent backend singleton:

// Initialize context & load bitstream ONCE at startup
device = std::make_unique<xrt::device>(device_index);
xrt::uuid uuid = device->register_xclbin(xclbin_img);
hw_ctx = std::make_unique<xrt::hw_context>(*device, uuid);
xrt::module mod(elf_img);
kernel_dpu = std::make_unique<xrt::kernel>(xrt::ext::kernel(*hw_ctx, mod, "DPU"));
  • device->register_xclbin: Flashes the DPU bitstream once into the NPU fabric.
  • hw_ctx: Persistent hardware context reused across all tensor iterations.

Dispatch overhead instantly dropped from 14 ms down to ~38 µs.

0
114

Comments 2

@arpitaanuna

Great progress!

@satvikhardat

Thanks! @arpitaanuna