v1.4.10 (2026-08-20)
Download
- SDK Package: xcena_sdk_v1.4.10_ubuntu_24.04.tar.xz
- Firmware : xbundle_encrypt_v1.0.11.bin
Important Notes
fw
- Added support for 5600MT/s DRAM modules.
pxcc
- pxcc is experimental and subject to change without deprecation. Please check the documentation for the latest updates.
- Source that compiled before this release can fail to compile after it because pxcc starts to check more conditions
- pxcc added checks that reject
-Xmu -c, an explicit-j 0, a header-defined non-template kernel body, and a badexecute()argument. - pxcc also rejects device code that needs dynamic initialization, because MU startup never runs
.init_array.
- pxcc added checks that reject
pxl
- PXL: Breaking change to a public enum. A successful execution now reports
ExecuteStatus::Completed, where it previously reportedExecuteStatus::Idle. Code that detects completion withgetExecuteStatus() == ExecuteStatus::Idlestill compiles, silently stops taking its success path, and a polling loop written against that condition never exits. Migrate to== ExecuteStatus::Completed, or use the return value ofsynchronize().ExecuteStatus::Idlefrom now on means only “has not executed yet”. - PXL:
ExecuteStatus::Completedtakes the value 9, which the previous header used forExecuteStatus::Max, andMaxmoves to 10. A consumer compiled against the previous header must be rebuilt before linking against this library: without a rebuild it reads a successful execution as theMaxsentinel or filters it out in a range check, with no diagnostic.
sdk
- openSUSE Leap 16 and RHEL 9 are experimental. Verified on openSUSE Leap 16.0 and Rocky Linux 9.6; Red Hat Enterprise Linux itself is untested.
New
pxcc
--config=<file>, an auto-discovered.pxcc.cfg, and~/.pxcc.cfgeach read compile options from a file.PXCC_CACHE_DIRturns on an opt-in incremental compile cache, and the cache stays off without that variable.execute()gained two argument checks, one for arithmetic width and one for device copyability.- pxcc gained a warning on a default argument on a kernel parameter.
- pxcc gained an error on an anonymous-namespace type used as a template argument in device code.
pxl
- PXL: Added
Job::allocateMemory()for job-private device memory. - PXL: Added
Job::remapMemory()andJob::unmapMemory()to place job-private memory at a user-specified device virtual address. - PXL: Added
ExecuteStatus::Completedto distinguish successful completion from the initialIdlestate. - PXL: Use ccma (
/dev/ccma) as default allocator which make PXL support NUMA computing.
sdk
- SDK: Added experimental release targets for openSUSE Leap 16 and RHEL 9 (el9 — RHEL, Rocky Linux, AlmaLinux). Ubuntu 24.04 remains the officially supported target.
- SDK: Added
scripts/setup_host.sh, which applies the CXL devdax host setup per distro — kernel cmdline, memory auto-online udev override, and a boot-time conversion service. Opt in with./install.sh --with-host-setup.
xprofiler
- Add daemon-backed
xtop attach --pid, routed per-Sub capture, and passive multi-readerview.
Changed
pxcc
- The cache key now covers the pxcc version and both compiler binaries, so an older entry misses once.
- A cache hit now restores the device object
mu.<src>.oand the four intermediate files as well. - A multi-file build runs on one shared worker pool, so one slow file no longer delays a batch.
- A class-level
__mu_shared__or__mu_device__mark now reaches an out-of-line member definition too. - The same compile error prints once, because pxcc folds the device chain copy into the host chain copy.
pxl
- PXL: A successfully completed Map now reports
ExecuteStatus::Completedinstead ofExecuteStatus::Idle. See IMPORTANT NOTES.
sdk
- SDK:
install.shandinstall_dependencies.shnow select apt/dpkg or zypper/dnf/rpm from/etc/os-releaseinstead of assuming Ubuntu. - Docs: Docker guide now documents the host
pxl_resourceddaemon as required for running hardware (single or multiple containers).
Fixed
pxcc
- Device code extraction now handles a concept, a member initializer, a multi-declarator declaration, and a macro-expanded definition.
- An out-of-line member of a class template, and the class that holds it, now reach the device source.
- A host-only function that only a member initializer calls no longer enters the device build.
pxl::createModule()now returns a real module inside a global constructor.- The
.dfile names your source instead ofhost.<src>.cpp, and a device diagnostic points at the right line.
pxl
- PXL: Job ids are no longer truncated to 16 bits, so
Job::id()stays unique past 65536 jobs in one process. - PXL: Fixed hangs, spurious cancels, and misreported errors on the Map completion path.
- PXL: Fixed cache-coherency mismatch in the Launcher.
- PXL: Fixed device memory leaking when a client failed.
Docker Image
- Image Name:
xcenadev/sdk:v1.4.10 -
Pull Command:
docker pull xcenadev/sdk:v1.4.10