# HTP VTCM Sharing

Warning

This feature is only enabled on Hexagon V73 onwards and select V69 SoCs.
Sharing is impossible on previous platforms (such as V68, most V69, etc).

The VTCM sharing feature allows two entities that both want access to VTCM at the same time
to divide the resource between each other.

Prior to the enablement of this feature, two threads (one being a QNN thread and the other a non-QNN thread) in the same process
were unable to share the VTCM resource at the same time. Even if both threads requested page sizes that could fit side-by-side in VTCM (example: 2 x 4MB pages on an 8MB chip),
QNN thread would always allocate the maximum VTCM size for each page which made sharing impossible prior to the enablement of this feature

With the new VTCM sharing feature, it is possible for another entity to share a subset of VTCM
alongside QNN. Please note that QNN performance is very senitive to the amount of VTCM available.

Users of this feature will be able to:

1. Have a long-lived entity coexist with QNN.
2. Have another entity pass data to or from QNN through VTCM for an inference,
reducing the number of copies to or from DDR.

## HAP Compute Resource Manager API Shorthand

It is expected that users of this feature are fully familiar with the HAP Compute
Resource Manager and have read the necessary HexagonSDK documentation. It is also
expected that the programmer fully understands the benefits and limitations of using
VTCM in their use case. Furthermore, given that VTCM sharing is an expert level feature, it
is expected that users of this feature have very tight control over their use case
and can reliably control their callflows.

The following shorthand will be used to enhance callflow legibility. Please note
that only <cite>acquire</cite> and <cite>release</cite> will be shown to simplify the diagrams as much
as possible.

1// setup(vtcm_size, page_size)
     2HAP_compute_res_attr_set_cache_mode(&attr, true);
     3HAP_compute_res_attr_set_vtcm_param_v2(&attr, vtcm_size, page_size, vtcm_size);
     4auto ctx = HAP_compute_res_acquire(&attr, TIMEOUT_US);
     5
     6// acquire(vtcm_size, page_size)
     7HAP_compute_res_acquire_cached(ctx, TIMEOUT_US);
     8
     9// release()
    10HAP_compute_res_release_cached(ctx);
    Copy to clipboard

### Overmap

An overmap occurs when page size is larger than the usable portion. In this example `acquire(6,8)`,
VTCM size is 6MB; and page size is 8MB resulting in an 2MB overmap at the end; an unaddressable portion.

![../../_static/resources/vtcm_sharing/overmap.png](data:image/png;base64,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)

## Fundamentals

In the following diagrams, C1 denotes client 1 which is a user of VTCM.
Unless noted, all clients and QNN are the same priority.

The below diagram illustrates what occurs without VTCM sharing.
QNN requests a maximum-size page mapping at time `[1]` which prevents other
clients from using VTCM. Since C1 and QNN are the same priority C1 follows
the HAP Compute Resource Manager cooperative acquisition rules.

![../../_static/resources/vtcm_sharing/basics_nofeature.png](data:image/png;base64,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)

The below diagram illustrates the new callflow.
C1 is free to access its 2MB page while QNN freely accesses its 6MB.
With VTCM sharing there are two key changes:

1. The usable portion of the overmap is aligned to the end.
2. If another client’s page size fits in the overmap, it may coexist in the overmap.

![../../_static/resources/vtcm_sharing/basics_yesfeature.png](data:image/png;base64,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)

## VTCM Sharing Rules

1. This feature is only enabled for cached acquire and release APIs.
2. This feature activates when an overmap is requested, and cannot be disabled.
3. Clients must be in the same PD (Process Domain) for coexistence to occur.
This is due to platform enforced security which prevents cross-PD sharing.
4. Approved overmap requests will place the usable portion at the end of VTCM, not the beginning.
5. To co-exist a non-overmapped entity must make an `acquire` request where `page_size` fits
in the overmap space.
6. Order of the two entitys does not matter, only that the requests fit.
7. This feature only works within a PD.
8. QNN must use &gt;=50% of the hardware VTCM size for its graph size. If it is less this feature will not activate.

