Skip to main content
Pre-release

This release is a pre-release and may not be stable for production use.

ML Workload Library for Vulkan®

The Workload Library provides an experimental C++ API for constructing executable ML workloads for Vulkan® and running them through a common resource-binding and execution model.

Public API

Include the installed public headers that your application requires:

#include <mlworkloadlib/workload.hpp>
#include <mlworkloadlib/context.hpp>
#include <mlworkloadlib/session.hpp>

The API exposes:

  • mlsdk::workloadlib::Workload
  • mlsdk::workloadlib::Context
  • mlsdk::workloadlib::Session
  • mlsdk::workloadlib::BindingSet
  • mlsdk::workloadlib::PreparedExecution

You can create the following workloads:

  • VGF-backed workloads with Workload::fromVGF(...)
  • Standalone compute shader workloads with Workload::fromComputeShader(...)
  • Standalone Vulkan® data graph workloads with Workload::fromDataGraph(...)

Use Context::wrap(...) to provide application-owned Vulkan® objects, or use Context::create() to create a runtime-owned Vulkan® context.

Building the ML Workload Library for Vulkan® from source

The build system must have:

  • C/C++ 17 compiler: GCC or Clang on Linux, Clang on Darwin, or MSVC on Windows®.
  • CMake 3.25 or later.
  • Ninja 1.8.2 or later.
  • Python 3.10 or later and uv 0.9.26. Python tooling dependencies are declared in pyproject.toml and locked in uv.lock.
  • Doxygen 1.9.1 or later. (When building documentation)

To create an archive containing the build artifacts, pass the --package-type option with an archive type such as zip or tgz. Use --package-dir to choose where the archive is written; by default, packages are written to the build directory.

For more command line options, see the help output:

python3 scripts/build.py --help

Build-tree usage

Enable the library when configuring the standalone project:

cmake -S . -B build

Link one of the build-tree targets:

target_link_libraries(my_target PRIVATE mlworkloadlib)

Alternatively, link a namespaced target in the same build:

target_link_libraries(my_target PRIVATE MLWorkloadLibraryForVulkan::mlworkloadlib)

Installed package usage

When the ML Workload Library for Vulkan® is installed, the package exports mlworkloadlib through the MLWorkloadLibraryForVulkan package. Downstream consumers must use MLWorkloadLibraryForVulkan::mlworkloadlib.

find_package(MLWorkloadLibraryForVulkan CONFIG REQUIRED)
target_link_libraries(my_target PRIVATE MLWorkloadLibraryForVulkan::mlworkloadlib)

The package target requires the VGF and VulkanHeaders packages to be discoverable at configure time.

Optional VGF support

VGF workload support is enabled by default. Disable it when the library is only needed for programmatically constructed workloads:

python3 scripts/build.py --disable-vgf-support

For direct CMake configuration, set ML_WORKLOAD_LIB_ENABLE_VGF_SUPPORT=OFF. Such builds do not locate or link VGF Lib. Calls to Workload::fromVGF(...) throw an exception indicating that VGF support is unavailable.

Optional source module support

The base library supports SPIR-V™ modules. You can choose to enable GLSL and HLSL source compilation when you build the library:

python3 scripts/build.py --enable-glsl-support
python3 scripts/build.py --enable-hlsl-support

Use --glslang-path or --dxc-path when the dependency is not in the default location. For direct CMake configuration, use ML_WORKLOAD_LIB_ENABLE_GLSL_SUPPORT with GLSLANG_PATH, or ML_WORKLOAD_LIB_ENABLE_HLSL_SUPPORT with DXC_PATH.

Applications can query the source backends available in the linked library with mlsdk::workloadlib::supports(...).

Documentation

Install Doxygen and the Python documentation tool dependencies and build the HTML documentation:

uv sync --locked --no-install-project --no-default-groups --group tooling
uv run --no-sync python scripts/build.py --doc

The generated documentation is available at build/docs/out/index.html.

Code coverage

Sync the locked Python tooling dependencies, then run the unit tests on Linux with GCC coverage instrumentation:

