# Performance API

Source: [https://docs.qualcomm.com/doc/80-PK177-134/topic/performance_api_qape.html](https://docs.qualcomm.com/doc/80-PK177-134/topic/performance_api_qape.html)

Qualcomm Adaptive Performance Engine (QAPE) can be used by application developers to hint the underlying system software about dynamic application performance requirements. The underlying QAPE framework can map the hints to the right CPU cores. This helps the productivity of application developers, as they no longer need to keep track of the CPU configuration of each SoC.

These APIs are very powerful and allow for application workload hinting. It helps to provide a good balance between performance and power on the SoC. With these APIs, the application developers can ensure best performance across the Qualcomm devices without any SoC specific knowledge of the CPU topology, CPU frequency, GPU frequency, and so on.

Key points to remember while using these APIs:

- These APIs can be used in combination on any thread, like a thread can be hinted as a
        pipeline thread using hint\_thread\_pipeline() and can be marked as high utilization using
        hint\_high\_util(). However, marking all the pipeline threads as high util can cause an
        increase in SoC power/thermals, hence needs to be used with caution. See Appendix A for more information.
- These are sticky APIs. When any thread is marked as low latency, high util, or pipeline thread, then the hint is kept for the life cycle of the thread.

A thread marked just as low latency is expected to run for short durations (low CPU util) but with tighter latency requirements.

- **[Performance API overview](https://docs.qualcomm.com/doc/80-PK177-134/topic/performance_api_overview.html)**
- **[QAPE subsystem APIs](https://docs.qualcomm.com/doc/80-PK177-134/topic/qape_apis.html)**  

These APIs are powerful and allow for application specific workload hinting. It can help     provide a good balance between performance and power on the SoC. With these APIs, application     developers can ensure the best performance across the Qualcomm devices without any SoC     specific knowledge for CPU topology, CPU frequency, GPU frequency, etc.
- **[OEM extension plugin](https://docs.qualcomm.com/doc/80-PK177-134/topic/oem_extension_plugin.html)**  

The OEM extension plugin provides an interface for application-assisted workload         hinting.
- **[QAPE subsystem callback interfaces](https://docs.qualcomm.com/doc/80-PK177-134/topic/qape_subsystem_callback_interfaces.html)**
- **[QAPE enums](https://docs.qualcomm.com/doc/80-PK177-134/topic/qape_enums.html)**
- **[Auto pipeline with other thread APIs](https://docs.qualcomm.com/doc/80-PK177-134/topic/auto_pipeline_with_other_threads.html)**  

Lists the behavior of a thread when different hints are applied on any thread.
- **[Example code](https://docs.qualcomm.com/doc/80-PK177-134/topic/qape_example_code.html)**

Last Published: Nov 14, 2024

[Previous Topic
Example code](https://docs.qualcomm.com/bundle/publicresource/80-PK177-134/topics/example_code_QC_4.md) [Next Topic
Performance API overview](https://docs.qualcomm.com/bundle/publicresource/80-PK177-134/topics/performance_api_overview.md)