**When sharing pointers in VTCM:**

Warning

9. To share VTCM pointers the non-QNN entity must be **maximum priority** and both entities must be in a **Signed PD**.

10. If an entity wants to share a VTCM pointer with QNN, the entity must never release VTCM until QNN returns.

> 
> 
> This prevents a race condition where the non-owner entity tries to access VTCM before acquire is called.

**In regards to yielding:**

11. Acquire requests that don’t fit will follow normal cooperative scheduling rules as enforced by the HAP Compute Resource Manager.
12. All VTCM clients are individually responsible to yield and save/restore VTCM.
13. Yielding is still based on priority.
14. If a yield requires multiple clients to be evicted, the HAP Compute Resource Manager
will only do so if all active clients are at a lower priority than the new client requesting
VTCM.
15. If the HAP Compute Resource Manager can evict one entity to service an acquire,
it will do that instead of asking each client to release.

### Native HTP Use Case

In this use case pointer sharing requires no work from the C1 entity because both C1 and QNN share the same address space.
All that is required is for C1 to hold its VTCM acquire call until QNN is finished at `[6]`.

![../../_static/resources/vtcm_sharing/input_nonrpc.png](data:image/png;base64,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)

### FastRPC Use Case

Like the Native HTP use case, C1 must hold VTCM for the duration of the inference.
In addition, this use case requires sending the VTCM VA back to the CPU so that it can
be passed to QNN.

![../../_static/resources/vtcm_sharing/input_rpc.png](data:image/png;base64,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)

To utilize this call flow the following code sample has been provided to demonstrate
which API calls must be made.

//==============================================================================
    //
    //  Copyright (c) 2022, 2024 Qualcomm Technologies, Inc.
    //  All Rights Reserved.
    //  Confidential and Proprietary - Qualcomm Technologies, Inc.
    //
    //==============================================================================
    
    // From Backend-Specific API Headers
    #include "QnnHtpMem.h"
    
    int main(void) {
    
      // Setup the QNN Device or else registration will fail
      Qnn_DeviceHandle_t device = NULL;
      if (QNN_SUCCESS != QnnDevice_create(NULL, NULL, &device) || device == NULL) {
        // Do something
      }
    
      // Must bind the device to a context
      Qnn_ContextHandle_t context = NULL;
      QnnContext_create(backend, // user must provide this
                        device, // from above
                        NULL,
                        &context);
    
      // This example will use an input tensor. You can do the
      // same for any graph output tensors
      Qnn_Tensor_t inputTensor = {};
    
      // Call graph create setting the right VTCM size
      QnnHtpGraph_CustomConfig_t customConfig;
      customConfig.option       = QNN_HTP_GRAPH_CONFIG_OPTION_VTCM_SIZE;
      customConfig.vtcmSizeInMB = 7; // put a number less than hardware page size
    
      QnnGraph_Config_t gConfig;
      gConfig.option       = QNN_GRAPH_CONFIG_OPTION_CUSTOM;
      gConfig.customConfig = &customConfig;
    
      const QnnGraph_Config_t* graphConfig[] = {&gConfig, NULL};
    
      // Use the new graph size
      Qnn_GraphHandle_t graph     = NULL;
      Qnn_ErrorHandle_t graphError = QnnGraph_create(
                            context,     // from above
                            "QnnGraph",  // name
                            graphConfig, // from above
                            &graph);
    
      if (QNN_SUCCESS != graphError) {
        // Do something
      }
    
      // Finalize the graph
    
      // This call corresponds with step #2
      uint32_t dspVirtualAddress = getDspVirtualAddress();
    
      // Structs from QnnHtpMem.h
      QnnMemHtp_Descriptor_t inputHtpDescriptor{
          .type        = QNN_HTP_MEM_QURT,   // const from the header QnnHtpMem.h
          .size        = INPUT_TENSOR_SIZE,  // user must provide this
          .qurtAddress = dspVirtualAddress};
    
      // Structs from QnnMem.h
      Qnn_MemShape_t qnnMemShapeInput = {.numDim  = INPUT_TENSOR_DIMS_LEN,  // user must provide this
                                         .dimSize = INPUT_TENSOR_DIMS,      // user must provide this
                                         .shapeConfig = NULL};
    
      Qnn_MemDescriptor_t inputQnnDescriptor{
          .memShape   = qnnMemShapeInput,     // from above
          .dataType   = INPUT_TENSOR_DTYPE,   // user must provide this
          .memType    = QNN_MEM_TYPE_CUSTOM,  // from QnnHtpMem.h
          .customInfo = &inputHtpDescriptor,  // above
      };
      Qnn_MemHandle_t inputMemHandle = NULL;
    
      // Register the memory, note that the context is the same as above that
      // used the Qnn_DeviceHandle_t
      int status = QnnMem_register(context, &inputQnnDescriptor, 1, &inputMemHandle);
    
      if (status != QNN_SUCCESS) {
        // Do something
      }
    
      inputTensor.v1.memType   = QNN_TENSORMEMTYPE_MEMHANDLE;
      inputTensor.v1.memHandle = inputMemHandle;
    
      // You can now use the inputTensor as an arugment to graph execute
    }
    Copy to clipboard

