Program Listing for File QnnLpaiGraph.h¶
↰ Return to documentation for file (include/QNN/LPAI/QnnLpaiGraph.h)
//==============================================================================
//
// Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.
// All rights reserved.
// Confidential and Proprietary - Qualcomm Technologies, Inc.
//
//==============================================================================
/** @file
* @brief QNN LPAI Graph components
*/
#ifndef QNN_LPAI_GRAPH_H
#define QNN_LPAI_GRAPH_H
#ifdef __cplusplus
#include <cstdint>
#else
#include <stdint.h>
#endif
#include "QnnLpaiGraphInternal.h"
#include "QnnLpaiMem.h"
#ifdef __cplusplus
extern "C" {
#endif
typedef enum {
// see QnnLpaiGraph_Mem_t
QNN_LPAI_GRAPH_SET_CFG_SCRATCH_MEM = QNN_LPAI_GRAPH_SET_CFG_SCRATCH_MEM_DEFAULT,
// see QnnLpaiGraph_Mem_t
QNN_LPAI_GRAPH_SET_CFG_PERSISTENT_MEM = QNN_LPAI_GRAPH_SET_CFG_PERSISTENT_MEM_DEFAULT,
// see QnnLpaiGraph_PerfCfg_t
QNN_LPAI_GRAPH_SET_CFG_PERF_CFG = QNN_LPAI_GRAPH_SET_CFG_PERF_CFG_DEFAULT,
// see QnnLpaiGraph_CoreAffinity_t
QNN_LPAI_GRAPH_SET_CFG_CORE_AFFINITY = QNN_LPAI_GRAPH_SET_CFG_CORE_AFFINITY_DEFAULT,
// Unused, present to ensure 32 bits.
QNN_LPAI_GRAPH_SET_CFG_UNDEFINED = 0x7fffffff
} QnnLpaiGraph_SetConfigOption_t;
typedef enum {
// get the size requirement of scratch memory, return uint32_t
QNN_LPAI_GRAPH_GET_PROP_SCRATCH_MEM_SIZE = QNN_LPAI_GRAPH_GET_PROP_SCRATCH_MEM_SIZE_DEFAULT,
// get the size requirement of persistent memory, return uint32_t
QNN_LPAI_GRAPH_GET_PROP_PERSISTENT_MEM_SIZE = QNN_LPAI_GRAPH_GET_PROP_PERSISTENT_MEM_SIZE_DEFAULT,
// Unused, present to ensure 32 bits.
QNN_LPAI_GRAPH_GET_PROP_UNDEFINED = 0x7fffffff
} QnnLpaiGraph_GetPropertyOption_t;
typedef enum {
QNN_LPAI_GRAPH_CLIENT_PERF_TYPE_REAL_TIME = 1,
QNN_LPAI_GRAPH_CLIENT_PERF_TYPE_NON_REAL_TIME = 2,
// Unused, present to ensure 32 bits.
QNN_LPAI_GRAPH_CLIENT_PERF_TYPE_UNDEFINED = 0x7fffffff
} QnnLpaiGraph_ClientPerfType_t;
typedef struct {
uint32_t fps;
uint32_t ftrtRatio;
QnnLpaiGraph_ClientPerfType_t clientType;
} QnnLpaiGraph_PerfCfg_t;
// clang-format off
/// QnnLpaiGraph_PerfCfg_t initializer macro
#define QNN_LPAI_GRAPH_PERF_CFG_INIT \
{ \
1u, /*fps*/ \
10u, /*ftrtRatio*/ \
QNN_LPAI_GRAPH_CLIENT_PERF_TYPE_REAL_TIME /*clientType*/ \
}
// clang-format on
typedef enum {
QNN_LPAI_GRAPH_CORE_AFFINITY_SOFT = 1,
QNN_LPAI_GRAPH_CORE_AFFINITY_HARD = 2,
// Unused, present to ensure 32 bits.
QNN_LPAI_GRAPH_CORE_AFFINITY_UNDEFINED = 0x7fffffff
} QnnLpaiGraph_CoreAffinityType_t;
typedef struct {
QnnLpaiGraph_CoreAffinityType_t affinity;
uint32_t coreSelection;
} QnnLpaiGraph_CoreAffinity_t;
// clang-format off
/// QnnLpaiGraph_CoreAffinity_t initializer macro
#define QNN_LPAI_GRAPH_CORE_AFFINITY_INIT \
{ \
QNN_LPAI_GRAPH_CORE_AFFINITY_SOFT, /*affinity*/ \
0u /*core_selection*/ \
}
// clang-format on
typedef struct {
QnnLpaiMem_MemType_t memType;
uint32_t size;
void* addr;
} QnnLpaiGraph_Mem_t;
// clang-format off
/// QnnLpaiGraph_Mem_t initializer macro
#define QNN_LPAI_GRAPH_MEM_INIT \
{ \
QNN_LPAI_MEM_TYPE_UNDEFINED, /*memType*/ \
0u, /*size*/ \
NULL /*addr*/ \
}
// clang-format on
// used by QnnGraph_setConfig
typedef struct {
uint32_t option;
void* config;
} QnnLpaiGraph_CustomConfig_t;
// clang-format off
/// QnnLpaiGraph_CustomConfig_t initializer macro
#define QNN_LPAI_GRAPH_CUSTOM_CONFIG_INIT \
{ \
QNN_LPAI_GRAPH_SET_CFG_UNDEFINED, /*option*/ \
NULL /*config*/ \
}
// clang-format on
// used by QnnGraph_getProperty
typedef struct {
uint32_t option;
void* property;
} QnnLpaiGraph_CustomProperty_t;
// clang-format off
/// QnnLpaiGraph_CustomProperty_t initializer macro
#define QNN_LPAI_GRAPH_CUSTOM_PROPERTY_INIT \
{ \
QNN_LPAI_GRAPH_GET_PROP_UNDEFINED, /*option*/ \
NULL /*property*/ \
}
// clang-format on
#ifdef __cplusplus
} // extern "C"
#endif
#endif // QNN_LPAI_GRAPH_H