60 lines
1.8 KiB
C++
60 lines
1.8 KiB
C++
|
|
#pragma once
|
|
|
|
#include "QnnTypes.h"
|
|
#include "QnnCommon.h"
|
|
#include "QnnInterface.h"
|
|
#include "Saver/QnnSaver.h"
|
|
#include "System/QnnSystemInterface.h"
|
|
|
|
namespace qnn {
|
|
// =================================================================================================
|
|
//
|
|
// helper data type / data structure / macros / functions of
|
|
// Qualcomm QNN(Qualcomm Neural Network, aka Qualcomm AI Engine Direct) SDK
|
|
// ref:https://github.com/pytorch/executorch/tree/main/backends/qualcomm
|
|
// =================================================================================================
|
|
enum sdk_profile_level {
|
|
profile_off = 0,
|
|
profile_basic = 1,
|
|
profile_detail = 2
|
|
};
|
|
|
|
enum qcom_htp_arch {
|
|
NONE = 0,
|
|
V68 = 68,
|
|
V69 = 69,
|
|
V73 = 73,
|
|
V75 = 75,
|
|
};
|
|
|
|
enum qcom_chipset {
|
|
UNKNOWN_SM = 0,
|
|
SM8450 = 36, // v69
|
|
SM8475 = 42, // v69
|
|
SM8550 = 43, // v73
|
|
SM8650 = 57, // v75
|
|
};
|
|
|
|
struct qcom_socinfo {
|
|
uint32_t soc_model;
|
|
size_t htp_arch;
|
|
size_t vtcm_size_in_mb;
|
|
};
|
|
|
|
using pfn_rpc_mem_init = void (*)(void);
|
|
using pfn_rpc_mem_deinit = void (*)(void);
|
|
using pfn_rpc_mem_alloc = void* (*) (int, uint32_t, int);
|
|
using pfn_rpc_mem_free = void (*)(void*);
|
|
using pfn_rpc_mem_to_fd = int (*)(void*);
|
|
|
|
using pfn_qnnsaver_initialize = decltype(QnnSaver_initialize);
|
|
using pfn_qnninterface_getproviders = decltype(QnnInterface_getProviders);
|
|
using pfn_qnnsysteminterface_getproviders = decltype(QnnSystemInterface_getProviders);
|
|
}
|
|
|
|
#define QNN_VER_PTR(x) (&((x).v1)) // TODO: remove this macro after we have a separate header for QNN
|
|
|
|
#define RPCMEM_DEFAULT_FLAGS 1
|
|
#define RPCMEM_HEAP_ID_SYSTEM 25
|