XArith Changelog

All notable changes to XArith will be documented in this page.

[0.2.2] - 2026-08-25

Required SDK: 1.4.10

Added

  • VpeContext blocking allocation: waitAllocateBuffer, waitAllocateBuffers and waitAllocateBuffersWithSizes. Prefer these to a tryAllocateBuffers retry loop, which starves the peers it waits on.
  • matmul example: matrix multiply on the VPE, with task-parallel and A-row-tiled variants. See Matmul.

Changed

  • Faster SRAM buffer allocation under contention, with no throughput collapse as tasks are added.

Fixed

  • Examples no longer read stale kernel output; hosts read results back directly, with no pxl::flushHostCache of their own.

Removed

  • BREAKING The xarith_usage_pxcc examples tree and its xarith-examples-pxcc tarball; xarith_usage is itself the pxcc single-source tree now, and a single xarith-examples tarball ships the examples.

[0.2.1] - 2026-07-24

Superseded build. release-1784874488 was built against SDK 1.4.8. Use release-1785758904 — the same 0.2.1, rebuilt against 1.4.9. libxarith-dev ships from the same build as libxvector-dev.

Added

  • VpeContext scalar-vector ops: scalarAdd/scalarSub/scalarMul/ scalarDiv/scalarXor/scalarDot.
  • VpeContext::copy, fillZero, and fillOne.

[0.2.0] - 2026-06-25

Changed

  • BREAKING Dimension is no longer bound to the VpeContext. Buffers are now allocated by byte size (bytesForDimension() / allocateBuffer(byteSize)) and every operation takes an explicit per-call dimension, so a single context can serve multiple dimensions.
  • BREAKING VpeContext::load/store are now byte-based void* signatures with the context’s DataType as the single source of truth for element width (replacing the float*/half* overloads).
  • Faster SRAM buffer allocation, especially under multi-task contention.

[0.1.4] - 2026-05-20

Added

  • FP16 (half-precision) element support in VpeContext

[0.1.3] - 2026-04-30

Added

  • VpeContext::dot2 synchronous API that returns two scalars from a single fused operation
  • dot2 demo in the xarith basic example and dot vs dot2 saturation sweep in the VPE benchmark example

[0.1.2] - 2026-04-07

Added

  • Batch SRAM buffer allocation APIs (tryAllocateBuffers, freeBuffers)

[0.1.1] - 2026-03-19

Changed

  • Rename the package

[0.1.0] - 2026-03-05

Added

  • Initial release