# Revision history

| QAIRT SDK Version | Description |
| --- | --- |
| 2.47.0 | <ul class="simple"><br><li><p>SDK:</p><br><ul><br><li><p>Added dialog pause/resume tutorial to SDK documentation.</p></li><br><li><p>Added support for linear attention.</p></li><br><li><p>Enabled GPU engine on Windows.</p></li><br></ul><br></li><br><li><p>Bugfixes:</p><br><ul><br><li><p>Fixed issue where KV cache rewind did not correctly work with an<br>embedding LUT.</p></li><br><li><p>Fixed issue where backend extension configs with multiple contexts<br>were not correctly propagated.</p></li><br><li><p>Fixed issue where pipeline text generator state was not fully reset.</p></li><br></ul><br></li><br></ul> |
| 2.46.0 | <ul class="simple"><br><li><p>Genie C API 1.18.0:</p><br><ul><br><li><p>Added GenieDialog_releaseLoraMemory to release memory allocated for a<br>LoRA.</p></li><br><li><p>Added GENIE_DIALOG_PARAM_APPLIED_LORA_ADAPTER to retrieve the<br>actively applied LoRA.</p></li><br></ul><br></li><br><li><p>SDK:</p><br><ul><br><li><p>Added genie-app command to clear command history.</p></li><br><li><p>Added genie-app dialog command options for setOemKey and<br>setPriority.</p></li><br></ul><br></li><br><li><p>Bugfixes:</p><br><ul><br><li><p>Fixed issue where the token generation rate is reported too high when<br>the number of generated tokens is small.</p></li><br><li><p>Fixed issue where the genie-app async command does not work inside of<br>the loop statement.</p></li><br></ul><br></li><br></ul> |
| 2.45.0 | <ul class="simple"><br><li><p>Genie C API 1.17.0:</p><br><ul><br><li><p>Added GENIE_NODE_WILDCARD option for connecting hidden states between<br>nodes in a pipeline.</p></li><br><li><p>Added the following new APIs:</p><br><ul><br><li><p>GenieDlc.h:</p><br><ul><br><li><p>These APIs provide DLC support in Genie.</p></li><br><li><p>GenieDialogConfig_createFromDlc</p></li><br><li><p>GenieEmbeddingConfig_createFromDlc</p></li><br><li><p>GenieNodeConfig_createFromDlc</p></li><br></ul><br></li><br><li><p>GenieDialog_batchQuery</p></li><br><li><p>GenieNode.h:</p><br><ul><br><li><p>These new GenieNode APIs provide the ability to execute a single<br>node.</p></li><br><li><p>GenieNode_getData and GenieNode_execute</p></li><br><li><p>GenieNode_reset</p></li><br></ul><br></li><br><li><p>GenieSampler.h:</p><br><ul><br><li><p>The new GenieSampler APIs provide for a standalone sampler.</p></li><br><li><p>GenieSampler_create, GenieSampler_free, and<br>GenieSampler_sampleData.</p></li><br></ul><br></li><br></ul><br></li><br></ul><br></li><br><li><p>SDK:</p><br><ul><br><li><p>Added Qwen3 VL MRoPE support.</p></li><br><li><p>Added support for parallel initialization of HTP context binaries<br>and the tokenizer.</p></li><br><li><p>Removed QnnGenAITransformerBE OpPackage dependency.<br>QnnGenAiTransformerCpuOpPkg library is removed from the SDK.</p></li><br></ul><br></li><br><li><p>Bugfixes:</p><br><ul><br><li><p>Fixed a segmentation fault in the GenAiTransformer backend when using<br>kv-share and engine-share features together.</p></li><br><li><p>Fixed an issue where an Eaglet dialog could could produce out of<br>range tokens.</p></li><br><li><p>Fixed uninitialized variables which could potentially cause Genie to<br>crash.</p></li><br></ul><br></li><br></ul> |
| 2.44.0 | <ul class="simple"><br><li><p>Genie C API 1.16.0:</p><br><ul><br><li><p>Added GenieNode_train and GenieNode_saveLora APIs.</p></li><br></ul><br></li><br><li><p>SDK:</p><br><ul><br><li><p>Added genie-app source code example.</p></li><br></ul><br></li><br><li><p>Bugfixes:</p><br><ul><br><li><p>Fixed issue where a successful process code would be returned from<br>genie-app when a Genie API call had failed.</p></li><br><li><p>Fixed issue where the token query API would always fail for dialogs<br>with embedding LUT encoders.</p></li><br></ul><br></li><br></ul> |
| 2.43.0 | <ul class="simple"><br><li><p>Genie C API 1.15.0:</p><br><ul><br><li><p>Added the GenieDialog_getValue API and<br>GENIE_DIALOG_PARAM_CONTEXT_OCCUPANCY option.</p></li><br></ul><br></li><br><li><p>Dialog JSON configuration:</p><br><ul><br><li><p>Added the weight-shared-lora JSON configuration option.</p></li><br></ul><br></li><br><li><p>SDK:</p><br><ul><br><li><p>Added dialog rewindQuery and setStopSequence commands to genie-app.</p></li><br><li><p>Allow file outputs for genie-app pipeline execute commands.</p></li><br><li><p>Added call to dlclose when freeing QNN HTP engines.</p></li><br></ul><br></li><br><li><p>Bugfixes:</p><br><ul><br><li><p>Fixed seg fault in GenieDialog_save/restore when using QNN GPU<br>engines.</p></li><br><li><p>Fixed issue in the QNN GenAiTransformer engine’s GGUF file reader<br>which could cause parsing errors and segmentation faults.</p></li><br></ul><br></li><br></ul> |
| 2.42.0 | <ul class="simple"><br><li><p>Dialog JSON configuration:</p><br><ul><br><li><p>Added support for YaRN and linear RoPE.</p></li><br><li><p>Added a configuration option for controlling the KeyDiff anchor<br>weight.</p></li><br></ul><br></li><br><li><p>SDK:</p><br><ul><br><li><p>Added support for cross attention.</p></li><br><li><p>Added look-ahead decoding dialog support for GenieDialog_tokenQuery.</p></li><br><li><p>Added GenieDialog_tokenQuery support in genie-app.</p></li><br><li><p>Added support for 16KB page size in the Android sample code build.</p></li><br></ul><br></li><br><li><p>Bugfixes:</p><br><ul><br><li><p>Fixed issue where grouped LoRA adapters would fail to apply.</p></li><br><li><p>Fixed a bug in perplexity calculations with FP32 models or tokenized<br>inputs.</p></li><br><li><p>Fixed issue with Windows example code build.</p></li><br></ul><br></li><br></ul> |
| 2.41.0 | <ul class="simple"><br><li><p>Genie C API 1.14.0:</p><br><ul><br><li><p>Introduced GenieAccuracy.h to support perplexity measurements.</p></li><br></ul><br></li><br><li><p>Dialog JSON configuration:</p><br><ul><br><li><p>Added multimodal RoPE support.</p></li><br></ul><br></li><br><li><p>Bugfixes:</p><br><ul><br><li><p>Fixed issue where the HTP engine does not mmap serialized binaries<br>when the use-mmap flag is enabled.</p></li><br><li><p>Fixed an issue that could cause poor-quality output from certain<br>8-bit quantized decoder models by improving the detection logic for<br>the prefill stage of the decoder.</p></li><br><li><p>Fixed issue with example code build on Windows platforms.</p></li><br></ul><br></li><br></ul> |
| 2.40.0 | <ul class="simple"><br><li><p>N/A</p></li><br></ul> |
| 2.39.0 | <ul class="simple"><br><li><p>Genie C API 1.13.0:</p><br><ul><br><li><p>Introduced new profiling option for collecting detailed trace events.</p></li><br><li><p>Added the GenieDialog_embeddingTokenQuery API.</p></li><br><li><p>Added the GenieDialog_setMaxNumTokens API.</p></li><br><li><p>Added the GENIE_STATUS_WARNING_CONTEXT_EXCEEDED status code to<br>provide a specific status when a prompt exceeds the model’s context<br>length limit.</p></li><br></ul><br></li><br><li><p>Bugfixes:</p><br><ul><br><li><p>Fixed an issue that caused incorrect calculation of KV cache tensor<br>sizes on the HTP backend, which could lead to segmentation faults.</p></li><br><li><p>Fixed an issue where no output was generated for certain models when<br>the prompt prefill phase required multiple graph executions.</p></li><br></ul><br></li><br></ul> |
| 2.38.0 | <ul class="simple"><br><li><p>Genie C API 1.12.0:</p><br><ul><br><li><p>Added GENIE_NODE_IMAGE_ENCODER_IMAGE_FULL_ATTN_MASK and<br>GENIE_NODE_IMAGE_ENCODER_IMAGE_WINDOW_ATTN_MASK node inputs.</p></li><br></ul><br></li><br><li><p>Dialog JSON configuration:</p><br><ul><br><li><p>Added engine sharing support for HTP and basic or SSD dialogs.</p></li><br></ul><br></li><br><li><p>SDK:</p><br><ul><br><li><p>Added embeddingQuery support in genie-app.</p></li><br><li><p>Added support for encoder-decoder model in Gen AI Transformer.</p></li><br><li><p>Added support for Cross Layer Attention in HTP backend.</p></li><br><li><p>Added genie-t2e-run source code example.</p></li><br></ul><br></li><br><li><p>Bugfixes:</p><br><ul><br><li><p>Added missing type field in sampler.json config example.</p></li><br><li><p>Fixed issue loading the lm_head or LoRA adapters on Windows<br>platforms.</p></li><br><li><p>Fixed segmentation fault due to uninitialized variables.</p></li><br><li><p>Fixed an issue where Eaglet token generation rate had regressed.</p></li><br><li><p>Fixed an issue where the prompt-template is not applied when<br>GenieEmbedding_generate outputs are truncated.</p></li><br><li><p>Fixed issue where Genie could crash if the vocabulary size is less<br>than the AR-N.</p></li><br><li><p>Fixed issue where a paused query with LUT encoder models failed to<br>resume.</p></li><br><li><p>Fixed memory leaks during GenieDialog_applyLora.</p></li><br><li><p>Fixed reduced SSD acceptance rate when using cache-group with<br>long context.</p></li><br></ul><br></li><br></ul> |
| 2.37.0 | <ul class="simple"><br><li><p>Genie C API 1.11.0:</p><br><ul><br><li><p>Added GENIE_NODE_IMAGE_ENCODER_IMAGE_POS_SIN and<br>GENIE_NODE_IMAGE_ENCODER_IMAGE_POS_COS node inputs.</p></li><br></ul><br></li><br><li><p>SDK:</p><br><ul><br><li><p>Added an async command to genie-app allowing for execution of<br>asynchronous statements.</p></li><br><li><p>Added GenieEmbedding support to genie-app.</p></li><br><li><p>Added Eaglet dialog support for dual head draft models.</p></li><br></ul><br></li><br><li><p>Dialog JSON configuration:</p><br><ul><br><li><p>Added support for non-updatable quantization (NUQ) and grouped LoRA.</p></li><br><li><p>Added the cache-groups JSON configuration option allowing for the<br>sliding window attention (SWA) cache management policy.</p></li><br><li><p>Introduced the SSD dialog “branch-mode” config option with “top-1”<br>and “all-expand” supported values.</p></li><br></ul><br></li><br><li><p>Bugfixes:</p><br><ul><br><li><p>Fixed issue where SSD or SPD dialog types would crash on the<br>aarch64-oe-linux-gcc11.2 platform.</p></li><br><li><p>Fixed segmentation fault when graph switching is enabled along with<br>memory mapping.</p></li><br><li><p>Fixed minor memory leaks.</p></li><br></ul><br></li><br></ul> |
| 2.36.0 | <ul class="simple"><br><li><p>Genie C API 1.10.0:</p><br><ul><br><li><p>Added support for profiling and logging of GenieEngine APIs.</p></li><br><li><p>Introduced Genie Dialog and Embedding APIs to set and get performance<br>policy.</p></li><br><li><p>Added support for pausing and resuming active dialog queries.</p></li><br></ul><br></li><br><li><p>SDK:</p><br><ul><br><li><p>Added experimental support for arm64x-windows-msvc.</p></li><br><li><p>Include Eaglet dialog implementation in the SDK source code example.</p></li><br><li><p>Added support for KV cache rewind after KV cache restore.</p></li><br><li><p>Added a performance optimization where tokenizers are shared across<br>dialogs and embeddings when their tokenizer file paths are identical.</p></li><br><li><p>Added a performance optimization for improved KV cache conversion<br>logic for kv-share dialogs.</p></li><br></ul><br></li><br><li><p>Dialog JSON configuration:</p><br><ul><br><li><p>Added skip-lora-validation option to reduce LoRA adapter switch time<br>on HTP.</p></li><br><li><p>Added support for repetition penalties in sampling within the Genie<br>sampler.</p></li><br></ul><br></li><br><li><p>Bugfixes:</p><br><ul><br><li><p>Fixed sampling for float16 models which would produce nonsensical<br>response text.</p></li><br><li><p>Fixed LM head scheduling optimization when native sampling is<br>enabled.</p></li><br><li><p>Fixed segmentation fault when model validation fails on HTP.</p></li><br><li><p>Fixed memory leak in the tokenizer implementation.</p></li><br><li><p>Reduced memory overhead for token embedding LUT encoders.</p></li><br></ul><br></li><br></ul> |
| 2.35.0 | <ul class="simple"><br><li><p>Genie C API 1.9.0:</p><br><ul><br><li><p>Introduced the (experimental quality) GeniePipeline.h and GenieNode.h<br>APIs which provide multimodal support.</p></li><br><li><p>Introduced the GenieTokenizer.h API.</p></li><br></ul><br></li><br><li><p>SDK:</p><br><ul><br><li><p>Introduced the (experimental quality) genie-app command-line utility.</p></li><br><li><p>Removed printing of KPIs to stdout by the Genie library.</p></li><br></ul><br></li><br><li><p>Dialog JSON configuration:</p><br><ul><br><li><p>Added support for use-mmap on Windows platforms.</p></li><br><li><p>Added a data-alignment-size configuration options for dialogs and<br>embeddings APIs.</p></li><br></ul><br></li><br><li><p>Bugfixes:</p><br><ul><br><li><p>Fixed issue where GenieProfiling data could report invalid init time<br>data.</p></li><br><li><p>Fixed an issue detected by BinSkim in Genie.dll.</p></li><br><li><p>Fixed issue where stop sequence would not work with<br>GenieDialog_embeddingQuery.</p></li><br><li><p>Fixed issue where save/restore would not work for Eaglet dialogs.</p></li><br><li><p>Fixed issue in Eaglet dialogs where incorrect sentence code was<br>called back.</p></li><br></ul><br></li><br></ul> |
| 2.34.0 | <ul class="simple"><br><li><p>Genie C API 1.8.0:</p><br><ul><br><li><p>Added GenieEngine.h, GenieDialog_getEngine, and<br>GenieDialog_bindEngine APIs.</p></li><br><li><p>Added GenieSampler_registerUserDataCallback API which adds a userData<br>argument to the sampler custom callback.</p></li><br><li><p>Added token-acceptance-rate to the GenieProfile output for some<br>dialog types.</p></li><br><li><p>Added the Eaglet dialog type.</p></li><br></ul><br></li><br><li><p>SDK:</p><br><ul><br><li><p>Introduced a performance optimization where logits are sampled using<br>the native datatype output of the LLM.</p></li><br></ul><br></li><br><li><p>Bugfixes:</p><br><ul><br><li><p>Fixed genie-t2t-run issue where dialog de-init data was not saved.</p></li><br><li><p>Fixed issue where GenieEmbedding_generate would return a rank of 0.</p></li><br><li><p>Fixed issue where quantized value may overflow or underflow.</p></li><br></ul><br></li><br></ul> |
| 2.33.0 | <ul class="simple"><br><li><p>Genie C API 1.7.0:</p><br><ul><br><li><p>Added the GenieLog.h API.</p></li><br><li><p>Added LoRA adapter switch latency to GenieProfile output.</p></li><br><li><p>Allow sampler type to be changed in GenieSampler_applyConfig.</p></li><br></ul><br></li><br><li><p>Bugfixes:</p><br><ul><br><li><p>Fixed issue where RPC memory handles were not unregistered.</p></li><br><li><p>Fixed issue where queries after a KV cache rewind resulted in poor<br>text generation.</p></li><br></ul><br></li><br></ul> |
| 2.32.0 | <ul class="simple"><br><li><p>Genie C API 1.6.0:</p><br><ul><br><li><p>Added dialog priority support with GenieDialog_setOemKey and<br>GenieDialog_setPriority.</p></li><br></ul><br></li><br><li><p>SDK:</p><br><ul><br><li><p>Added Windows build support for the source code examples.</p></li><br><li><p>Reorganized the Genie SDK documentation.</p></li><br><li><p>Removed shift concat and pointer shift KV cache update methods in<br>lieu of smart mask.</p></li><br></ul><br></li><br><li><p>Bugfixes:</p><br><ul><br><li><p>Fixed issue where SPD token rate is incorrectly reported when the<br>query is aborted.</p></li><br><li><p>Fixed issue where multi-token stop sequences were not fully omitted<br>in queryCallback and KV$.</p></li><br><li><p>Fixed issue where tokenizer state is corrupted after a query abort.</p></li><br><li><p>Fixed issue where a Gen AI Transformer dialog attempts to double free<br>memory.</p></li><br><li><p>Fixed a qnn-genai-transformer-composer failure when preparing LoRA<br>adapters.</p></li><br><li><p>Fixed a performance regression for kv-share dialogs using the token<br>query API.</p></li><br></ul><br></li><br></ul> |
| 2.31.0 | <ul class="simple"><br><li><p>Genie C API 1.5.0:</p><br><ul><br><li><p>Added GenieDialog_signal API.</p></li><br></ul><br></li><br><li><p>Dialog JSON configuration:</p><br><ul><br><li><p>Added dialog debug configuration option.</p></li><br></ul><br></li><br><li><p>Bugfixes:</p><br><ul><br><li><p>Improved numerical stability of embedding requantization in<br>genie-t2t-run.</p></li><br><li><p>Fixed a crash in genie when running lookahead decoder dialog when<br>setting up attention masks and rope position embeddings.</p></li><br><li><p>Fixed issue with value data type in GenieProfile JSON output.</p></li><br></ul><br></li><br></ul> |
| 2.30.0 | <ul class="simple"><br><li><p>Genie C API 1.4.0:</p><br><ul><br><li><p>Added GenieProfile.h APIs.</p></li><br><li><p>Added GENIE_DIALOG_SENTENCE_REWIND sentence code option.</p></li><br><li><p>Added support for dialog custom sampler implementations.</p></li><br><li><p>Added GenieDialog_setStopSequence API to allow updating the stop<br>sequence configuration between dialog queries.</p></li><br></ul><br></li><br><li><p>Bugfixes:</p><br><ul><br><li><p>Fix issue causing FP16 model validation failures.</p></li><br><li><p>Fix issue where the end sentence code is not provided on a stop<br>sequence match.</p></li><br></ul><br></li><br></ul> |
| 2.29.0 | <ul class="simple"><br><li><p>SDK:</p><br><ul><br><li><p>Improved prompt processing time for SSD dialogs.</p></li><br><li><p>Include GenieEmbedding implementation in the SDK source code example.</p></li><br><li><p>Reduced the size of libGenie.so built from the source example.</p></li><br></ul><br></li><br><li><p>Genie C API 1.3.0:</p><br><ul><br><li><p>Added GenieSampler.h API.</p></li><br></ul><br></li><br><li><p>Dialog JSON configuration:</p><br><ul><br><li><p>Added QNN GPU engine type.</p></li><br><li><p>Added enable-graph-switching dialog JSON configuration option.</p></li><br><li><p>Added LoRA V1 support.</p></li><br><li><p>Added LoRA V2 support in GenAiTransformer backend.</p></li><br><li><p>Added JSON config support for longrope.</p></li><br><li><p>Added support for multistream SSD dialogs.</p></li><br><li><p>Added support for multistream embedding to text dialog.</p></li><br></ul><br></li><br><li><p>Bugfixes:</p><br><ul><br><li><p>Fix issue in genie-t2t-run that could result in a double free of a<br>dialog config handle.</p></li><br><li><p>Fix issue where KV cache restore could hang on aarch64-windows-msvc.</p></li><br><li><p>Fixed handling of rope-theta and rope-scaling configuration.</p></li><br></ul><br></li><br></ul> |
| 2.28.0 | <ul class="simple"><br><li><p>SDK:</p><br><ul><br><li><p>Added genie-t2e-run application and sample config for<br>GenieEmbedding.h.</p></li><br><li><p>Added llama-3-8b JSON config example for HTP.</p></li><br></ul><br></li><br><li><p>Genie C API 1.2.0:</p><br><ul><br><li><p>Added GenieEmbedding.h.</p></li><br><li><p>Added GenieDialog_applyLora and GenieDialog_setLoraStrength.</p></li><br><li><p>Added GenieDialog_tokenQuery. (Supported for basic dialog type only).</p></li><br><li><p>Added GenieDialog_save and GenieDialog_restore.</p></li><br></ul><br></li><br><li><p>Dialog JSON configuration:</p><br><ul><br><li><p>Added self-speculative decoding (SSD) dialog type.</p></li><br><li><p>Added speculative decoding (SPD) dialog type.</p></li><br><li><p>Added lookahead decoding (LADE) dialog type.</p></li><br><li><p>Added multistream dialog type.</p></li><br><li><p>Added rope-scaling.</p></li><br><li><p>Added support for multiple EOS tokens.</p></li><br><li><p>Added alibi and absolute positional encoding support.</p></li><br><li><p>Added SSD support for GenieDialog_embeddingQuery.</p></li><br></ul><br></li><br><li><p>Bugfixes:</p><br><ul><br><li><p>Fixed issue where mmap-budget was unused.</p></li><br><li><p>Fixed link issue with libGenie.so on aarch64-oe-linux-gcc11.2.</p></li><br><li><p>Fixed memory leak in model loading when setting use-mmap to false.</p></li><br></ul><br></li><br></ul> |
| 2.27.0 | <ul class="simple"><br><li><p>SDK:</p><br><ul><br><li><p>Added genie-t2t-run source code example.</p></li><br><li><p>Added llama-3-8b JSON config example for HTP.</p></li><br></ul><br></li><br><li><p>Genie C API 1.1.0:</p><br><ul><br><li><p>Added GenieDialog_embeddingQuery API with corresponding tool and<br>configuration support.</p></li><br></ul><br></li><br><li><p>Dialog JSON configuration:</p><br><ul><br><li><p>Added kv-share dialog type which provides support for KV cache<br>transfer between HTP and GenAiTransformer backends.</p></li><br><li><p>Added max-num-tokens dialog configuration option.</p></li><br></ul><br></li><br><li><p>Bugfixes:</p><br><ul><br><li><p>Fixed issue where IO encodings were not updated when a LoRA adapter<br>was applied.</p></li><br><li><p>Workaround issue where segmentation fault occurs after<br>GenieDialog_free when using the HTP backend.</p></li><br></ul><br></li><br></ul> |
| 2.26.0 | <ul class="simple"><br><li><p>Dialog JSON configuration:</p><br><ul><br><li><p>Added eot-token configuration option.</p></li><br><li><p>Added rope-theta configuration option.</p></li><br><li><p>Added support for async initialization and added allow-async-init</p></li><br><li><p>config option.</p></li><br><li><p>Added stop-sequence configuration option to enable dialog query<br>cancellation based upon response text matching.</p></li><br></ul><br></li><br><li><p>Bugfixes:</p><br><ul><br><li><p>Fix issue where incorrect Windows .lib files were packaged.</p></li><br><li><p>Fix issue where unknown genie-t2t-run option does not generate an<br>error.</p></li><br><li><p>Fixed memory allocation failures during HTP initialization.</p></li><br></ul><br></li><br></ul> |
| 2.25.0 | <ul class="simple"><br><li><p>Genie C API 1.0.0:</p><br><ul><br><li><p>Genie C API moves into production.</p></li><br></ul><br></li><br><li><p>Dialog JSON configuration:</p><br><ul><br><li><p>Introduced GenieDialog JSON configuration format.</p></li><br></ul><br></li><br></ul> |
| 2.23.0 | <ul class="simple"><br><li><p>Genie C API 0.1.0:</p><br><ul><br><li><p>Added GenieCommon.h and GenieDialog.h.</p></li><br></ul><br></li><br></ul> |

Last Published: Jun 04, 2026

[Previous Topic
Conventions](https://docs.qualcomm.com/bundle/publicresource/80-63442-10/topics/conventions.md) [Next Topic
Tutorials](https://docs.qualcomm.com/bundle/publicresource/80-63442-10/topics/tutorials_tutorials.md)