v1.3.0 (2025-08-28)

New

  • PXL:
    • Memory Allocation: Added support for calloc via pxl::runtime::Context::memCalloc(const size_t num, const size_t size).
    • Resource:
      • Added support for loading large MU ELF files (up to 256MB).
      • Added support for loading modules from image.
      • Added support for directly loading MU binary files into pxl::runtime::Job using pxl::runtime::Job::load(const char* path).
      • Added support for resource queries via pxl::runtime::Context::getAttribute(DeviceAttr attr, uint64_t& value).
  • MU Library:
    • Added support for large MU ELF files (up to 256MB)
    • Enabled ID reading functionality for individual Mu instances
    • Introduced NDArray support for enhanced data handling
    • Supported Global Read/Write operations and Cache Flush functionality

Changed

  • PXL:
    • Functions that previously returned bool now return PxlResult.
    • invalidL1(...), flushL1(...) -> invalidL2(...), flushL2(...)
    • Data structures:
      • pxl::runtime::Tensor<T> has been renamed to pxl::runtime::NDArray<T>.
        pxl::runtime::NDArray<T> is internally split into multiple mu::NDArray<T> objects for parallel execution in kernels.
    • Namespaces:
      • pxl::Device, pxl::Sub, pxl::Taskpxl::device::Device, pxl::device::Sub, pxl::device::Task
      • pxl::Module, pxl::Function, pxl::createModule(...)pxl::kernel::Module, pxl::kernel::Function, pxl::kernel::createModule(...)
    • Resource queries:
      • Context::remainSub()Context::availableSubCount()
      • Context::remainMemorySize()Context::availableMemSize()
      • Context::remainIoMemorySize()Context::availableIoMemSize()
    • Map:
      • Map::setSuccessCallback()Map::setCompleteCallback()
    • Logger:
      • pxl::log::setLog(...) is removed.
  • MU Library:
    • atomicRead -> atomicLoad
    • Explicitly separated asynchronous functions for clarity and control.
  • Updated APIs are available in the API Reference.

Fixed

  • Documentation has been updated to align with the API changes.

Important Notes

  • This release contains many API changes. Please refer to the API Reference for details.

Docker Image

  • Image Name: xcenadev/sdk:1.3.0
  • Pull Command:

    docker pull xcenadev/sdk:1.3.0
    

v1.2.0 (2025-05-20)

New

  • PXL Rust: Added Rust binding for PXL, enabling Rust developers to leverage PXL’s capabilities with Rust language support
  • Fail Recovery: Added fail recovery mechanism to handle device failures
  • Jupyter: Added Jupyter notebook support for interactive development of C++ applications using PXL in a Docker + QEMU environment
  • xMapReduce: Added xMapReduce and xkvstore libraries to provide a mapreduce framework to leverage PXL’s capabilities
  • Documentation:
    • Added example documentation for PXL Rust bindings
    • Added API documentation for MU Rust Library
    • Added tutorial documentation for Jupyter notebook
    • Added documentation for xMapReduce framework usage

Changed

  • PXL:
    • pxl::runtime::Parallel is now unified into pxl::runtime::Map for consistency. pxl::runtime::Map can be used as a drop-in replacement for all pxl::runtime::Parallel.
    • pxl::runtime::getNumDevice() is now removed. Use pxl::getNumDevice() instead.
    • pxl::runtime::syncToDevice() and pxl::runtime::syncFromDevice() are now removed. Use pxl::runtime::Context::syncToDevice() and pxl::runtime::Context::syncFromDevice() instead.
    • pxl::runtime::Context::copyToDevice() and pxl::runtime::Context::copyFromDevice() are now supported.
  • QEMU: Reduced CPU usage during idle time

Fixed

  • QEMU: Fixed hang issue during MMIO access in MSI interrupts
  • Documentation: Updated documentation to align with API changes

Important Notes

  • pxl::runtime::Parallel has been removed in this version. All code using the pxl::runtime::Parallel must be updated to use the new unified pxl::runtime::Map.

Docker Image

  • Image Name: xcenadev/sdk:1.2.0
  • Pull Command:

    docker pull xcenadev/sdk:1.2.0
    

v1.1.0 (2025-04-04)

New

  • QEMU: Support multiple devices
  • PXL: Added logger and performance tracer
  • Tool: Added pxltop for real time resource monitoring
  • MU Compiler: Support Rust
  • MU Library: Support Rust
  • Document: Added community and troubleshooting page

Changed

  • PXL: Unified interface for map/parallel argument type

Fixed

  • PXL: Resolved stability issues during job executions
  • CLI: Fix bug in device number counting

Important Notes

Docker Image

  • Image Name: xcenadev/sdk:1.1.0
  • Pull Command:

    docker pull xcenadev/sdk:1.1.0
    

v1.0.1 (2025-01-10)

New

  • Initial release of SDK for FPGA environment
  • Example: Add KNN application
  • MU lib: Support atomic operation
  • CLI: Add MU logger
  • Docker: Support Dev container

Changed

  • QEMU: Apply XCENA vendor ID for lspci information
  • Example: Migrate build environment from Makefile to CMake

Fixed

  • QEMU: Fix assert for misaligned CXL memory access
  • PXL: Fix bugs in device library, memory allocator

Deprecated

Important Notes

Docker image

  • Image name : xcenadev/sdk:1.0.1
  • Pull command

      docker pull xcenadev/sdk:1.0.1
    

v1.0.0 (2024-12-15)

New

  • Initial release of SDK emulator environment

Changed

Fixed

Deprecated

Important Notes

Docker image

  • Image name : xcenadev/sdk:1.0.0
  • Pull command

      docker pull xcenadev/sdk:1.0.0