Release Notes#
v1.3.1#
Release date: July 9, 2026 Type: Minor
16-bit integer support, SIMD level selection, a configurable NPU timeout, and reliability and performance improvements.
Added#
16-bit integer support — Runtime now supports 16-bit integers as an internal data type. Model input and output data types are not affected.
SIMD level selection — Scale and transpose operations now support AVX-512. By default, qb Runtime selects the fastest SIMD level the system supports; set the
QBRUNTIME_SIMD_LEVELenvironment variable (auto,avx512,avx2, orsse2) to override it.Configurable NPU timeout — Set the
QBRUNTIME_NPU_TIMEOUT_MSenvironment variable to control how long qb Runtime waits for the NPU before reporting a timeout.
Revised#
inferSpeedrunno longer crashes when used with models that accept variable-length input.Fixed issues affecting the
inferAsyncAPI.Model::dispose()no longer waits 3 seconds whenModel::releaseBuffer()was not called.Improved inference and data-transfer performance on Linux.
Known Issues#
Large models on Windows — Some large models, including 7B LLMs, may fail to run on Windows. A fix is in progress and planned for v1.3.2.
v1.2.0#
Release date: April 2, 2026 Type: Minor
Adds Batch LLM support.
Added#
BatchParam — a new struct BatchParam for Batch LLM inference. It holds the per-batch information needed during inference:
sequence_length: the sequence length for each batch.cache_size: the cache size each batch will use.cache_id: the cache identifier for each batch. All inputs in the same context must share one cache ID, and the value must be within the model’s maximum batch count.
To run Batch LLM, concatenate multiple inputs into a single input — along the
seq_lendimension when the shape is(1, seq_len, hidden_dim)— then pass aBatchParamfor each input:import qbruntime import numpy as np ## Check the maximum batch count supported by the model. print(model.get_cache_infos()[0].num_batches) ## Concatenate inputs along the 2nd dimension (axis=1). batch_input = np.concatenate([input0, input1], axis=1) ## qbruntime.BatchParam(sequence_length, cache_size, cache_id) batch_params = [ qbruntime.BatchParam(10, 0, 0), qbruntime.BatchParam(80, 0, 1), ] res = model.infer([batch_input], params=batch_params) batch_params2 = [ qbruntime.BatchParam(1, 10, 0), qbruntime.BatchParam(1, 80, 1), ] res = model.infer(res, params=batch_params2)
Known Issues#
Running LLM models on ARM (aarch64) systems may fail with a “Bus Error”. Present since v1.1.0; a driver patch is planned.
v1.1.0#
Release date: March 23, 2026 Type: Minor
Automatic core-mode selection, data-type query APIs, and performance optimizations.
Added#
CoreMode::Auto— the runtime auto-selects the available core mode from the MXQ. SetCoreMode::Autoin yourModelConfig(the default constructor already uses it), so non-default modes such asMulti,Global4, andGlobal8no longer need manual construction. See setAutoCoreMode().getModelInputDataType()/getModelOutputDataType()— query a model’s input and output data types at runtime.getAvailableDeviceNumbers()— retrieve the list of available NPU device numbers.
Note
If the MXQ was compiled with a flag like scheme="all" that produces multiple core modes, you must still select the core mode manually.
Revised#
REGULUS now uses the dynamic-allocation approach introduced in v1.0.0, for a consistent usage pattern.
Improved data-transfer performance to NPU devices on Windows.
Optimized internal type conversion.
Fixed a compile error caused by
std::filesystemon GCC versions below 9.Fixed an intermittent deadlock in certain models.
[Breaking] The supported REGULUS driver revision changes from REV0 to REV1.
Known Issues#
Running LLM models on ARM (aarch64) systems may fail with a “Bus Error”. A driver patch is planned.
See also
For the complete changelog, see the Changelog page.
v1.0.0#
Release date: January 31, 2026 Type: Major
A major release focused on scalability, consistency, and a structural refactor for future expansion. To upgrade, follow the Migration Guide.
Added#
uint8 inference — uint8 quantized models can be compiled with qb Compiler and executed by qb Runtime, reducing CPU overhead during preprocessing for models with uint8 inputs.
Activation slots —
setActivationSlots(int num)(C++) andset_activation_slots(num)(Python) tune pipelining between NPU inference and data transfer. More slots use more NPU memory but improve throughput in multithreaded workloads.
Note
For models that use cache (e.g., LLMs), the activation slot count is currently limited to 1.
Revised#
[Highlight] Model-count limit removed — models compiled with the latest qb Compiler (MXQv7) load and run concurrently within available DRAM, regardless of compile-time core mode. This helps multi-model services, mixed core-mode execution, and large models such as LLMs, with no code changes.
[Breaking] SDK qb naming unified — runtime library
maccel→ qb Runtime, compilerqubee→ qb Compiler. Packages, headers, and module names changed accordingly.
Removed#
Legacy packages (
mobilint-npu-runtime,aries-driver) are no longer maintained. See the Migration Guide.