v1.4.6 (2026-05-15)
Download
- SDK Package: xcena_sdk_v1.4.6_ubuntu_24.04.tar.xz
- Firmware : xbundle_encrypt_v1.0.7.bin
Important Notes
- Internal bandwidth improved by ~20% through internal tuning.
pxl
Context::stream()removed from the public API. Use the Stream that each Job owns internally, or allocate a user-managed Stream viapxl::createStream().- Concurrent Job count is now effectively bounded by the per-process Stream pool capacity (128 streams, shared with user-created Streams).
createJob*returnsnullptr/Result::Failurewhen the pool is exhausted. - Multi-stream usage with interleaved flush/execute may observe conservative over-sync (never under-sync) due to max-size-wins matching policy.
subFree()andsubFree(numSub)invalidate all Maps owned by the Job because each Map snapshots its Job’s Sub assignment at construction time.MemInfo_tstruct size changed (deviceIdfield added). Recompilation required.- Reduced nop task turnaround time by ~30–70% on average vs. 1.4.5, with up to 84% improvement in some cases.
New
mxdriver_dev
- mxdriver: DKMS support.
pxl
- PXL: Added
Map::cancel()— soft cancellation that drains in-flight batches, skips unissued ones, and parks the map in the newExecuteStatus::Cancelledterminal state. The map is re-executable after cancel; argument caches are preserved. - PXL: Added
Map::getProgress()returning aProgress_tsnapshot (target / issued / done packet counts) for live and post-cancel progress inspection. - PXL: Added
pxl/compat.hppwith deprecated aliases for the pre-3.0 API (pxl::runtime::,pxl::kernel::,pxl::memory::,pxl::PxlResult,pxl::memory::systemCommand). Scheduled for removal in a future release. - PXL: Added Device-less Launcher API —
pxl::Launcher().execute<K>(N, args).run()for single-line kernel execution with automatic device detection. - PXL: Added
pxl::allocateMemory/pxl::releaseMemoryfree functions for device memory allocation.
xtop
- xtop: Multi-device profiling —
xtop runauto-detects every device on the node and captures one.xptiper device. - xtop: Live recording —
xtop view --record FILE.xptistreams the live monitor into an.xptifor later replay. - xtop: Post-mortem workflow split —
xtop convert(Perfetto),xtop export(CSV/raw),xtop open(browser) replace the bundled run-time export path.
Changed
mxdriver_dev
- driver: Reduced per-call overhead of command submission ioctl in light workloads by avoiding unnecessary synchronous PCIe reads.
pxl
Context::createJob*now allocates a private default Stream per Job from the per-process Stream pool. Multi-Job workloads that previously shared one Context-level Stream are no longer serialised behind a single FIFO.- PXL:
pxl::flushHostCache(ptr, size)now reduces host-to-device auto-sync transfer toMap::execute()for the same pointer, avoiding full-allocation flush/DMA when only a sub-region was flushed. Device-to-host output sync preserves the full allocation size for safety. No API signature change. - PXL:
destroyJob()may now returnFailurewhen it races a concurrentsubFree*()on the same Job. Callers should retry after the competing teardown completes. - PXL:
Map::executemay now block when the shared stream queue is full, instead of returningFailureimmediately.
xtop
- xtop:
xtop run --csvremoved. Please usextop export <.xpti> --csv [DIR].
Fixed
pxl
- PXL: Optimized host-side performance of
Map::execute()on repeated invocations. - PXL: Propagated output
copyFromDevicefailures from the host-side post-execute step. - PXL: Fixed teardown races that could fail or crash when
subFree*()ordestroyJob()overlapped with in-flight async Map or async sub-allocation work. - PXL: Fix submission drops on shared default streams (queue overflow) and under transient internal task-pool pressure.
- PXL: Fixed incorrect IO memory granularity applied to non-first devices in mixed CXL/non-CXL multi-device systems.
- PXL: Save coredump at first error detection instead of job destruction, preserving correct device state for debugging.
xtop
- xtop: Skip profiler-unsupported firmware devices so multi-device runs no longer abort when one device runs a non-profiling firmware.
- xtop: Stale device-event rows from prior runs are cleaned up so analysis isn’t polluted by leftover hardware-probe data.
Docker Image
- Image Name:
xcenadev/sdk:v1.4.6 -
Pull Command:
docker pull xcenadev/sdk:v1.4.6