uv sync --locked --no-install-project --no-default-groups --group test --group tooling
uv run --no-sync python scripts/build.py --coverage --build-dir build-coverage

The coverage command writes a detailed HTML report to build-coverage/coverage/index.html and a machine-readable JSON summary to build-coverage/coverage/summary.json. Coverage is collected for the library sources and public headers; tests and bundled dependencies are excluded from the report.

Consumption model

  • mlworkloadlib is install-tree consumable today via find_package(MLWorkloadLibraryForVulkan).
  • mlworkloadlib depends on external packages (VGF, VulkanHeaders), and those dependencies are resolved via the standalone package config.

License

The ML Workload Library for Vulkan® is distributed under the software licenses in the LICENSES directory.

Trademark notice

Arm® is a registered trademark of Arm Limited (or its subsidiaries) in the US and/or elsewhere.

Khronos® and Vulkan® are registered trademarks, and SPIR-V™ is a trademark of The Khronos Group Inc..

Metadata

Release files for ai-ml-workload-library-for-vulkan 0.12.0.dev20261024

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Built distributions (wheels)

Table of built distributions (wheels) for ai-ml-workload-library-for-vulkan 0.12.0.dev20261024
File Interpreter ABI Platform
ai_ml_workload_library_for_vulkan-0.12.0.dev20261024-py3-none-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl Python 3 none Linux glibc 2.28+ x86-64, Linux glibc 2.24+ x86-64 Details
ai_ml_workload_library_for_vulkan-0.12.0.dev20261024-py3-none-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl Python 3 none Linux glibc 2.28+ ARM64, Linux glibc 2.24+ ARM64 Details
ai_ml_workload_library_for_vulkan-0.12.0.dev20261024-py3-none-macosx_15_0_arm64.whl Python 3 none macOS 15.0+ ARM64 Details

Total release size: 2.1 MB

Release files / ai_ml_workload_library_for_vulkan-0.12.0.dev20261024-py3-none-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl

Download URL ai_ml_workload_library_for_vulkan-0.12.0.dev20261024-py3-none-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Size 772.3 kB
Tags Linux glibc 2.24+ x86-64 Linux glibc 2.28+ x86-64 Python 3
SHA-256 checksum
How to use checksums
c62c3c5970eefc5fd5fe21f5a3d0e8300f874874d0aaf545d231f7a231f56720
BLAKE2b-256 checksum
How to use checksums
5e0e23d8fd2d8b2089b88448f7ee0456edd4b5dd58e6a61252fad92aa48118be
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.15

Release files / ai_ml_workload_library_for_vulkan-0.12.0.dev20261024-py3-none-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl

Download URL ai_ml_workload_library_for_vulkan-0.12.0.dev20261024-py3-none-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Size 728.0 kB
Tags Linux glibc 2.24+ ARM64 Linux glibc 2.28+ ARM64 Python 3
SHA-256 checksum
How to use checksums
ed9d69758b2cac9c115e8c4da48aa76282ad56fd79d0b14c24b1b2c42c3175d3
BLAKE2b-256 checksum
How to use checksums
7e64ac29a0eec84d761046164b5fbd95b0a058f2ca8ce6ce4307034ecb2c8fad
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.15

Release files / ai_ml_workload_library_for_vulkan-0.12.0.dev20261024-py3-none-macosx_15_0_arm64.whl

Download URL ai_ml_workload_library_for_vulkan-0.12.0.dev20261024-py3-none-macosx_15_0_arm64.whl
Size 584.9 kB
Tags Python 3 macOS 15.0+ ARM64
SHA-256 checksum
How to use checksums
1ed411157b09303e947634e54b06a7641329bffbe79c90b3dc00685451f7876a
BLAKE2b-256 checksum
How to use checksums
d2c4b310a5da41ce2c9f8cc23a8761f0ab07eaad85c458e70ac15394c8e820a5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.11.14

Security for ai-ml-workload-library-for-vulkan 0.12.0.dev20261024

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page