File QnnHtpGraph.h¶
↰ Parent directory (include/QNN/HTP)
QNN HTP component Graph API.
Contents
Definition (include/QNN/HTP/QnnHtpGraph.h)¶
Detailed Description¶
The interfaces in this file work with the top level QNN API and supplements QnnGraph.h for HTP backend
Includes¶
QnnGraph.h(File QnnGraph.h)
Classes¶
Defines¶
Full File Listing¶
QNN HTP component Graph API.
The interfaces in this file work with the top level QNN
API and supplements QnnGraph.h for HTP backend
Defines
-
QNN_HTP_GRAPH_CONFIG_OPTION_MAX 0
QnnHtpGraph config value macro. Represents to use the maximum available number of the resource.
Currently only applicable for QNN_HTP_GRAPH_CONFIG_OPTION_VTCM_SIZE.
-
QNN_HTP_GRAPH_OPTIMIZATION_OPTION_INIT { \
QNN_HTP_GRAPH_OPTIMIZATION_TYPE_UNKNOWN
, /*type*/ \
0.0f /*floatValue*/ \
}
QnnHtpGraph_OptimizationOption_t initializer macro.
-
QNN_HTP_GRAPH_CUSTOM_CONFIG_INIT { \
QNN_HTP_GRAPH_CONFIG_OPTION_UNKNOWN
, /*option*/ \
{ \
QNN_HTP_GRAPH_OPTIMIZATION_OPTION_INIT/*optimizationOption*/ \
} \
}
QnnHtpGraph_CustomConfig_t initializer macro.
Enums
-
enum QnnHtpGraph_OptimizationType_t¶
This enum provides different HTP graph optimization options that can be used to finalize the graph for optimum performance.
Values:
-
enumerator QNN_HTP_GRAPH_OPTIMIZATION_TYPE_SCHEDULE_THRESHOLD = 1¶
-
enumerator QNN_HTP_GRAPH_OPTIMIZATION_TYPE_FINALIZE_RETRIES = 2¶
-
enumerator QNN_HTP_GRAPH_OPTIMIZATION_TYPE_FINALIZE_OPTIMIZATION_FLAG = 3¶
-
enumerator QNN_HTP_GRAPH_OPTIMIZATION_TYPE_ENABLE_DLBC = 4¶
-
enumerator QNN_HTP_GRAPH_OPTIMIZATION_TYPE_ENABLE_DLBC_WEIGHTS = 5¶
-
enumerator QNN_HTP_GRAPH_OPTIMIZATION_TYPE_UNKNOWN = 0x7fffffff¶
-
enumerator QNN_HTP_GRAPH_OPTIMIZATION_TYPE_SCHEDULE_THRESHOLD = 1¶
-
enum QnnHtpGraph_ConfigOption_t¶
This enum provides different HTP graph configuration options associated with QnnGraph.
Values:
-
enumerator QNN_HTP_GRAPH_CONFIG_OPTION_OPTIMIZATION = 1¶
-
enumerator QNN_HTP_GRAPH_CONFIG_OPTION_PRECISION = 2¶
-
enumerator QNN_HTP_GRAPH_CONFIG_OPTION_VTCM_SIZE_IN_MB = 3¶
-
enumerator QNN_HTP_GRAPH_CONFIG_OPTION_VTCM_SIZE = QNN_HTP_GRAPH_CONFIG_OPTION_VTCM_SIZE_IN_MB¶
-
enumerator QNN_HTP_GRAPH_CONFIG_OPTION_FOLD_RELU_ACTIVATION_INTO_CONV_OFF = 4¶
-
enumerator QNN_HTP_GRAPH_CONFIG_OPTION_SHORT_DEPTH_CONV_ON_HMX_OFF = 5¶
-
enumerator QNN_HTP_GRAPH_CONFIG_OPTION_NUM_HVX_THREADS = 6¶
-
enumerator QNN_HTP_GRAPH_CONFIG_OPTION_FINALIZE_CONFIG = 7¶
-
enumerator QNN_HTP_GRAPH_CONFIG_OPTION_WEIGHTS_PACKING = 12¶
-
enumerator QNN_HTP_GRAPH_CONFIG_OPTION_ASSUME_SAME_QUANT = 13¶
-
enumerator QNN_HTP_GRAPH_CONFIG_OPTION_RESERVED = 0x7fff0000¶
-
enumerator QNN_HTP_GRAPH_CONFIG_OPTION_UNKNOWN = 0x7fffffff¶
-
enumerator QNN_HTP_GRAPH_CONFIG_OPTION_OPTIMIZATION = 1¶
-
struct QnnHtpGraph_OptimizationOption_t¶
- #include <QnnHtpGraph.h>
Struct describing the set of optimization types and the values associated with each optimization type.
Below is the Map between QnnHtpGraph_OptimizationType_t and allowable values:
#
OptimizationType option
Allowable values
1
QNN_HTP_GRAPH_OPTIMIZATION_TYPE_SCHEDULE_THRESHOLD
Reserved
2
QNN_HTP_GRAPH_OPTIMIZATION_TYPE_FINALIZE_RETRIES
Reserved
3
QNN_HTP_GRAPH_OPTIMIZATION_TYPE_FINALIZE_OPTIMIZATION_FLAG
Defines the optimization strategy used by the HTP backend
1 = Faster preparation time, less optimal graph
2 = Longer preparation time, more optimal graph
- 3 = Longest preparation time, most likely even more optimal graph:
QNN_HTP_DEVICE_CONFIG_OPTION_SOC configuration will be taken into account when possible, details see HTP Backend Specific Page
4
QNN_HTP_GRAPH_OPTIMIZATION_TYPE_ENABLE_DLBC
Reserved
5
QNN_HTP_GRAPH_OPTIMIZATION_TYPE_ENABLE_DLBC_WEIGHTS
Enables DLBC weights compression
-
struct QnnHtpGraph_FinalizeConfig_t¶
- #include <QnnHtpGraph.h>
A struct for different config parameters in a key value format.
-
struct QnnHtpGraph_CustomConfig_t¶
- #include <QnnHtpGraph.h>
Structure describing the set of configurations supported by graph. Objects of this type are to be referenced through QnnGraph_CustomConfig_t.
The struct has two fields - option and a union of corresponding config values Based on the option corresponding item in the union can be used to specify config.
Below is the Map between QnnHtpGraph_ConfigOption_t and config value
#
Config Option
Configuration Struct/value
1
QNN_HTP_GRAPH_CONFIG_OPTION_OPTIMIZATION
QnnHtpGraph_OptimizationOption_t
2
QNN_HTP_GRAPH_CONFIG_OPTION_PRECISION
Qnn_Precision_t
3
QNN_HTP_GRAPH_CONFIG_OPTION_VTCM_SIZE_IN_MB/QNN_HTP_GRAPH_CONFIG_OPTION_VTCM_SIZE
uint32_t
4
QNN_HTP_GRAPH_CONFIG_OPTION_FOLD_RELU_ACTIVATION_INTO_CONV_OFF
bool
5
QNN_HTP_GRAPH_CONFIG_OPTION_SHORT_DEPTH_CONV_ON_HMX_OFF
bool
6
QNN_HTP_GRAPH_CONFIG_OPTION_NUM_HVX_THREADS
uint32_t
7
QNN_HTP_GRAPH_CONFIG_OPTION_FINALIZE_CONFIG
QnnHtpGraph_FinalizeConfig_t
12
QNN_HTP_GRAPH_CONFIG_OPTION_WEIGHTS_PACKING
bool
13
QNN_HTP_GRAPH_CONFIG_OPTION_ASSUME_SAME_QUANT
bool
0x7fff0000 - 0x7ffffffe
QNN_HTP_GRAPH_CONFIG_OPTION_RESERVED
These are reserved for internal purposes
NOTE: Option #6 (i.e. QNN_HTP_GRAPH_CONFIG_OPTION_NUM_HVX_THREADS), can only be set prior to the first execution of the graph. Proceeding executions will not use the updated value if user does change it after the first execution.
Public Members
-
QnnHtpGraph_ConfigOption_t option¶
-
QnnHtpGraph_OptimizationOption_t optimizationOption¶
-
Qnn_Precision_t precision¶
-
uint32_t vtcmSizeInMB¶
-
bool foldReluActivationIntoConvOff¶
-
bool shortDepthConvOnHmxOff¶
-
uint64_t numHvxThreads¶
-
void *reserved¶
-
QnnHtpGraph_FinalizeConfig_t finalizeConfig¶
-
bool weightsPacking¶
-
bool assumeSameQuant¶
-
union QnnHtpGraph_CustomConfig_t::[anonymous] [anonymous]¶
-
QnnHtpGraph_ConfigOption_t option¶