File QnnHtpGraph.h

Parent directory (include/QNN/HTP)

QNN HTP component Graph API.

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

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
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
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

Public Members

QnnHtpGraph_OptimizationType_t type
float floatValue
struct QnnHtpGraph_FinalizeConfig_t
#include <QnnHtpGraph.h>

A struct for different config parameters in a key value format.

Public Members

const char *key
Qnn_Scalar_t value
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]