PXL
Overview

Parallel Xceleration Library (PXL) is a key component of XCENA SDK designed to facilitate optimized communication between host system and XCENA computational memory devices.
By leveraging PXL, developers can unlock the full potential of in-memory computing technology through a robust and efficient API.

PXL exposes a unified public API under the pxl:: namespace, organized into the following functional areas:

  • Execution: Context, Stream, Job, Map, NDArray — manages execution sessions, async task scheduling, and host-device memory mapping.
  • Kernel: Module, Function, KernelTraits — loads compiled kernel binaries and binds callable functions.
  • Memory: allocateMemory, releaseMemory, pinMemory, prefetchMemory, etc. — manages device memory with optional flags.
  • Launch: Launcher, LaunchBuilder, LaunchResult — high-level kernel launch API with automatic device detection.
  • Configuration: enableLog, registerSignalHandler, flushHostCache — runtime configuration and utilities.

Generate API Docs

  1. Prerequisite
    Doxygen >= 1.9.1
    Graphviz >= 2.43.0
  2. Run DoxyGen
    cd docs
    doxygen Doxyfile

Language Support

Currently, PXL is provided as a C++ API. In the future, support for additional programming languages will be introduced to accommodate a broader range of development environments and preferences.

Migrating from PXL 2.x

PXL 3.0 flattened the public API into a single pxl:: namespace. The pxl/compat.hpp header forwards the old names to the new ones with [[deprecated]] warnings. Scheduled for removal in a future release.