## Pre Emption

Pre-emption is still a concern in that the HAP Compute Resource Manager expects cooperative pre-emption from
its clients.

### Two Graphs in the Same PD

In this use case two graphs (QNN1,2) coexist with C1. Graph 2 wants to execute and because it is the
high priority, the HAP Compute Resource Manager will trigger a preemption. C1 is not preempted because
it is in the same PD as QNN, and it’s VTCM usage fits in Graph 2’s overmap space. Therefore, only graph 1
is asked to yield.

![../../_static/resources/vtcm_sharing/preempt_2graphs.png](data:image/png;base64,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)

### Two PDs - Incoming is Higher Priority

In this case, C1 and QNN are in the same PD, and PD2 is any client in another PD. VTCM sharing is impossible across PDs
so normal scheduling rules follow. PD2 is a higher priority than either client in PD1 so the HAP Compute
Resource Manager asks all active clients in PD1 to yield, then giving VTCM to PD2.

![../../_static/resources/vtcm_sharing/preempt_2pd.png](data:image/png;base64,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)

### Two PDs - Incoming is Lower Priority

This case is identical to the previous, except one active client in PD1 is higher priority than the client in PD2.
Following the normal queue rules, PD2 must wait until the high priority C1 entity decides to release.
At that point the priority of PD2 is greater than the priority of PD1, and a release request is sent to QNN.

Warning

Please note that in this diagram the release at step [4] is not triggered by step [3]. Instead
PD2 must wait until all high priority clients release, then the Hexagon OS will initiate preemption.

![../../_static/resources/vtcm_sharing/preempt_2pd_nopreempt.png](data:image/png;base64,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)

# VTCM Windowing

Warning

Starting with Hexagon V79 certain chips may support the VTCM windowing functionality.
Please refer to the Hexagon SDK documentation for a thorough list of supported platforms.

Please refer to the Hexagon SDK to fully understand the VTCM windowing feature and its limitations.
In regards to VTCM Sharing, windowing will permit coexistence across PDs. Meaning, another process’s
page size can fit into QNN’s VTCM overmap region allowing the two PDs to execute in parallel.

Pointer sharing across PDs is not allowed and will result in undefined behaviour.

Last Published: Jun 04, 2026

[Previous Topic
HTP Parallel Graph Execution](https://docs.qualcomm.com/bundle/publicresource/80-63442-10/topics/htp_pge.md) [Next Topic
QNN HTP SSR](https://docs.qualcomm.com/bundle/publicresource/80-63442-10/topics/htp_ssr.md)