| 名称 | 描述 |
|---|---|
| hiai_aipp_param.h | 模型推理时动态AIPP对象创建,参数设置和查询的接口。 |
| hiai_helper.h | 查询CANN Kit版本以及检查模型支持情况的接口。 |
| hiai_options.h | 选项参数的接口。 |
| hiai_single_op.h | 定义CANN Kit单算子接口,用于单算子的创建、计算以及Tensor和Buffer的管理。 |
| hiai_tensor.h | 模型推理时使用的输入输出内存相关的辅助接口。 |
| llm_engine.h | 定义用于LLM模型推理的API。 |
| 名称 | 描述 |
|---|---|
| HIAI_YUV420SP_U8 = 0, HIAI_XRGB8888_U8 = 1, HIAI_YUV400_U8 = 2, HIAI_ARGB8888_U8 = 3, HIAI_YUYV_U8 = 4, HIAI_YUV422SP_U8 = 5, HIAI_AYUV444_U8 = 6, HIAI_RGB888_U8 = 7, HIAI_BGR888_U8 = 8, HIAI_YUV444SP_U8 = 9, HIAI_YVU444SP_U8 = 10, HIAI_IMAGE_FORMAT_INVALID = 255 } | CANN Kit推理支持的输入和输出Tensor的图片格式的枚举。 |
| HIAI_JPEG = 0, HIAI_BT_601_NARROW = 1, HIAI_BT_601_FULL = 2, HIAI_BT_709_NARROW = 3, HIAI_IMAGE_COLOR_SPACE_INVALID = 4 } | 图像色域空间类型。 |
| HIAI_COMPATIBILITY_COMPATIBLE = 0, HIAI_COMPATIBILITY_INCOMPATIBLE = 1 } | 编译后模型兼容性结果。 |
| HIAI_FORMAT_MODE_NCHW = 0, HIAI_FORMAT_MODE_ORIGIN = 1 } | 模型编译时数据的排列格式。 |
| HIAI_DYNAMIC_SHAPE_DISABLED = 0, HIAI_DYNAMIC_SHAPE_ENABLED = 1 } | 是否使能编译前可变shape。 |
| HIAI_DYNAMIC_SHAPE_CACHE_BUILT_MODEL = 0, HIAI_DYNAMIC_SHAPE_CACHE_LOADED_MODEL = 1 } | 编译前可变shape支持的模式。 |
| HIAI_EXECUTE_DEVICE_NPU = 0, HIAI_EXECUTE_DEVICE_CPU = 1, HIAI_EXECUTE_DEVICE_GPU = 2 } | 模型运行时支持的设备类型。 |
| HIAI_FALLBACK_ENABLED = 0, HIAI_FALLBACK_DISABLED = 1 } | 指定的硬件设备无法编译模型时,是否允许CANN Kit选择其他硬件设备,例如CPU。 |
HiAI_DeviceMemoryReusePlan { HIAI_DEVICE_MEMORY_REUSE_PLAN_UNSET = 0, HIAI_DEVICE_MEMORY_REUSE_PLAN_LOW = 1, HIAI_DEVICE_MEMORY_REUSE_PLAN_HIGH = 2 } | 设备内存复用配置选项。 |
| HIAI_TUNING_STRATEGY_OFF = 0, HIAI_TUNING_STRATEGY_ON_DEVICE_TUNING = 1, HIAI_TUNING_STRATEGY_ON_DEVICE_PREPROCESS_TUNING = 2, HIAI_TUNING_STRATEGY_ON_CLOUD_TUNING = 3 } | 模型优化策略配置选项。 |
| HIAI_TUNING_MODE_UNSET = 0, HIAI_TUNING_MODE_AUTO = 1, HIAI_TUNING_MODE_HETER = 2 } | 辅助调优模式。 |
| HIAI_BANDMODE_UNSET = 0, HIAI_BANDMODE_LOW = 1, HIAI_BANDMODE_NORMAL = 2, HIAI_BANDMODE_HIGH = 3 } | 定义硬件之间带宽模式。 |
| HIAI_OM_TYPE_OFF = 0, HIAI_OM_TYPE_PROFILING = 1, HIAI_OM_TYPE_DUMP = 2 } | 维测类型定义。 |
| HIAI_SINGLEOP_DT_FLOAT = 0, HIAI_SINGLEOP_DT_FLOAT16 = 1, HIAI_SINGLEOP_DT_UNDEFINED = 17 } | 单算子张量数据类型枚举。 |
| HIAI_SINGLEOP_FORMAT_NCHW = 0, HIAI_SINGLEOP_FORMAT_NHWC = 1, HIAI_SINGLEOP_FORMAT_ND = 2, HIAI_SINGLEOP_FORMAT_NC1HWC0 = 3, HIAI_SINGLEOP_FORMAT_NC4HW4 = 28, HIAI_SINGLEOP_FORMAT_NC8HW8 = 31, HIAI_SINGLEOP_FORMAT_RESERVED = 255 } | 单算子张量排布格式枚举。 |
| HIAI_SINGLEOP_CONV_MODE_COMMON = 0, HIAI_SINGLEOP_CONV_MODE_TRANSPOSED = 1, HIAI_SINGLEOP_CONV_MODE_DEPTHWISE = 2 } | 单算子卷积模式枚举。 |
| HIAI_SINGLEOP_PAD_MODE_SPECIFIC = 0, HIAI_SINGLEOP_PAD_MODE_SAME = 1, HIAI_SINGLEOP_PAD_MODE_SAME_UPPER = 2, HIAI_SINGLEOP_PAD_MODE_SAME_LOWER = 3, HIAI_SINGLEOP_PAD_MODE_VALID = 4 } | 单算子填充模式枚举。 |
| HIAI_SINGLEOP_ACTIVATION_TYPE_RELU = 0, HIAI_SINGLEOP_ACTIVATION_TYPE_RELU6 = 1 } | 单算子激活模式枚举。 |
| HIAI_SINGLEOP_OPTIMIZED = 0, HIAI_SINGLEOP_COMMON = 1, HIAI_SINGLEOP_UNSUPPORTED = 2 } | 单算子支持状态枚举。 |
| HMS_LLMENGINE_INFERPERF_UNSET = 0, HMS_LLMENGINE_INFERPERF_LOW, HMS_LLMENGINE_INFERPERF_MIDDLE, HMS_LLMENGINE_INFERPERF_HIGH, HMS_LLMENGINE_INFERPERF_EXTREME_HIGH } | 推断性能模式。 |
| 名称 | 描述 |
|---|---|
| HiAI_AippParam * HMS_HiAIAippParam_Create (uint32_t batchNum) | 根据batchNum创建动态AippParam对象。 |
| void * HMS_HiAIAippParam_GetData (HiAI_AippParam *aippParam) | 获取AippParam申请的内存地址。 |
| uint32_t HMS_HiAIAippParam_GetDataSize (HiAI_AippParam *aippParam) | 获取AippParam申请的内存大小。 |
| int HMS_HiAIAippParam_GetInputIndex (HiAI_AippParam *aippParam) | 查询AippParam对象所在输入的索引。 |
| OH_NN_ReturnCode HMS_HiAIAippParam_SetInputIndex (HiAI_AippParam *aippParam, uint32_t inputIndex) | 设置AippParam在输入上的索引。 |
| int HMS_HiAIAippParam_GetInputAippIndex (HiAI_AippParam *aippParam) | 查询AippParam对象在该输入的多个输出分支上的索引。 |
| OH_NN_ReturnCode HMS_HiAIAippParam_SetInputAippIndex (HiAI_AippParam *aippParam, uint32_t inputAippIndex) | 设置AippParam对象作用于该输入的多个输出分支上的索引。 |
| void HMS_HiAIAippParam_Destroy (HiAI_AippParam **aippParam) | 释放AippParam对象。 |
| OH_NN_ReturnCode HMS_HiAIAippParam_SetInputFormat (HiAI_AippParam *aippParam, HiAI_ImageFormat inputFormat) | 设置AippParam对象的输入图像格式。 |
| HiAI_ImageFormat HMS_HiAIAippParam_GetInputFormat (HiAI_AippParam *aippParam) | 查询AippParam对象的输入图像格式。 |
| OH_NN_ReturnCode HMS_HiAIAippParam_SetInputShape (HiAI_AippParam *aippParam, uint32_t srcImageW, uint32_t srcImageH) | 设置AippParam对象的输入图像宽高。 |
| OH_NN_ReturnCode HMS_HiAIAippParam_GetInputShape (HiAI_AippParam *aippParam, uint32_t *srcImageW, uint32_t *srcImageH) | 查询AippParam对象的输入图像宽高。 |
| uint32_t HMS_HiAIAippParam_GetBatchCount (HiAI_AippParam *aippParam) | 查询AippParam对象的图像数量。 |
| OH_NN_ReturnCode HMS_HiAIAippParam_SetCscConfig (HiAI_AippParam *aippParam, HiAI_ImageFormat inputFormat, HiAI_ImageFormat outputFormat, HiAI_ImageColorSpace space) | 设置AippParam对象的CSC色域转换参数。 |
| OH_NN_ReturnCode HMS_HiAIAippParam_GetCscConfig (HiAI_AippParam *aippParam, HiAI_ImageFormat *inputFormat, HiAI_ImageFormat *outputFormat, HiAI_ImageColorSpace *space) | 查询AippParam对象的CSC色域转换相关参数。 |
| OH_NN_ReturnCode HMS_HiAIAippParam_SetChannelSwapConfig (HiAI_AippParam *aippParam, bool rbuvSwapSwitch, bool axSwapSwitch) | 设置AippParam对象的ChannelSwap通道交换参数。 |
| OH_NN_ReturnCode HMS_HiAIAippParam_GetChannelSwapConfig (HiAI_AippParam *aippParam, bool *rbuvSwapSwitch, bool *axSwapSwitch) | 查询AippParam对象的ChannelSwap通道交换参数。 |
| OH_NN_ReturnCode HMS_HiAIAippParam_SetSingleBatchMultiCrop (HiAI_AippParam *aippParam, bool singleBatchMultiCrop) | 设置AippParam对象的SingleBatchMultiCrop标识。 |
| bool HMS_HiAIAippParam_GetSingleBatchMultiCrop (HiAI_AippParam *aippParam) | 查询AippParam对象的SingleBatchMultiCrop标识。 |
| OH_NN_ReturnCode HMS_HiAIAippParam_SetCropConfig (HiAI_AippParam *aippParam, uint32_t batchIndex, uint32_t startPosW, uint32_t startPosH, uint32_t croppedW, uint32_t croppedH) | 设置AippParam对象的裁剪参数。 |
| OH_NN_ReturnCode HMS_HiAIAippParam_GetCropConfig (HiAI_AippParam *aippParam, uint32_t batchIndex, uint32_t *startPosW, uint32_t *startPosH, uint32_t *croppedW, uint32_t *croppedH) | 查询AippParam对象的裁剪参数。 |
| OH_NN_ReturnCode HMS_HiAIAippParam_SetResizeConfig (HiAI_AippParam *aippParam, uint32_t batchIndex, uint32_t resizedW, uint32_t resizedH) | 设置AippParam对象的图像缩放参数。 |
| OH_NN_ReturnCode HMS_HiAIAippParam_GetResizeConfig (HiAI_AippParam *aippParam, uint32_t batchIndex, uint32_t *resizedW, uint32_t *resizedH) | 查询AippParam对象的图像缩放参数。 |
| OH_NN_ReturnCode HMS_HiAIAippParam_SetPadConfig (HiAI_AippParam *aippParam, uint32_t batchIndex, uint32_t leftPadSize, uint32_t rightPadSize, uint32_t topPadSize, uint32_t bottomPadSize) | 设置AippParam对象的输入图像的填充像素数。 |
| OH_NN_ReturnCode HMS_HiAIAippParam_GetPadConfig (HiAI_AippParam *aippParam, uint32_t batchIndex, uint32_t *leftPadSize, uint32_t *rightPadSize, uint32_t *topPadSize, uint32_t *bottomPadSize) | 查询AippParam对象的输入图像的填充像素数。 |
| OH_NN_ReturnCode HMS_HiAIAippParam_SetChannelPadding (HiAI_AippParam *aippParam, uint32_t batchIndex, uint32_t paddingValues[], uint32_t channelCount) | 设置AippParam对象的通道padding填充值。 |
| OH_NN_ReturnCode HMS_HiAIAippParam_GetChannelPadding (HiAI_AippParam *aippParam, uint32_t batchIndex, uint32_t paddingValues[], uint32_t channelCount) | 查询AippParam对象的通道padding填充值。 |
| OH_NN_ReturnCode HMS_HiAIAippParam_SetRotationAngle (HiAI_AippParam *aippParam, uint32_t batchIndex, float rotationAngle) | 设置AippParam对象的旋转角度。 |
| OH_NN_ReturnCode HMS_HiAIAippParam_GetRotationAngle (HiAI_AippParam *aippParam, uint32_t batchIndex, float *rotationAngle) | 查询AippParam对象的图像旋转角度。 |
| OH_NN_ReturnCode HMS_HiAIAippParam_SetDtcMeanPixel (HiAI_AippParam *aippParam, uint32_t batchIndex, uint32_t meanPixel[], uint32_t channelCount) | 设置AippParam对象的数据类型转换通道像素平均值。 |
| OH_NN_ReturnCode HMS_HiAIAippParam_GetDtcMeanPixel (HiAI_AippParam *aippParam, uint32_t batchIndex, uint32_t meanPixel[], uint32_t channelCount) | 查询AippParam对象的数据类型转换通道像素平均值。 |
| OH_NN_ReturnCode HMS_HiAIAippParam_SetDtcMinPixel (HiAI_AippParam *aippParam, uint32_t batchIndex, float minPixel[], uint32_t channelCount) | 设置AippParam对象的数据类型转换通道像素最小值。 |
| OH_NN_ReturnCode HMS_HiAIAippParam_GetDtcMinPixel (HiAI_AippParam *aippParam, uint32_t batchIndex, float minPixel[], uint32_t channelCount) | 查询AippParam对象的数据类型转换通道像素最小值。 |
| OH_NN_ReturnCode HMS_HiAIAippParam_SetDtcVarReciPixel (HiAI_AippParam *aippParam, uint32_t batchIndex, float varReciPixel[], uint32_t channelCount) | 设置AippParam对象的数据类型转换通道像素方差。 |
| OH_NN_ReturnCode HMS_HiAIAippParam_GetDtcVarReciPixel (HiAI_AippParam *aippParam, uint32_t batchIndex, float varReciPixel[], uint32_t channelCount) | 查询AippParam对象的数据类型转换通道像素方差。 |
| const char * HMS_HiAI_GetVersion (void) | 获取CANN Kit版本号,并通过返回模板hiaiversion A1A2A3.X1X2X3.Y1Y2Y3.Z1Z2Z3指定X1是否为0来区分是否支持NPU。若X1为0,则表示不支持NPU;若X1为非0,则表示支持NPU。 |
| HiAI_Compatibility HMS_HiAICompatibility_CheckFromFile (const char *file) | 查询编译后储存在文件中的模型的兼容性。 若发生不兼容情况,建议重新编译模型。 |
| HiAI_Compatibility HMS_HiAICompatibility_CheckFromBuffer (const void *data, size_t size) | 查询编译后储存在内存中的模型的兼容性。 若发生不兼容情况,建议重新编译模型。 |
| OH_NN_ReturnCode HMS_HiAIOptions_SetInputTensorShapes (OH_NNCompilation *compilation, NN_TensorDesc *inputTensorDescs[], size_t shapeCount) | 编译时更新模型输入shape。 |
| size_t HMS_HiAIOptions_GetInputTensorShapeSize (const OH_NNCompilation *compilation) | 查询选项参数中shape描述的个数。 |
| NN_TensorDesc * HMS_HiAIOptions_GetInputTensorShape (const OH_NNCompilation *compilation, size_t index) | 查询选项参数中指定索引的shape描述。 |
| OH_NN_ReturnCode HMS_HiAIOptions_SetFormatMode (OH_NNCompilation *compilation, HiAI_FormatMode formatMode) | 设置模型编译时的数据排列格式。 |
| HiAI_FormatMode HMS_HiAIOptions_GetFormatMode (const OH_NNCompilation *compilation) | 查询模型编译参数中的数据排列格式。 |
| OH_NN_ReturnCode HMS_HiAIOptions_SetDynamicShapeStatus (OH_NNCompilation *compilation, HiAI_DynamicShapeStatus status) | 设置编译前可变shape配置中的EnableMode参数。 |
| OH_NN_ReturnCode HMS_HiAIOptions_SetDynamicShapeMaxCache (OH_NNCompilation *compilation, size_t maxCacheCount) | 设置编译前可变shape配置中的最大缓存编译后模型数量。 |
| OH_NN_ReturnCode HMS_HiAIOptions_SetDynamicShapeCacheMode (OH_NNCompilation *compilation, HiAI_DynamicShapeCacheMode mode) | 设置编译前可变shape配置中的缓存模式参数。 |
| HiAI_DynamicShapeStatus HMS_HiAIOptions_GetDynamicShapeStatus (const OH_NNCompilation *compilation) | 查询编译前可变shape配置中的状态参数。 |
| size_t HMS_HiAIOptions_GetDynamicShapeMaxCache (const OH_NNCompilation *compilation) | 查询编译前可变shape配置中的最大缓存数量。 |
| HiAI_DynamicShapeCacheMode HMS_HiAIOptions_GetDynamicShapeCacheMode (const OH_NNCompilation *compilation) | 查询编译前可变shape配置中的cacheMode参数。 |
| OH_NN_ReturnCode HMS_HiAIOptions_SetOperatorDeviceOrder (OH_NNCompilation *compilation, const char *operatorName, HiAI_ExecuteDevice *executeDevices, size_t deviceCount) | 设置算子级调优配置中算子执行设备列表。 |
| size_t HMS_HiAIOptions_GetOperatorDeviceCount (const OH_NNCompilation *compilation, const char *operatorName) | 查询算子级调优配置中指定算子的执行设备个数。 |
| HiAI_ExecuteDevice * HMS_HiAIOptions_GetOperatorDeviceOrder (const OH_NNCompilation *compilation, const char *operatorName) | 查询算子级调优配置中指定算子的执行设备列表。 |
| OH_NN_ReturnCode HMS_HiAIOptions_SetModelDeviceOrder (OH_NNCompilation *compilation, HiAI_ExecuteDevice *executeDevices, size_t deviceCount) | 设置模型级调优配置中模型执行设备列表。 |
| size_t HMS_HiAIOptions_GetModelDeviceCount (const OH_NNCompilation *compilation) | 查询模型级调优配置中模型的执行设备个数。 |
| HiAI_ExecuteDevice * HMS_HiAIOptions_GetModelDeviceOrder (const OH_NNCompilation *compilation) | 查询模型级调优配置中模型的执行设备列表。 |
| OH_NN_ReturnCode HMS_HiAIOptions_SetFallbackMode (OH_NNCompilation *compilation, HiAI_FallbackMode fallbackMode) | 设置调优配置中的回滚模式。 |
| HiAI_FallbackMode HMS_HiAIOptions_GetFallbackMode (const OH_NNCompilation *compilation) | 查询调优配置中的回滚模式。 |
| OH_NN_ReturnCode HMS_HiAIOptions_SetDeviceMemoryReusePlan (OH_NNCompilation *compilation, HiAI_DeviceMemoryReusePlan deviceMemoryReusePlan) | 设置调优配置中的设备内存复用参数。 |
| HiAI_DeviceMemoryReusePlan HMS_HiAIOptions_GetDeviceMemoryReusePlan (const OH_NNCompilation *compilation) | 查询调优配置中的设备内存复用参数。 |
| OH_NN_ReturnCode HMS_HiAIOptions_SetTuningStrategy (OH_NNCompilation *compilation, HiAI_TuningStrategy tuningStrategy) | 设置模型编译时的模型优化策略。 |
| HiAI_TuningStrategy HMS_HiAIOptions_GetTuningStrategy (const OH_NNCompilation *compilation) | 查询模型优化策略。 |
| OH_NN_ReturnCode HMS_HiAIOptions_SetQuantConfig (OH_NNCompilation *compilation, void *data, size_t size) | 设置模型编译时量化配置。 |
| void * HMS_HiAIOptions_GetQuantConfigData (const OH_NNCompilation *compilation) | 查询量化配置的数据地址。 |
| size_t HMS_HiAIOptions_GetQuantConfigSize (const OH_NNCompilation *compilation) | 查询量化配置的数据大小。 |
| OH_NN_ReturnCode HMS_HiAIOptions_SetTuningMode (OH_NNCompilation *compilation, HiAI_TuningMode tuningMode) | 选择辅助调优模式。 |
| OH_NN_ReturnCode HMS_HiAIOptions_SetTuningCacheDir (OH_NNCompilation *compilation, const char *cacheDir) | 设置辅助调优的缓存目录。 |
| HiAI_TuningMode HMS_HiAIOptions_GetTuningMode (const OH_NNCompilation *compilation) | 查询辅助调优模式。 |
| const char * HMS_HiAIOptions_GetTuningCacheDir (const OH_NNCompilation *compilation) | 查询辅助调优的缓存目录。 |
| OH_NN_ReturnCode HMS_HiAIOptions_SetBandMode (OH_NNCompilation *compilation, HiAI_BandMode bandMode) | 设置NPU与周边硬件IO资源的带宽模式。 |
| HiAI_BandMode HMS_HiAIOptions_GetBandMode (const OH_NNCompilation *compilation) | 查询带宽模式。 |
| OH_NN_ReturnCode HMS_HiAIOptions_SetOmOptions (OH_NNCompilation *compilation, HiAI_OmType type, const char *outputDir) | 设置模型加载时的维测选项信息。 |
| HiAI_SingleOpTensorDesc * HMS_HiAISingleOpTensorDesc_Create (const int64_t *dims, size_t dimNum, HiAI_SingleOpDataType dataType, HiAI_SingleOpFormat format, bool isVirtual) | 创建HiAI_SingleOpTensorDesc对象。 |
| size_t HMS_HiAISingleOpTensorDesc_GetDimensionCount (const HiAI_SingleOpTensorDesc *tensorDesc) | 查询HiAI_SingleOpTensorDesc的维度数量。 |
| int64_t HMS_HiAISingleOpTensorDesc_GetDimension (const HiAI_SingleOpTensorDesc *tensorDesc, size_t index) | 查询HiAI_SingleOpTensorDesc指定索引的维度长度。 |
| HiAI_SingleOpDataType HMS_HiAISingleOpTensorDesc_GetDataType (const HiAI_SingleOpTensorDesc *tensorDesc) | 查询HiAI_SingleOpTensorDesc的数据类型。 |
| HiAI_SingleOpFormat HMS_HiAISingleOpTensorDesc_GetFormat (const HiAI_SingleOpTensorDesc *tensorDesc) | 查询HiAI_SingleOpTensorDesc的排布格式。 |
| bool HMS_HiAISingleOpTensorDesc_IsVirtual (const HiAI_SingleOpTensorDesc *tensorDesc) | 查询HiAI_SingleOpTensorDesc是否为虚拟张量。 |
| size_t HMS_HiAISingleOpTensorDesc_GetByteSize (const HiAI_SingleOpTensorDesc *tensorDesc) | 查询基于HiAI_SingleOpTensorDesc的维度和数据类型计算的数据占用字节数。 |
| void HMS_HiAISingleOpTensorDesc_Destroy (HiAI_SingleOpTensorDesc **tensorDesc) | 释放HiAI_SingleOpTensorDesc对象。 |
| HiAI_SingleOpBuffer * HMS_HiAISingleOpBuffer_Create (size_t dataSize) | 按照指定的内存大小创建HiAI_SingleOpBuffer对象。 |
| size_t HMS_HiAISingleOpBuffer_GetSize (const HiAI_SingleOpBuffer *buffer) | 查询HiAI_SingleOpBuffer的字节大小。 |
| void * HMS_HiAISingleOpBuffer_GetData (const HiAI_SingleOpBuffer *buffer) | 查询HiAI_SingleOpBuffer的内存地址。 |
| OH_NN_ReturnCode HMS_HiAISingleOpBuffer_Destroy (HiAI_SingleOpBuffer **buffer) | 释放HiAI_SingleOpBuffer对象。 |
| HiAI_SingleOpTensor * HMS_HiAISingleOpTensor_CreateFromTensorDesc (const HiAI_SingleOpTensorDesc *desc) | 根据HiAI_SingleOpTensorDesc创建HiAI_SingleOpTensor对象。 |
| HiAI_SingleOpTensor * HMS_HiAISingleOpTensor_CreateFromSingleOpBuffer (const HiAI_SingleOpTensorDesc *desc, void *data, size_t dataSize) | 根据HiAI_SingleOpTensorDesc、HiAI_SingleOpBuffer的内存地址和数据大小创建HiAI_SingleOpTensor对象。 |
| HiAI_SingleOpTensor * HMS_HiAISingleOpTensor_CreateFromConst (const HiAI_SingleOpTensorDesc *desc, void *data, size_t dataSize) | 根据HiAI_SingleOpTensorDesc、常量数据(如卷积权重、偏置等)的内存地址和数据大小创建HiAI_SingleOpTensor对象。 |
| HiAI_SingleOpTensorDesc * HMS_HiAISingleOpTensor_GetTensorDesc (const HiAI_SingleOpTensor *tensor) | 获取HiAI_SingleOpTensor的Tensor描述。 |
| HiAI_SingleOpBuffer * HMS_HiAISingleOpTensor_GetBuffer (const HiAI_SingleOpTensor *tensor) | 获取HiAI_SingleOpTensor的Buffer。 |
| OH_NN_ReturnCode HMS_HiAISingleOpTensor_Destroy (HiAI_SingleOpTensor **tensor) | 释放HiAI_SingleOpTensor对象。 |
| HiAI_SingleOpOptions * HMS_HiAISingleOpOptions_Create (void) | 创建HiAI_SingleOpOptions对象。 |
| void HMS_HiAISingleOpOptions_Destroy (HiAI_SingleOpOptions **options) | 释放HiAI_SingleOpOptions对象。 |
| HiAI_SingleOpDescriptor * HMS_HiAISingleOpDescriptor_CreateConvolution (HiAISingleOpDescriptor_ConvolutionParam param) | 创建卷积类(普通卷积、转置卷积、深度卷积)的描述符对象。 |
| HiAI_SingleOpDescriptor * HMS_HiAISingleOpDescriptor_CreateActivation (HiAI_SingleOpActivationType activationType, float coef) | 创建激活函数类的描述符对象。 |
| void HMS_HiAISingleOpDescriptor_Destroy (HiAI_SingleOpDescriptor **opDesc) | 释放HiAI_SingleOpDescriptor对象。 |
| HiAI_SingleOpSupportStatus HMS_HiAISingleOpExecutor_PreCheckConvolution (HiAI_SingleOpExecutorConvolutionParam param) | 预查询卷积算子的支持状态。 |
| HiAI_SingleOpSupportStatus HMS_HiAISingleOpExecutor_PreCheckFusedConvolutionActivation (HiAI_SingleOpExecutorFusedConvolutionActivationParam param) | 预查询卷积和激活融合算子的支持状态。 |
| HiAI_SingleOpExecutor * HMS_HiAISingleOpExecutor_CreateConvolution (HiAI_SingleOpExecutorConvolutionParam param) | 创建卷积类算子对应的HiAI_SingleOpExecutor对象。 |
| HiAI_SingleOpExecutor * HMS_HiAISingleOpExecutor_CreateFusedConvolutionActivation (HiAI_SingleOpExecutorFusedConvolutionActivationParam param) | 创建卷积和激活融合算子对应的HiAI_SingleOpExecutor对象。 |
| OH_NN_ReturnCode HMS_HiAISingleOpExecutor_UpdateOutputTensorDesc (const HiAI_SingleOpExecutor *executor, uint32_t index, HiAI_SingleOpTensorDesc *output) | 更新HiAI_SingleOpExecutor的输出tensor描述。 |
| size_t HMS_HiAISingleOpExecutor_GetWorkspaceSize (const HiAI_SingleOpExecutor *executor) | 查询HiAI_SingleOpExecutor所需的ION内存工作空间的字节大小。 |
| OH_NN_ReturnCode HMS_HiAISingleOpExecutor_Init (HiAI_SingleOpExecutor *executor, void *workspace, size_t workspaceSize) | 加载HiAI_SingleOpExecutor。 |
| OH_NN_ReturnCode HMS_HiAISingleOpExecutor_Execute (HiAI_SingleOpExecutor *executor, HiAI_SingleOpTensor *input[], int32_t inputNum, HiAI_SingleOpTensor *output[], int32_t outputNum) | 执行同步运算推理。 |
| OH_NN_ReturnCode HMS_HiAISingleOpExecutor_Destroy (HiAI_SingleOpExecutor **executor) | 销毁HiAI_SingleOpExecutor对象,释放执行器占用的内存。 |
| size_t HMS_HiAITensor_GetSizeWithImageFormat (NN_TensorDesc *desc, HiAI_ImageFormat format) | 根据NN_TensorDesc和HiAI_ImageFormat计算申请tensor的大小。 |
| OH_NN_ReturnCode HMS_HiAITensor_SetAippParams (NN_Tensor *tensor, HiAI_AippParam *aippParams[], size_t aippNum) | 给NN_Tensor设置AippParams。 |
| HMS_LLMEngine_Context * HMS_LLMEngineContext_CreateFromContextJson (const char *jsonFile) | 通过JSON配置文件创建LLM引擎上下文句柄。 |
| void HMS_LLMEngine_Context_Destroy (HMS_LLMEngine_Context **ctx) | 销毁LLM引擎上下文。 |
| HMS_LLMEngine_Executor * HMS_LLMEngineExecutor_CreateFromExecutorJson (const char *jsonFile) | 通过JSON配置文件创建LLM引擎执行器句柄。 |
| void HMS_LLMEngineExecutor_Destroy (HMS_LLMEngine_Executor **executor) | 销毁一个LLM引擎执行器,该执行器内存释放。 |
| HMS_LLMEngine_Prompt * HMS_LLMEnginePrompt_Create (void) | 创建一个LLM引擎提示句柄。 |
OH_NN_ReturnCode HMS_LLMEnginePrompt_SetText (HMS_LLMEngine_Prompt *prompt, const char *text) | 设置文本输入。 |
| OH_NN_ReturnCode HMS_LLMEnginePrompt_SetTokenId (HMS_LLMEngine_Prompt *prompt, int32_t *tokenIds, uint32_t tokenNum) | 设置输入的tokenid。 |
| void HMS_LLMEnginePrompt_Destroy (HMS_LLMEngine_Prompt **prompt) | 销毁LLM引擎提示词句柄。 |
| OH_NN_ReturnCode HMS_LLMEngineContext_SetOnOneTokenGenerateDoneFunc (HMS_LLMEngine_Context *ctx, callbackFunctionType func) | 设置生成token时触发的回调函数。 |
| OH_NN_ReturnCode HMS_LLMEngineContext_SetOnAllTokensGenerateDoneFunc (HMS_LLMEngine_Context *ctx, callbackFunctionType func) | 设置所有token生成完毕时触发的回调函数。 |
| OH_NN_ReturnCode HMS_LLMEngineContext_SetOnGenerateAsyncFailed (HMS_LLMEngine_Context *ctx, callbackFunctionType func) | 设置生成失败时的回调函数。 |
| OH_NN_ReturnCode HMS_LLMEngineContext_GetOneGenerationLen (const HMS_LLMEngine_Context *ctx, uint32_t *len) | 获取生成文本片段的长度。 |
| OH_NN_ReturnCode HMS_LLMEngineContext_GetOneGeneration (const HMS_LLMEngine_Context *ctx, char *generation, uint32_t len) | 获取生成的文本片段。 |
| OH_NN_ReturnCode HMS_LLMEngineContext_GetAllGenerationLen (const HMS_LLMEngine_Context *ctx, uint32_t *len) | 获取所有生成文本的总长度。 |
| OH_NN_ReturnCode HMS_LLMEngineContext_GetAllGeneration (const HMS_LLMEngine_Context *ctx, char *generation, uint32_t len) | 获取所有生成的文本。 |
| OH_NN_ReturnCode HMS_LLMEngineContext_GetOneTokenGeneration (const HMS_LLMEngine_Context *ctx, int32_t *genToken) | 获取生成的tokenid。 |
| OH_NN_ReturnCode HMS_LLMEngineContext_GetAllTokenGenerationLen (const HMS_LLMEngine_Context *ctx, uint32_t *len) | 获取所有已生成tokenid的长度。 |
| OH_NN_ReturnCode HMS_LLMEngineContext_GetAllTokenGeneration (const HMS_LLMEngine_Context *ctx, int32_t *genToken, uint32_t len) | 获取所有已生成的tokenid。 |
| OH_NN_ReturnCode HMS_LLMEngineExecutor_Generate (HMS_LLMEngine_Executor *executor, HMS_LLMEngine_Context *ctx, const HMS_LLMEngine_Prompt *prompt) | 执行同步LLM推理。 |
| OH_NN_ReturnCode HMS_LLMEngineExecutor_GenerateAsync (HMS_LLMEngine_Executor *executor, HMS_LLMEngine_Context *ctx, const HMS_LLMEngine_Prompt *prompt) | 异步执行LLM推理。 |
| OH_NN_ReturnCode HMS_LLMEngineExecutor_SetInferencePerfMode (HMS_LLMEngine_Executor *executor, HMS_LLMEngine_InferPerfMode inferPerfMode) | 设置推理性能模式。 |
| OH_NN_ReturnCode HMS_LLMEngineContext_GetTotalTimeMs (const HMS_LLMEngine_Context *ctx, double *ms) | 生成总耗时(单位:ms)。 |
| OH_NN_ReturnCode HMS_LLMEngineContext_GetPrefillTimeMs (const HMS_LLMEngine_Context *ctx, double *ms) | 预填充时间(单位:ms)。 |
| OH_NN_ReturnCode HMS_LLMEngineContext_GetDecodeTimeMs (const HMS_LLMEngine_Context *ctx, double *ms) | 解码耗时(单位:ms)。 |
| OH_NN_ReturnCode HMS_LLMEngineContext_GetInputTokenCount (const HMS_LLMEngine_Context *ctx, uint64_t *count) | 输入token数量。 |
| OH_NN_ReturnCode HMS_LLMEngineContext_GetOutputTokenCount (const HMS_LLMEngine_Context *ctx, uint64_t *count) | 输出token数量。 |
typedef void(* callbackFunctionType) (const HMS_LLMEngine_Context *)
描述
生成回调函数。
起始版本: 6.1.1(24)
typedef struct HiAI_SingleOpBuffer HiAI_SingleOpBuffer
描述
单算子Buffer句柄。
起始版本: 5.0.0(12)
typedef struct HiAI_SingleOpDescriptor HiAI_SingleOpDescriptor
描述
单算子的算子描述句柄。
起始版本: 5.0.0(12)
typedef struct HiAISingleOpDescriptor_ConvolutionParam HiAISingleOpDescriptor_ConvolutionParam
描述
HMS_HiAISingleOpDescriptor_CreateConvolution输入参数。
起始版本: 5.0.0(12)
typedef struct HiAI_SingleOpExecutor HiAI_SingleOpExecutor
描述
单算子执行器句柄。
起始版本: 5.0.0(12)
typedef struct HiAI_SingleOpExecutorConvolutionParam HiAI_SingleOpExecutorConvolutionParam
描述
HMS_HiAISingleOpExecutor_CreateConvolution输入参数。
起始版本: 5.0.0(12)
typedef struct HiAI_SingleOpExecutorFusedConvolutionActivationParam HiAI_SingleOpExecutorFusedConvolutionActivationParam
描述
HMS_HiAISingleOpExecutor_CreateFusedConvolutionActivation输入参数。
起始版本: 5.0.0(12)
typedef struct HiAI_SingleOpOptions HiAI_SingleOpOptions
描述
单算子选项句柄。
起始版本: 5.0.0(12)
typedef struct HiAI_SingleOpTensor HiAI_SingleOpTensor
描述
单算子Tensor句柄。
起始版本: 5.0.0(12)
typedef struct HiAI_SingleOpTensorDesc HiAI_SingleOpTensorDesc
描述
单算子Tensor描述的句柄。
起始版本: 5.0.0(12)
typedef struct HMS_LLMEngine_Context HMS_LLMEngine_Context
描述
定义LLM引擎上下文的别名。
起始版本: 6.1.1(24)
typedef struct HMS_LLMEngine_Executor HMS_LLMEngine_Executor
描述
LLM引擎执行器。
起始版本: 6.1.1(24)
typedef struct HMS_LLMEngine_Prompt HMS_LLMEngine_Prompt
描述
LLM引擎文本输入。
起始版本: 6.1.1(24)
enum HiAI_BandMode
描述
定义硬件之间带宽模式。
起始版本: 4.1.0(11)
| 枚举值 | 描述 |
|---|---|
| HIAI_BANDMODE_UNSET | 不设置,由系统调节。 |
| HIAI_BANDMODE_LOW | 低级带宽模式。 |
| HIAI_BANDMODE_NORMAL | 中级带宽模式。 |
| HIAI_BANDMODE_HIGH | 高级带宽模式。 |
enum HiAI_Compatibility
描述
编译后模型兼容性结果。
起始版本: 4.1.0(11)
| 枚举值 | 描述 |
|---|---|
| HIAI_COMPATIBILITY_COMPATIBLE | 模型兼容。 |
| HIAI_COMPATIBILITY_INCOMPATIBLE | 模型不兼容。 |
enum HiAI_DeviceMemoryReusePlan
描述
设备内存复用配置选项。
起始版本: 4.1.0(11)
| 枚举值 | 描述 |
|---|---|
| HIAI_DEVICE_MEMORY_REUSE_PLAN_UNSET | 不使用,默认值。 |
| HIAI_DEVICE_MEMORY_REUSE_PLAN_LOW | 低内存复用率,模型申请的内存较多但模型推理性能相对较优。 |
| HIAI_DEVICE_MEMORY_REUSE_PLAN_HIGH | 高内存复用率,模型申请的内存较少但模型推理性能相对较差。 |
enum HiAI_DynamicShapeCacheMode
描述
编译前可变shape支持的模式。
起始版本: 4.1.0(11)
| 枚举值 | 描述 |
|---|---|
| HIAI_DYNAMIC_SHAPE_CACHE_BUILT_MODEL | 缓存编译后的模型,内存占用较小,默认值。 |
| HIAI_DYNAMIC_SHAPE_CACHE_LOADED_MODEL | 缓存加载后的模型,性能较优。 |
enum HiAI_DynamicShapeStatus
描述
是否使能编译前可变shape。
起始版本: 4.1.0(11)
| 枚举值 | 描述 |
|---|---|
| HIAI_DYNAMIC_SHAPE_DISABLED | 不使能编译前可变shape,默认值。 |
| HIAI_DYNAMIC_SHAPE_ENABLED | 使能编译前可变shape。 |
enum HiAI_ExecuteDevice
描述
模型运行时支持的设备类型。
起始版本: 4.1.0(11)
| 枚举值 | 描述 |
|---|---|
| HIAI_EXECUTE_DEVICE_NPU | NPU,默认值。 |
| HIAI_EXECUTE_DEVICE_CPU | CPU。 |
| HIAI_EXECUTE_DEVICE_GPU | GPU。 |
enum HiAI_FallbackMode
描述
指定的硬件设备无法编译模型时,是否允许CANN Kit选择其他硬件设备,例如CPU。
起始版本: 4.1.0(11)
| 枚举值 | 描述 |
|---|---|
| HIAI_FALLBACK_ENABLED | 允许,默认值。 |
| HIAI_FALLBACK_DISABLED | 不允许。 |
enum HiAI_FormatMode
描述
模型编译时数据的排列格式。
起始版本: 4.1.0(11)
| 枚举值 | 描述 |
|---|---|
| HIAI_FORMAT_MODE_NCHW | 格式为NCHW,默认值。 |
| HIAI_FORMAT_MODE_ORIGIN | 格式为原始模型格式。 |
enum HiAI_ImageColorSpace
描述
图像色域空间类型。
起始版本: 4.1.0(11)
| 枚举值 | 描述 |
|---|---|
| HIAI_JPEG | JPEG色域空间类型。 |
| HIAI_BT_601_NARROW | BT.601 video range色域空间类型。 |
| HIAI_BT_601_FULL | BT.601 full range色域空间类型。 |
| HIAI_BT_709_NARROW | BT.709 video range色域空间类型。 |
| HIAI_IMAGE_COLOR_SPACE_INVALID | 无效图像色域类型。 |
enum HiAI_ImageFormat
描述
CANN Kit推理支持的输入和输出Tensor的图片格式的枚举。
起始版本: 4.1.0(11)
| 枚举值 | 描述 |
|---|---|
| HIAI_YUV420SP_U8 | YUV420SP_U8格式的图片。 |
| HIAI_XRGB8888_U8 | XRGB8888_U8格式的图片。 |
| HIAI_YUV400_U8 | YUV400_U8格式的图片。 |
| HIAI_ARGB8888_U8 | ARGB8888_U8格式的图片。 |
| HIAI_YUYV_U8 | YUYV_U8格式的图片。 |
| HIAI_YUV422SP_U8 | YUV422SP_U8格式的图片。 |
| HIAI_AYUV444_U8 | AYUV444_U8格式的图片。 |
| HIAI_RGB888_U8 | RGB888_U8格式的图片。 |
| HIAI_BGR888_U8 | BGR888_U8格式的图片。 |
| HIAI_YUV444SP_U8 | YUV444SP格式的图片。 |
| HIAI_YVU444SP_U8 | YVU444SP格式的图片。 |
| HIAI_IMAGE_FORMAT_INVALID | 不支持的图片格式。 |
enum HiAI_OmType
描述
维测类型定义。
起始版本: 5.1.0(18)
| 枚举值 | 描述 |
|---|---|
| HIAI_OM_TYPE_OFF | 关闭维测。 |
| HIAI_OM_TYPE_PROFILING | Profiling维测类型。 |
| HIAI_OM_TYPE_DUMP | Dump维测类型。 起始版本:6.0.0(20) |
enum HiAI_SingleOpActivationType
描述
单算子激活模式枚举。
起始版本: 5.0.0(12)
| 枚举值 | 描述 |
|---|---|
| HIAI_SINGLEOP_ACTIVATION_TYPE_RELU | ReLU激活函数。 |
| HIAI_SINGLEOP_ACTIVATION_TYPE_RELU6 | ReLU6激活函数。 |
enum HiAI_SingleOpConvMode
描述
单算子卷积模式枚举。
起始版本: 5.0.0(12)
| 枚举值 | 描述 |
|---|---|
| HIAI_SINGLEOP_CONV_MODE_COMMON | 普通卷积。 |
| HIAI_SINGLEOP_CONV_MODE_TRANSPOSED | 转置卷积。 |
| HIAI_SINGLEOP_CONV_MODE_DEPTHWISE | 深度卷积。 |
enum HiAI_SingleOpDataType
描述
单算子张量数据类型枚举。
起始版本: 5.0.0(12)
| 枚举值 | 描述 |
|---|---|
| HIAI_SINGLEOP_DT_FLOAT | 张量数据类型为float。 |
| HIAI_SINGLEOP_DT_FLOAT16 | 张量数据类型为float16。 |
| HIAI_SINGLEOP_DT_UNDEFINED | 张量数据类型未定义。 |
enum HiAI_SingleOpFormat
描述
单算子张量排布格式枚举。
起始版本: 5.0.0(12)
| 枚举值 | 描述 |
|---|---|
| HIAI_SINGLEOP_FORMAT_NCHW | 张量按照NCHW格式排布。 |
| HIAI_SINGLEOP_FORMAT_NHWC | 张量按照NHWC格式排布。 |
| HIAI_SINGLEOP_FORMAT_ND | 张量按照ND格式排布。暂不支持用户使用ND格式排布的单算子Tensor。 |
| HIAI_SINGLEOP_FORMAT_NC1HWC0 | 张量按照NC1HWC0格式排布。 |
| HIAI_SINGLEOP_FORMAT_NC4HW4 | 张量按照NC4HW4格式排布。 |
| HIAI_SINGLEOP_FORMAT_NC8HW8 | 张量按照NC8HW8格式排布。 |
| HIAI_SINGLEOP_FORMAT_RESERVED | 张量排布格式未定义。 |
enum HiAI_SingleOpPadMode
描述
单算子填充模式枚举。
起始版本: 5.0.0(12)
| 枚举值 | 描述 |
|---|---|
| HIAI_SINGLEOP_PAD_MODE_SPECIFIC | 如果填充算法未设置,将根据参数pads采用显示填充。 |
| HIAI_SINGLEOP_PAD_MODE_SAME | 对输入进行填充使输出维度与输入维度相同。输出维度由ceil(输入维度 / 步长)确定。 |
| HIAI_SINGLEOP_PAD_MODE_SAME_UPPER | 使用SAME_UPPER填充模式,当填充长度为奇数时,起始的填充长度小于等于末尾的填充长度。 |
| HIAI_SINGLEOP_PAD_MODE_SAME_LOWER | 使用SAME_LOWER填充模式,当填充长度为奇数时,起始的填充长度大于等于末尾的填充长度。 |
| HIAI_SINGLEOP_PAD_MODE_VALID | 不填充,输出维度由ceil((输入维度 - 滤波器维度 + 1) / 步长)确定。 |
enum HiAI_SingleOpSupportStatus
描述
单算子支持状态枚举。
起始版本: 5.0.0(12)
| 枚举值 | 描述 |
|---|---|
| HIAI_SINGLEOP_OPTIMIZED | 使用单算子性能已优化。推荐用户使用单算子执行器,执行单算子推理计算。 |
| HIAI_SINGLEOP_COMMON | 使用单算子性能普通。支持该算子,但使用单算子可能性能收益小。 |
| HIAI_SINGLEOP_UNSUPPORTED | 不支持该单算子。若创建该单算子执行器将会失败。 |
enum HiAI_TuningMode
描述
辅助调优模式。
起始版本: 4.1.0(11)
| 枚举值 | 描述 |
|---|---|
| HIAI_TUNING_MODE_UNSET | 关闭调优模式。 |
| HIAI_TUNING_MODE_AUTO | 自动调优模式,推荐选择的模式,内部算法控制调优。 |
| HIAI_TUNING_MODE_HETER | 异构调优模式。 |
enum HiAI_TuningStrategy
描述
模型优化策略配置选项。
起始版本: 4.1.0(11)
| 枚举值 | 描述 |
|---|---|
| HIAI_TUNING_STRATEGY_OFF | 不支持深度融合场景,也不支持编译前可变shape,默认值。 |
| HIAI_TUNING_STRATEGY_ON_DEVICE_TUNING | 支持编译前可变shape场景深度融合优化模型。 |
| HIAI_TUNING_STRATEGY_ON_DEVICE_PREPROCESS_TUNING | NPU算子库动态升级场景深度融合优化模型。 |
| HIAI_TUNING_STRATEGY_ON_CLOUD_TUNING | 未来场景的预留,目前不使用。 |
enum HMS_LLMEngine_InferPerfMode
描述
推断性能模式。
起始版本: 6.1.1(24)
| 枚举值 | 描述 |
|---|---|
| HMS_LLMENGINE_INFERPERF_UNSET | 推断perfmode未设置。 |
| HMS_LLMENGINE_INFERPERF_LOW | 低推理性能模式。 |
| HMS_LLMENGINE_INFERPERF_MIDDLE | 中度推理性能模式。 |
| HMS_LLMENGINE_INFERPERF_HIGH | 高推理性能模式。 |
| HMS_LLMENGINE_INFERPERF_EXTREME_HIGH | 极高推理性能模式。 |
const char* HMS_HiAI_GetVersion (void)
描述
获取CANN Kit版本号,并通过返回模板hiaiversion A1A2A3.X1X2X3.Y1Y2Y3.Z1Z2Z3指定X1是否为0来区分是否支持NPU。若X1为0,则表示不支持NPU;若X1为非0,则表示支持NPU。
起始版本: 4.1.0(11)
返回:
成功返回CANN Kit版本号,失败返回空指针。
HiAI_AippParam* HMS_HiAIAippParam_Create (uint32_t batchNum)
描述
根据batchNum创建动态AippParam对象。
本方法用于创建动态AippParam对象,根据传入的batchNum申请相应的内存,用于存储动态AIPP参数。 不需要HiAI_AippParam指针实例时,需要调用HMS_HiAIAippParam_Destroy进行释放,否则会出现内存泄漏。
起始版本: 4.1.0(11)
参数:
| 名称 | 描述 |
|---|---|
| batchNum | 模型输入的batch大小,取值范围为(0, 127]。 |
返回:
成功时返回HiAI_AippParam指针实例,失败返回空指针。
void HMS_HiAIAippParam_Destroy (HiAI_AippParam ** aippParam)
描述
释放AippParam对象。
本方法用于释放通过HMS_HiAIAippParam_Create创建的HiAI_AippParam对象。
起始版本: 4.1.0(11)
参数:
| 名称 | 描述 |
|---|---|
| aippParam | HiAI_AippParam指针实例,非空。 |
uint32_t HMS_HiAIAippParam_GetBatchCount (HiAI_AippParam * aippParam)
描述
查询AippParam对象的图像数量。
本方法用于动态AIPP推理时,根据HiAI_AippParam对象查询推理AippParam设置图像数量。 在单batch多crop场景为一张图像多个crop的子图像的数量。在多batch单crop场景为输入的batch值。
起始版本: 4.1.0(11)
参数:
| 名称 | 描述 |
|---|---|
| aippParam | HiAI_AippParam指针实例,非空。 |
返回:
成功返回图像数量,失败返回0。
OH_NN_ReturnCode HMS_HiAIAippParam_GetChannelPadding (HiAI_AippParam * aippParam, uint32_t batchIndex, uint32_t paddingValues[], uint32_t channelCount)
描述
查询AippParam对象的通道padding填充值。
本方法用于动态AIPP推理时,根据HiAI_AippParam对象查询对应索引的通道padding的填充值。
起始版本: 4.1.0(11)
参数:
| 名称 | 描述 |
|---|---|
| aippParam | HiAI_AippParam指针实例,非空,否则返回失败。 |
| batchIndex | 对于多batch单crop场景,对应输入的图像索引;对于单batch多crop场景,对应crop出来的图像索引。 |
| paddingValues[] | 通道填充值数组,填充值范围[-65504, 65504],默认填充值为0。 |
| channelCount | 通道填充数,当前支持[1, 4],例如channelCount=3则对应查询通道chn0, chn1, chn2的数据。 |
返回:
函数执行结果状态。执行成功返回OH_NN_SUCCESS;失败返回具体错误码,具体失败错误码可参考OH_NN_ReturnCode。
OH_NN_ReturnCode HMS_HiAIAippParam_GetChannelSwapConfig (HiAI_AippParam * aippParam, bool * rbuvSwapSwitch, bool * axSwapSwitch)
描述
查询AippParam对象的ChannelSwap通道交换参数。
本方法用于动态AIPP推理时,根据HiAI_AippParam对象查询通道交换参数。
起始版本: 4.1.0(11)
参数:
| 名称 | 描述 |
|---|---|
| aippParam | HiAI_AippParam指针实例,非空,否则返回失败。 |
| rbuvSwapSwitch | 返回真为RB/UV通道交换已使能,返回假为RB/UV通道交换未使能。 |
| axSwapSwitch | 返回真为AX通道交换已使能,返回假为AX通道交换未使能。 |
返回:
函数执行结果状态。执行成功返回OH_NN_SUCCESS;失败返回具体错误码,具体失败错误码可参考OH_NN_ReturnCode。
OH_NN_ReturnCode HMS_HiAIAippParam_GetCropConfig (HiAI_AippParam * aippParam, uint32_t batchIndex, uint32_t * startPosW, uint32_t * startPosH, uint32_t * croppedW, uint32_t * croppedH)
描述
查询AippParam对象的裁剪参数。
本方法用于动态AIPP推理时,根据HiAI_AippParam对象查询对应索引的裁剪参数。
起始版本: 4.1.0(11)
参数:
| 名称 | 描述 |
|---|---|
| aippParam | HiAI_AippParam指针实例,非空,否则返回失败。 |
| batchIndex | 对于多batch单crop场景,对应输入的图像索引;对于单batch多crop场景,对应即将crop出来的图像索引。 |
| startPosW | 裁剪起始位置水平方向坐标。 |
| startPosH | 裁剪起始位置垂直方向坐标。 |
| croppedW | 裁剪出的图像宽度,单位为px。 |
| croppedH | 裁剪出的图像高度,单位为px。 |
返回:
函数执行结果状态。执行成功返回OH_NN_SUCCESS;失败返回具体错误码,具体失败错误码可参考OH_NN_ReturnCode。
OH_NN_ReturnCode HMS_HiAIAippParam_GetCscConfig (HiAI_AippParam * aippParam, HiAI_ImageFormat * inputFormat, HiAI_ImageFormat * outputFormat, HiAI_ImageColorSpace * space)
描述
查询AippParam对象的CSC色域转换相关参数。
本方法用于动态AIPP推理时,根据HiAI_AippParam对象查询推理AippParam色域转换参数。
起始版本: 4.1.0(11)
参数:
| 名称 | 描述 |
|---|---|
| aippParam | HiAI_AippParam指针实例,非空,否则返回失败。 |
| inputFormat | 图像输入格式,可参考HiAI_ImageFormat。 |
| outputFormat | 图像输出格式,可参考HiAI_ImageFormat。 |
| space | 图像颜色空间类型,可参考HiAI_ImageColorSpace。 |
返回:
函数执行结果状态。执行成功返回OH_NN_SUCCESS;失败返回具体错误码,具体失败错误码可参考OH_NN_ReturnCode。
void* HMS_HiAIAippParam_GetData (HiAI_AippParam * aippParam)
描述
获取AippParam申请的内存地址。
本方法用于获取通过HMS_HiAIAippParam_Create申请的HiAI_AippParam的data内存地址。 data指向申请的AIPP参数的内存。
起始版本: 4.1.0(11)
参数:
| 名称 | 描述 |
|---|---|
| aippParam | HiAI_AippParam指针实例,非空,否则返空指针。 |
返回:
成功时返回AippParam申请的内存地址,失败返回空指针。
uint32_t HMS_HiAIAippParam_GetDataSize (HiAI_AippParam * aippParam)
描述
获取AippParam申请的内存大小。
本方法用于获取通过HMS_HiAIAippParam_Create申请的HiAI_AippParam的size大小。 size为申请的AIPP参数的内存大小。
起始版本: 4.1.0(11)
参数:
| 名称 | 描述 |
|---|---|
| aippParam | HiAI_AippParam指针实例,非空,否则返回0。 |
返回:
成功时返回AippParam申请的内存大小,失败返回0。
OH_NN_ReturnCode HMS_HiAIAippParam_GetDtcMeanPixel (HiAI_AippParam * aippParam, uint32_t batchIndex, uint32_t meanPixel[], uint32_t channelCount)
描述
查询AippParam对象的数据类型转换通道像素平均值。
该方法用于动态AIPP推理时,根据HiAI_AippParam对象查询对应索引的数据类型转换像素平均值。 该方法需配合HMS_HiAIAippParam_GetDtcMinPixel、HMS_HiAIAippParam_GetDtcVarReciPixel共同使用,来获取所有数据类型转换参数。
起始版本: 4.1.0(11)
参数:
| 名称 | 描述 |
|---|---|
| aippParam | HiAI_AippParam指针实例,非空,否则返回失败。 |
| batchIndex | 对于多batch单crop场景,对应输入的图像索引;对于单batch多crop场景,对应crop出来的图像索引。 |
| meanPixel[] | 通道像素平均值数组,数组size为channelCount。 |
| channelCount | 通道数量,取值范围为[1, 4],对应从chn0开始。例如channelCount等于3则对应查询通道chn0, chn1, chn2的数据。 |
返回:
函数执行结果状态。执行成功返回OH_NN_SUCCESS;失败返回具体错误码,具体失败错误码可参考OH_NN_ReturnCode。
OH_NN_ReturnCode HMS_HiAIAippParam_GetDtcMinPixel (HiAI_AippParam * aippParam, uint32_t batchIndex, float minPixel[], uint32_t channelCount)
描述
查询AippParam对象的数据类型转换通道像素最小值。
该方法用于动态AIPP推理时,根据HiAI_AippParam对象查询对应索引的数据类型转换像素最小值。 该方法需配合HMS_HiAIAippParam_GetDtcMeanPixel、HMS_HiAIAippParam_GetDtcVarReciPixel共同使用,来获取所有数据类型转换参数。
起始版本: 4.1.0(11)
参数:
| 名称 | 描述 |
|---|---|
| aippParam | HiAI_AippParam指针实例,非空,否则返回失败。 |
| batchIndex | 对于多batch单crop场景,对应输入的图像索引;对于单batch多crop场景,对应crop出来的图像索引。 |
| minPixel[] | 通道像素最小值数组,数组size为channelCount。 |
| channelCount | 通道数量,取值范围为[1, 4],对应从chn0开始。例如channelCount等于3则对应查询通道chn0, chn1, chn2的数据。 |
返回:
函数执行结果状态。执行成功返回OH_NN_SUCCESS;失败返回具体错误码,具体失败错误码可参考OH_NN_ReturnCode。
OH_NN_ReturnCode HMS_HiAIAippParam_GetDtcVarReciPixel (HiAI_AippParam * aippParam, uint32_t batchIndex, float varReciPixel[], uint32_t channelCount)
描述
查询AippParam对象的数据类型转换通道像素方差。
该方法用于动态AIPP推理时,根据HiAI_AippParam对象查询对应索引的数据类型转换像素方差值。 该方法需配合HMS_HiAIAippParam_GetDtcMeanPixel、HMS_HiAIAippParam_GetDtcMinPixel共同使用,来获取所有数据类型转换参数。
起始版本: 4.1.0(11)
参数:
| 名称 | 描述 |
|---|---|
| aippParam | HiAI_AippParam指针实例,非空,否则返回失败。 |
| batchIndex | 对于多batch单crop场景,对应输入的图像索引;对于单batch多crop场景,对应crop出来的图像索引。 |
| varReciPixel[] | 通道像素方差数组,数组size为channelCount。 |
| channelCount | 通道数量,取值范围为[1, 4],对应从chn0开始。例如channelCount等于3则对应查询通道chn0, chn1, chn2的数据。 |
返回:
函数执行结果状态。执行成功返回OH_NN_SUCCESS;失败返回具体错误码,具体失败错误码可参考OH_NN_ReturnCode。
int HMS_HiAIAippParam_GetInputAippIndex (HiAI_AippParam * aippParam)
描述
查询AippParam对象在该输入的多个输出分支上的索引。
本方法用于在data节点有多个索引时,查询AippParam对象在data节点上的索引。
起始版本: 4.1.0(11)
参数:
| 名称 | 描述 |
|---|---|
| aippParam | HiAI_AippParam指针实例,非空,否则返回-1。 |
返回:
成功时返回该AippParam对象在data节点上的索引,失败返回-1。
HiAI_ImageFormat HMS_HiAIAippParam_GetInputFormat (HiAI_AippParam * aippParam)
描述
查询AippParam对象的输入图像格式。
本方法用于动态AIPP推理时,根据HiAI_AippParam对象查询输入图像格式。
起始版本: 4.1.0(11)
参数:
| 名称 | 描述 |
|---|---|
| aippParam | HiAI_AippParam指针实例,非空,否则返回HIAI_IMAGE_FORMAT_INVALID。 |
返回:
int HMS_HiAIAippParam_GetInputIndex (HiAI_AippParam * aippParam)
描述
查询AippParam对象所在输入的索引。
本方法用于在多个输入情况下,查询AippParam对象所在输入的索引。
起始版本: 4.1.0(11)
参数:
| 名称 | 描述 |
|---|---|
| aippParam | HiAI_AippParam指针实例,非空,否则返回-1。 |
返回:
成功时返回该AippParam对象所在输入的索引,失败返回-1。
OH_NN_ReturnCode HMS_HiAIAippParam_GetInputShape (HiAI_AippParam * aippParam, uint32_t * srcImageW, uint32_t * srcImageH)
描述
查询AippParam对象的输入图像宽高。
本方法用于动态AIPP推理时,根据HiAI_AippParam对象查询输入图像宽高。
起始版本: 4.1.0(11)
参数:
| 名称 | 描述 |
|---|---|
| aippParam | HiAI_AippParam指针实例,非空,否则返回失败。 |
| srcImageW | 输入图像的宽度,单位为px。 |
| srcImageH | 输入图像的高度,单位为px。 |
返回:
函数执行结果状态。执行成功返回OH_NN_SUCCESS;失败返回具体错误码,具体失败错误码可参考OH_NN_ReturnCode。
OH_NN_ReturnCode HMS_HiAIAippParam_GetPadConfig (HiAI_AippParam * aippParam, uint32_t batchIndex, uint32_t * leftPadSize, uint32_t * rightPadSize, uint32_t * topPadSize, uint32_t * bottomPadSize)
描述
查询AippParam对象的输入图像的填充像素数。
本方法用于动态AIPP推理时,根据HiAI_AippParam对象查询对应索引的对输入图像的填充像素数。 当需要查询channel上的填充值时,需与HMS_HiAIAippParam_GetChannelPadding一起使用。
起始版本: 4.1.0(11)
参数:
| 名称 | 描述 |
|---|---|
| aippParam | HiAI_AippParam指针实例,非空,否则返回失败。 |
| batchIndex | 对于多batch单crop场景,对应输入的图像索引;对于单batch多crop场景,对应crop出来的图像索引。 |
| leftPadSize | 图像左侧Padding像素数。 |
| rightPadSize | 图像右侧Padding像素数。 |
| topPadSize | 图像上侧Padding像素数。 |
| bottomPadSize | 图像下侧Padding像素数。 |
返回:
函数执行结果状态。执行成功返回OH_NN_SUCCESS;失败返回具体错误码,具体失败错误码可参考OH_NN_ReturnCode。
OH_NN_ReturnCode HMS_HiAIAippParam_GetResizeConfig (HiAI_AippParam * aippParam, uint32_t batchIndex, uint32_t * resizedW, uint32_t * resizedH)
描述
查询AippParam对象的图像缩放参数。
本方法用于动态AIPP推理时,根据HiAI_AippParam对象查询对应索引的缩放后图像宽高值。
起始版本: 4.1.0(11)
参数:
| 名称 | 描述 |
|---|---|
| aippParam | HiAI_AippParam指针实例,非空,否则返回失败。 |
| batchIndex | 对于多batch单crop场景,对应输入的图像索引;对于单batch多crop场景,对应crop出来的图像索引。 |
| resizedW | 缩放后图像宽度,单位为px。 |
| resizedH | 缩放后图像高度,单位为px。 |
返回:
函数执行结果状态。执行成功返回OH_NN_SUCCESS;失败返回具体错误码,具体失败错误码可参考OH_NN_ReturnCode。
OH_NN_ReturnCode HMS_HiAIAippParam_GetRotationAngle (HiAI_AippParam * aippParam, uint32_t batchIndex, float * rotationAngle)
描述
查询AippParam对象的图像旋转角度。
本方法用于动态AIPP推理时,根据HiAI_AippParam对象查询对应索引的图像旋转角度。
起始版本: 4.1.0(11)
参数:
| 名称 | 描述 |
|---|---|
| aippParam | HiAI_AippParam指针实例,非空。 |
| batchIndex | 对于多batch单crop场景,对应输入的图像索引;对于单batch多crop场景,对应crop出来的图像索引。 |
| rotationAngle | 旋转角度。 |
返回:
函数执行结果状态。执行成功返回OH_NN_SUCCESS;失败返回具体错误码,具体失败错误码可参考OH_NN_ReturnCode。
bool HMS_HiAIAippParam_GetSingleBatchMultiCrop (HiAI_AippParam * aippParam)
描述
查询AippParam对象的SingleBatchMultiCrop标识。
本方法用于动态AIPP推理时,根据HiAI_AippParam对象查询是否为单batch多crop场景。
起始版本: 4.1.0(11)
参数:
| 名称 | 描述 |
|---|---|
| aippParam | HiAI_AippParam指针实例,非空。 |
返回:
返回true为单batch多crop场景,返回false为非单batch多crop场景。
OH_NN_ReturnCode HMS_HiAIAippParam_SetChannelPadding (HiAI_AippParam * aippParam, uint32_t batchIndex, uint32_t paddingValues[], uint32_t channelCount)
描述
设置AippParam对象的通道padding填充值。
本方法用于动态AIPP推理时,设置AIPP通道padding的填充值到HiAI_AippParam对象。
起始版本: 4.1.0(11)
参数:
| 名称 | 描述 |
|---|---|
| aippParam | HiAI_AippParam指针实例,非空,否则返回失败。 |
| batchIndex | 对于多batch单crop场景,对应输入的图像索引;对于单batch多crop场景,对应crop出来的图像索引。 |
| paddingValues[] | 通道填充值数组,填充值范围[-65504, 65504],默认填充值为0。 |
| channelCount | 通道填充数,当前支持[1, 4],例如channelCount=3则对应配置通道chn0, chn1, chn2的数据。 |
返回:
函数执行结果状态。执行成功返回OH_NN_SUCCESS;失败返回具体错误码,具体失败错误码可参考OH_NN_ReturnCode。
OH_NN_ReturnCode HMS_HiAIAippParam_SetChannelSwapConfig (HiAI_AippParam * aippParam, bool rbuvSwapSwitch, bool axSwapSwitch)
描述
设置AippParam对象的ChannelSwap通道交换参数。
本方法用于动态AIPP推理时,设置AippParam通道交换参数到HiAI_AippParam对象。 AIPP支持两种类型的通道交换:RB/UV通道交换和AX通道交换。 RB/UV通道交换丰富了输入图像的格式,开启RB/UV通道交换后,AIPP支持的图像输入格式比可配置的输入类型丰富了一倍。
| 配置类型 | 可接受图像类型 |
|---|---|
| YUV420SP_U8 | YUV420SP_U8,YVU420 + rbuv_swap_switch |
| XRGB8888_U8 | XRGB8888_U8,XBGR + rbuv_swap_switch |
| ARGB8888_U8 | ARGB8888_U8,ABGR + rbuv_swap_switch |
| RGB888_U8 | BGR888_U8 + rbuv_swap_switch |
| BGR888_U8 | RGB888_U8 + rbuv_swap_switch |
| YUYV_U8 | YUYV_U8,YVYU_U8 + rbuv_swap_switch |
| YUV422SP_U8 | YUV422SP_U8,YVU422_U8 + rbuv_swap_switch |
| AYUV444_U8 | AYUV444_U8 + rbuv_swap_switch |
YUV400_U8是灰度图,不支持通道交换。
当配置的图像输入格式为XRGB、ARGB或AYUV时,支持开启AX通道交换。开启后,图像第一个通道的输入被搬移到第四个通道上,即当XRGB、ARGB和AYUV开启AX通道交换后,转变为RGBX、RGBA和YUVA。 当模型训练集为RGB格式的图像,而推理时的图像输入为XRGB或者ARGB时,可以通过使能AX通道交换,将RGB通道前移,实现兼容。
起始版本: 4.1.0(11)
参数:
| 名称 | 描述 |
|---|---|
| aippParam | HiAI_AippParam指针实例,非空,否则返回失败。 |
| rbuvSwapSwitch | 参数真为使能RB/UV通道交换,参数假为不使能RB/UV通道交换。 |
| axSwapSwitch | 参数真为使能AX通道交换,参数假为不使能AX通道交换。 |
返回:
函数执行结果状态。执行成功返回OH_NN_SUCCESS;失败返回具体错误码,具体失败错误码可参考OH_NN_ReturnCode。
OH_NN_ReturnCode HMS_HiAIAippParam_SetCropConfig (HiAI_AippParam * aippParam, uint32_t batchIndex, uint32_t startPosW, uint32_t startPosH, uint32_t croppedW, uint32_t croppedH)
描述
设置AippParam对象的裁剪参数。
本方法用于动态AIPP推理时,设置裁剪参数到HiAI_AippParam对象。 YUV类型的图像受图像自身类型的限制,当输入图像类型为YUV420SP、YUYV、YUV422SP和AYUV444时,裁剪的起始坐标和裁剪的宽高需为是偶数。
起始版本: 4.1.0(11)
参数:
| 名称 | 描述 |
|---|---|
| aippParam | HiAI_AippParam指针实例,非空,否则返回失败。 |
| batchIndex | 对于多batch单crop场景,对应输入的图像索引;对于单batch多crop场景,对应即将crop出来的图像索引。 |
| startPosW | 裁剪起始位置水平方向坐标,startPosW小于输入图像的宽度,单位为px。 |
| startPosH | 裁剪起始位置垂直方向坐标,startPosH小于输入图像的高度,单位为px。 |
| croppedW | 裁剪出的图像宽度,startPosW与cropSizeW之和小于等于输入图像的宽度,单位为px。 |
| croppedH | 裁剪出的图像高度,startPosH与cropSizeH之和小于等于输入图像的高度,单位为px。 |
返回:
函数执行结果状态。执行成功返回OH_NN_SUCCESS;失败返回具体错误码,具体失败错误码可参考OH_NN_ReturnCode。
OH_NN_ReturnCode HMS_HiAIAippParam_SetCscConfig (HiAI_AippParam * aippParam, HiAI_ImageFormat inputFormat, HiAI_ImageFormat outputFormat, HiAI_ImageColorSpace space)
描述
设置AippParam对象的CSC色域转换参数。
本方法用于动态AIPP推理时,设置AippParam色域转换参数到HiAI_AippParam对象。色域转换(Color Space Conversion,以下简称CSC),特指在YUV和RGB两种图像格式之间进行转换。输入为YUV格式图像(YUV420SP_U8/YUYV_U8/YUV422SP_U8/AYUV444_U8),模型训练集可为RGB888_U8、BGR888_U8、灰度图(YUV400_U8)。输入为RGB格式图像(XRGB8888_U8/ARGB8888_U8/RGB888_U8/BGR888_U8),模型训练集可为YUV444SP_U8、YVU444SP_U8、灰度图(YUV400_U8)。不支持从YUV400到RGB或BGR的转换。
起始版本: 4.1.0(11)
参数:
| 名称 | 描述 |
|---|---|
| aippParam | HiAI_AippParam指针实例,非空,否则返回失败。 |
| inputFormat | 图像输入格式,可参考HiAI_ImageFormat。 |
| outputFormat | 图像输出格式,可参考HiAI_ImageFormat。 |
| space | 图像颜色空间类型,可参考HiAI_ImageColorSpace。 |
返回:
函数执行结果状态。执行成功返回OH_NN_SUCCESS;失败返回具体错误码,具体失败错误码可参考OH_NN_ReturnCode。
OH_NN_ReturnCode HMS_HiAIAippParam_SetDtcMeanPixel (HiAI_AippParam * aippParam, uint32_t batchIndex, uint32_t meanPixel[], uint32_t channelCount)
描述
设置AippParam对象的数据类型转换通道像素平均值。
数据类型转换(Data Type Conversion,简称DTC),用于将输入图像中像素值转换为模型训练时的数据类型。设置DTC参数,使得转换之后的数据在一个预期的范围,避免强制转换。 数据类型转化功能,将输入的图像数据类型通过转化公式转换为FP16类型送给后续模块计算,实际为依次执行减均值、减最小值和乘方差操作。
计算公式为:U8->FP16: pixelOutChn(i) = [pixelInChn(i)–meanChn(i)–minChn(i)] * varReciChn(i), i ∈ [0, 4) 其中:pixelOutChn(i)为DTC模块的每个通道的输出值,pixelInChn(i)为DTC模块的每个通道的输入值,meanChn(i)为用户输入的每个通道的均值, minChn(i)为用户输入的每个通道的最小值, varReciChn(i)为用户输入的每个通道的方差。
该方法用于动态AIPP推理时,设置DTC数据类型转换像素平均值到HiAI_AippParam对象。 该方法需配合HMS_HiAIAippParam_SetDtcMinPixel、HMS_HiAIAippParam_SetDtcVarReciPixel共同使用。
起始版本: 4.1.0(11)
参数:
| 名称 | 描述 |
|---|---|
| aippParam | HiAI_AippParam指针实例,非空,否则返回失败。 |
| batchIndex | 对于多batch单crop场景,对应输入的图像索引;对于单batch多crop场景,对应crop出来的图像索引。 |
| meanPixel[] | 通道像素平均值数组,数组size为channelCount,默认值为0。 |
| channelCount | 通道数量,取值范围为[1, 4],例如channelCount=3则对应配置通道chn0, chn1, chn2的数据。 |
返回:
函数执行结果状态。执行成功返回OH_NN_SUCCESS;失败返回具体错误码,具体失败错误码可参考OH_NN_ReturnCode。
OH_NN_ReturnCode HMS_HiAIAippParam_SetDtcMinPixel (HiAI_AippParam * aippParam, uint32_t batchIndex, float minPixel[], uint32_t channelCount)
描述
设置AippParam对象的数据类型转换通道像素最小值。
该方法用于动态AIPP推理时,设置DTC数据类型转换像素最小值到HiAI_AippParam对象。 该方法需配合HMS_HiAIAippParam_SetDtcMeanPixel、HMS_HiAIAippParam_SetDtcVarReciPixel共同使用。
起始版本: 4.1.0(11)
参数:
| 名称 | 描述 |
|---|---|
| aippParam | HiAI_AippParam指针实例,非空,否则返回失败。 |
| batchIndex | 对于多batch单crop场景,对应输入的图像索引;对于单batch多crop场景,对应crop出来的图像索引。 |
| minPixel[] | 通道像素最小值数组,数组size为channelCount,默认值为0。 |
| channelCount | 通道数量,取值范围为[1, 4],例如channelCount=3则对应配置通道chn0, chn1, chn2的数据。 |
返回:
函数执行结果状态。执行成功返回OH_NN_SUCCESS;失败返回具体错误码,具体失败错误码可参考OH_NN_ReturnCode。
OH_NN_ReturnCode HMS_HiAIAippParam_SetDtcVarReciPixel (HiAI_AippParam * aippParam, uint32_t batchIndex, float varReciPixel[], uint32_t channelCount)
描述
设置AippParam对象的数据类型转换通道像素方差。
该方法用于动态AIPP推理时,设置DTC数据类型转换像素方差到HiAI_AippParam对象。 该方法需配合HMS_HiAIAippParam_SetDtcMeanPixel、HMS_HiAIAippParam_SetDtcMinPixel共同使用。
起始版本: 4.1.0(11)
参数:
| 名称 | 描述 |
|---|---|
| aippParam | HiAI_AippParam指针实例,非空,否则返回失败。 |
| batchIndex | 对于多batch单crop场景,对应输入的图像索引;对于单batch多crop场景,对应crop出来的图像索引。 |
| varReciPixel[] | 通道像素方差数组,数组size为channelCount,默认值为1.0。 |
| channelCount | 通道数量,取值范围为[1, 4],例如channelCount=3则对应配置通道chn0, chn1, chn2的数据。 |
返回:
函数执行结果状态。执行成功返回OH_NN_SUCCESS;失败返回具体错误码,具体失败错误码可参考OH_NN_ReturnCode。
OH_NN_ReturnCode HMS_HiAIAippParam_SetInputAippIndex (HiAI_AippParam * aippParam, uint32_t inputAippIndex)
描述
设置AippParam对象作用于该输入的多个输出分支上的索引。
本方法用于在data有多个输出分支时,设置AippParam对象作用域该输入的第几个输出分支。
起始版本: 4.1.0(11)
参数:
| 名称 | 描述 |
|---|---|
| aippParam | HiAI_AippParam指针实例,非空。 |
| inputAippIndex | 用于标识AIPP配置参数在输入Data有多个输出分支时作用于第几个分支,从0开始计数。 |
返回:
函数执行结果状态。执行成功返回OH_NN_SUCCESS;失败返回具体错误码,具体失败错误码可参考OH_NN_ReturnCode。
OH_NN_ReturnCode HMS_HiAIAippParam_SetInputFormat (HiAI_AippParam * aippParam, HiAI_ImageFormat inputFormat)
描述
设置AippParam对象的输入图像格式。
本方法用于动态AIPP推理时,设置AIPP的输入图像格式到HiAI_AippParam对象。 AIPP可配置的图像格式为HiAI_ImageFormat所支持的范围。 图像像素点为Uint8类型,范围为0到255。当图像的输入为YUV类型时,无论是YUV420还是YUV422或者YUYV,AIPP自动将图像数据补齐为YUV444格式。
起始版本: 4.1.0(11)
参数:
| 名称 | 描述 |
|---|---|
| aippParam | HiAI_AippParam指针实例,非空,否则返回失败。 |
| inputFormat | 输入图像的格式HiAI_ImageFormat。 |
返回:
函数执行结果状态。执行成功返回OH_NN_SUCCESS;失败返回具体错误码,具体失败错误码可参考OH_NN_ReturnCode。
OH_NN_ReturnCode HMS_HiAIAippParam_SetInputIndex (HiAI_AippParam * aippParam, uint32_t inputIndex)
描述
设置AippParam在输入上的索引。
本方法用于在多个输入情况下,设置索引以确定该AippParam对象作用于第几个输入。
起始版本: 4.1.0(11)
参数:
| 名称 | 描述 |
|---|---|
| aippParam | HiAI_AippParam指针实例,非空。 |
| inputIndex | 用于标识此AIPP参数作用于模型的第几个输入,从0开始计数。 |
返回:
函数执行结果状态。执行成功返回OH_NN_SUCCESS;失败返回具体错误码,具体失败错误码可参考OH_NN_ReturnCode。
OH_NN_ReturnCode HMS_HiAIAippParam_SetInputShape (HiAI_AippParam * aippParam, uint32_t srcImageW, uint32_t srcImageH)
描述
设置AippParam对象的输入图像宽高。
本方法用于动态AIPP推理时,设置输入图像宽高到HiAI_AippParam对象。
起始版本: 4.1.0(11)
参数:
| 名称 | 描述 |
|---|---|
| aippParam | HiAI_AippParam指针实例,非空,否则返回失败。 |
| srcImageW | 输入图像的宽度,单位为px,取值范围[16, 4096]。 |
| srcImageH | 输入图像的高度,单位为px,取值范围[16, 4096]。 |
返回:
函数执行结果状态。执行成功返回OH_NN_SUCCESS;失败返回具体错误码,具体失败错误码可参考OH_NN_ReturnCode。
OH_NN_ReturnCode HMS_HiAIAippParam_SetPadConfig (HiAI_AippParam * aippParam, uint32_t batchIndex, uint32_t leftPadSize, uint32_t rightPadSize, uint32_t topPadSize, uint32_t bottomPadSize)
描述
设置AippParam对象的输入图像的填充像素数。
本方法用于动态AIPP推理时,设置对输入图像的填充像素数到HiAI_AippParam对象。包含图像左右上下侧的Padding像素数。 当需要设置channel上的填充值时,需与HMS_HiAIAippParam_SetChannelPadding一起使用。
起始版本: 4.1.0(11)
参数:
| 名称 | 描述 |
|---|---|
| aippParam | HiAI_AippParam指针实例,非空,否则返回失败。 |
| batchIndex | 对于多batch单crop场景,对应输入的图像索引;对于单batch多crop场景,对应crop出来的图像索引。 |
| leftPadSize | 图像左侧Padding像素数,经过padding后的图像宽度,需与原始模型维度中宽度保持一致。 |
| rightPadSize | 图像右侧Padding像素数,经过padding后的图像宽度,需与原始模型维度中宽度保持一致。 |
| topPadSize | 图像上侧Padding像素数,经过padding后的图像高度,需与原始模型维度中高度保持一致。 |
| bottomPadSize | 图像下侧Padding像素数,经过padding后的图像高度,需与原始模型维度中高度保持一致。 |
返回:
函数执行结果状态。执行成功返回OH_NN_SUCCESS;失败返回具体错误码,具体失败错误码可参考OH_NN_ReturnCode。
OH_NN_ReturnCode HMS_HiAIAippParam_SetResizeConfig (HiAI_AippParam * aippParam, uint32_t batchIndex, uint32_t resizedW, uint32_t resizedH)
描述
设置AippParam对象的图像缩放参数。
本方法用于动态AIPP推理时,设置图像缩放参数到HiAI_AippParam对象。Resize的类型为双线性插值。
起始版本: 4.1.0(11)
参数:
| 名称 | 描述 |
|---|---|
| aippParam | HiAI_AippParam指针实例,非空,否则返回失败。 |
| batchIndex | 对于多batch单crop场景,对应输入的图像索引;对于单batch多crop场景,对应crop出来的图像索引。 |
| resizedW | 缩放后图像宽度,单位为px,取值范围[16, 448],图像宽度缩放倍数的范围[1/16, 16]。 |
| resizedH | 缩放后图像高度,单位为px,取值范围[16, 4096],图像高度缩放倍数的范围[1/16, 16]。 |
返回:
函数执行结果状态。执行成功返回OH_NN_SUCCESS;失败返回具体错误码,具体失败错误码可参考OH_NN_ReturnCode。
OH_NN_ReturnCode HMS_HiAIAippParam_SetRotationAngle (HiAI_AippParam * aippParam, uint32_t batchIndex, float rotationAngle)
描述
设置AippParam对象的旋转角度。
本方法用于动态AIPP推理时,设置旋转角度到HiAI_AippParam对象。
起始版本: 4.1.0(11)
参数:
| 名称 | 描述 |
|---|---|
| aippParam | HiAI_AippParam指针实例,非空,否则返回失败。 |
| batchIndex | 对于多batch单crop场景,对应输入的图像索引;对于单batch多crop场景,对应crop出来的图像索引。 |
| rotationAngle | 旋转角度,仅支持0, 90, 180, 270。 |
返回:
函数执行结果状态。执行成功返回OH_NN_SUCCESS;失败返回具体错误码,具体失败错误码可参考OH_NN_ReturnCode。
OH_NN_ReturnCode HMS_HiAIAippParam_SetSingleBatchMultiCrop (HiAI_AippParam * aippParam, bool singleBatchMultiCrop)
描述
设置AippParam对象的SingleBatchMultiCrop标识。
本方法用于动态AIPP推理时,设置AippParam单batch多crop标识到HiAI_AippParam对象。 对于单个batch的图像输入的场景,支持一次性传入多组crop等AIPP参数,一次推理即能得到全部人脸等的关键点信息。
起始版本: 4.1.0(11)
参数:
| 名称 | 描述 |
|---|---|
| aippParam | HiAI_AippParam指针实例,非空,否则返回失败。 |
| singleBatchMultiCrop | 参数真为单batch多crop场景,参数假为非单batch多crop场景。 |
返回:
函数执行结果状态。执行成功返回OH_NN_SUCCESS;失败返回具体错误码,具体失败错误码可参考OH_NN_ReturnCode。
HiAI_Compatibility HMS_HiAICompatibility_CheckFromBuffer (const void * data, size_t size)
描述
查询编译后储存在内存中的模型的兼容性。 若发生不兼容情况,建议重新编译模型。
起始版本: 4.1.0(11)
参数:
| 名称 | 描述 |
|---|---|
| data | 编译后模型数据地址,非空,否则返回不兼容。 |
| size | 编译后模型数据大小,非空,否则返回不兼容。 |
返回:
成功返回 HiAI_Compatibility,失败返回不兼容。
HiAI_Compatibility HMS_HiAICompatibility_CheckFromFile (const char * file)
描述
查询编译后储存在文件中的模型的兼容性。 若发生不兼容情况,建议重新编译模型。
起始版本: 4.1.0(11)
参数:
| 名称 | 描述 |
|---|---|
| file | 编译后模型文件路径及名称,要求用户进程对文件有访问权限,非空,否则返回不兼容。 |
返回:
成功返回 HiAI_Compatibility,失败返回不兼容。
HiAI_BandMode HMS_HiAIOptions_GetBandMode (const OH_NNCompilation * compilation)
描述
查询带宽模式。
起始版本: 4.1.0(11)
参数:
| 名称 | 描述 |
|---|---|
| compilation | OH_NNCompilation指针实例,非空,否则返回默认值。 |
返回:
成功返回带宽模式HiAI_BandMode,失败返回默认值。
HiAI_DeviceMemoryReusePlan HMS_HiAIOptions_GetDeviceMemoryReusePlan (const OH_NNCompilation * compilation)
描述
查询调优配置中的设备内存复用参数。
起始版本: 4.1.0(11)
参数:
| 名称 | 描述 |
|---|---|
| compilation | OH_NNCompilation指针实例,非空,否则返回默认值。 |
返回:
成功时返回HiAI_DeviceMemoryReusePlan,失败返回默认值。
HiAI_DynamicShapeCacheMode HMS_HiAIOptions_GetDynamicShapeCacheMode (const OH_NNCompilation * compilation)
描述
查询编译前可变shape配置中的cacheMode参数。
起始版本: 4.1.0(11)
参数:
| 名称 | 描述 |
|---|---|
| compilation | OH_NNCompilation指针实例,非空,否则返回默认值。 |
返回:
成功时返回HiAI_DynamicShapeCacheMode,失败返回默认值。
size_t HMS_HiAIOptions_GetDynamicShapeMaxCache (const OH_NNCompilation * compilation)
描述
查询编译前可变shape配置中的最大缓存数量。
起始版本: 4.1.0(11)
参数:
| 名称 | 描述 |
|---|---|
| compilation | OH_NNCompilation指针实例,非空,否则返回0。 |
返回:
成功时返回最大缓存数量,失败返回0。
HiAI_DynamicShapeStatus HMS_HiAIOptions_GetDynamicShapeStatus (const OH_NNCompilation * compilation)
描述
查询编译前可变shape配置中的状态参数。
起始版本: 4.1.0(11)
参数:
| 名称 | 描述 |
|---|---|
| compilation | OH_NNCompilation指针实例,非空,否则返回默认值。 |
返回:
成功时返回HiAI_DynamicShapeStatus,失败返回默认值。
HiAI_FallbackMode HMS_HiAIOptions_GetFallbackMode (const OH_NNCompilation * compilation)
描述
查询调优配置中的回滚模式。
起始版本: 4.1.0(11)
参数:
| 名称 | 描述 |
|---|---|
| compilation | OH_NNCompilation指针实例,非空,否则返回默认值。 |
返回:
成功时返回HiAI_FallbackMode,失败返回默认值。
HiAI_FormatMode HMS_HiAIOptions_GetFormatMode (const OH_NNCompilation * compilation)
描述
查询模型编译参数中的数据排列格式。
起始版本: 4.1.0(11)
参数:
| 名称 | 描述 |
|---|---|
| compilation | OH_NNCompilation指针实例,非空,否则返回默认值。 |
返回:
成功返回HiAI_FormatMode,失败返回默认值。
NN_TensorDesc* HMS_HiAIOptions_GetInputTensorShape (const OH_NNCompilation * compilation, size_t index)
描述
查询选项参数中指定索引的shape描述。
起始版本: 4.1.0(11)
参数:
| 名称 | 描述 |
|---|---|
| compilation | OH_NNCompilation指针实例,非空,否则返回空指针。 |
| index | 输入shape的索引,取值为[0, HMS_HiAIOptions_GetInputTensorShapeSize)。 |
返回:
成功返回选项参数中的shape描述,失败返回空指针。
size_t HMS_HiAIOptions_GetInputTensorShapeSize (const OH_NNCompilation * compilation)
描述
查询选项参数中shape描述的个数。
起始版本: 4.1.0(11)
参数:
| 名称 | 描述 |
|---|---|
| compilation | OH_NNCompilation指针实例,非空,否则返回0。 |
返回:
成功返回选项参数中shape描述的个数,失败返回0。
size_t HMS_HiAIOptions_GetModelDeviceCount (const OH_NNCompilation * compilation)
描述
查询模型级调优配置中模型的执行设备个数。
起始版本: 4.1.0(11)
参数:
| 名称 | 描述 |
|---|---|
| compilation | OH_NNCompilation指针实例,非空,否则返回0。 |
返回:
成功时返回执行设备的个数,失败返回0。
HiAI_ExecuteDevice* HMS_HiAIOptions_GetModelDeviceOrder (const OH_NNCompilation * compilation)
描述
查询模型级调优配置中模型的执行设备列表。
起始版本: 4.1.0(11)
参数:
| 名称 | 描述 |
|---|---|
| compilation | OH_NNCompilation指针实例,非空,否则返回空指针。 |
返回:
成功时返回HiAI_ExecuteDevice执行设备列表,失败返回空指针。
size_t HMS_HiAIOptions_GetOperatorDeviceCount (const OH_NNCompilation * compilation, const char * operatorName)
描述
查询算子级调优配置中指定算子的执行设备个数。
起始版本: 4.1.0(11)
参数:
| 名称 | 描述 |
|---|---|
| compilation | OH_NNCompilation指针实例,非空,否则返回0。 |
| operatorName | 算子名称,非空,否则返回0。 |
返回:
成功时返回执行设备的个数,失败返回0。
HiAI_ExecuteDevice* HMS_HiAIOptions_GetOperatorDeviceOrder (const OH_NNCompilation * compilation, const char * operatorName)
描述
查询算子级调优配置中指定算子的执行设备列表。
起始版本: 4.1.0(11)
参数:
| 名称 | 描述 |
|---|---|
| compilation | OH_NNCompilation指针实例,非空,否则返回空指针。 |
| operatorName | 算子名称,非空,否则返回空指针。 |
返回:
成功时返回HiAI_ExecuteDevice执行设备列表,失败返回空指针。
void* HMS_HiAIOptions_GetQuantConfigData (const OH_NNCompilation * compilation)
描述
查询量化配置的数据地址。
起始版本: 4.1.0(11)
参数:
| 名称 | 描述 |
|---|---|
| compilation | OH_NNCompilation指针实例,非空,否则返回空指针。 |
返回:
成功返回量化配置的数据地址,失败返回空指针。
size_t HMS_HiAIOptions_GetQuantConfigSize (const OH_NNCompilation * compilation)
描述
查询量化配置的数据大小。
起始版本: 4.1.0(11)
参数:
| 名称 | 描述 |
|---|---|
| compilation | OH_NNCompilation指针实例,非空,否则返回0。 |
返回:
成功返回量化配置的数据大小,失败返回0。
const char* HMS_HiAIOptions_GetTuningCacheDir (const OH_NNCompilation * compilation)
描述
查询辅助调优的缓存目录。
起始版本: 4.1.0(11)
参数:
| 名称 | 描述 |
|---|---|
| compilation | OH_NNCompilation指针实例,非空,否则返回空指针。 |
返回:
成功返回缓存目录,失败返回空指针。
HiAI_TuningMode HMS_HiAIOptions_GetTuningMode (const OH_NNCompilation * compilation)
描述
查询辅助调优模式。
起始版本: 4.1.0(11)
参数:
| 名称 | 描述 |
|---|---|
| compilation | OH_NNCompilation指针实例,非空,否则返回默认值。 |
返回:
返回辅助调优模式HiAI_TuningMode,失败返回默认值。
HiAI_TuningStrategy HMS_HiAIOptions_GetTuningStrategy (const OH_NNCompilation * compilation)
描述
查询模型优化策略。
起始版本: 4.1.0(11)
参数:
| 名称 | 描述 |
|---|---|
| compilation | OH_NNCompilation指针实例,非空,否则返回默认值。 |
返回:
成功返回HiAI_TuningStrategy,失败返回默认值。
OH_NN_ReturnCode HMS_HiAIOptions_SetBandMode (OH_NNCompilation * compilation, HiAI_BandMode bandMode)
描述
设置NPU与周边硬件IO资源的带宽模式。
根据需要设置合适的值,带宽与功耗成正比,高带宽也意味着高功耗。
起始版本: 4.1.0(11)
参数:
| 名称 | 描述 |
|---|---|
| compilation | OH_NNCompilation指针实例,非空,否则返回失败。 |
| bandMode | 带宽模式HiAI_BandMode。 |
返回:
函数执行结果状态。执行成功返回OH_NN_SUCCESS;失败返回具体错误码,具体失败错误码可参考OH_NN_ReturnCode。
OH_NN_ReturnCode HMS_HiAIOptions_SetDeviceMemoryReusePlan (OH_NNCompilation * compilation, HiAI_DeviceMemoryReusePlan deviceMemoryReusePlan)
描述
设置调优配置中的设备内存复用参数。
本方法仅在模型编译阶段生效。用于在调优时,指定设备内存复用方式。
起始版本: 4.1.0(11)
参数:
| 名称 | 描述 |
|---|---|
| compilation | OH_NNCompilation指针实例,非空,否则返回失败。 |
| deviceMemoryReusePlan | 设备内存复用HiAI_DeviceMemoryReusePlan。 |
返回:
函数执行结果状态。执行成功返回OH_NN_SUCCESS;失败返回具体错误码,具体失败错误码可参考OH_NN_ReturnCode。
OH_NN_ReturnCode HMS_HiAIOptions_SetDynamicShapeCacheMode (OH_NNCompilation * compilation, HiAI_DynamicShapeCacheMode mode)
描述
设置编译前可变shape配置中的缓存模式参数。
本方法仅在模型编译阶段生效,用于在推理阶段期望变更shape,且模型的shape变化数量不超过10个场景。 本方法需与HMS_HiAIOptions_SetDynamicShapeStatus、HMS_HiAIOptions_SetDynamicShapeMaxCache搭配使用。
起始版本: 4.1.0(11)
参数:
| 名称 | 描述 |
|---|---|
| compilation | OH_NNCompilation指针实例,非空,否则返回失败。 |
| mode | 编译前可变shape的缓存模式HiAI_DynamicShapeCacheMode。 |
返回:
函数执行结果状态。执行成功返回OH_NN_SUCCESS;失败返回具体错误码,具体失败错误码可参考OH_NN_ReturnCode。
OH_NN_ReturnCode HMS_HiAIOptions_SetDynamicShapeMaxCache (OH_NNCompilation * compilation, size_t maxCacheCount)
描述
设置编译前可变shape配置中的最大缓存编译后模型数量。
本方法仅在模型编译阶段生效,用于在推理阶段期望变更shape,且模型的shape变化数量不超过10个场景。 本方法需与HMS_HiAIOptions_SetDynamicShapeStatus、HMS_HiAIOptions_SetDynamicShapeCacheMode搭配使用。
起始版本: 4.1.0(11)
参数:
| 名称 | 描述 |
|---|---|
| compilation | OH_NNCompilation指针实例,非空,否则返回失败。 |
| maxCacheCount | 最大档位,取值范围[1, 10]。 |
返回:
函数执行结果状态。执行成功返回OH_NN_SUCCESS;失败返回具体错误码,具体失败错误码可参考OH_NN_ReturnCode。
OH_NN_ReturnCode HMS_HiAIOptions_SetDynamicShapeStatus (OH_NNCompilation * compilation, HiAI_DynamicShapeStatus status)
描述
设置编译前可变shape配置中的EnableMode参数。
本方法仅在模型编译阶段生效,用于在推理阶段期望变更shape,且模型的shape变化数量不超过10个场景。 本方法需与HMS_HiAIOptions_SetDynamicShapeMaxCache、HMS_HiAIOptions_SetDynamicShapeCacheMode搭配使用。
起始版本: 4.1.0(11)
参数:
| 名称 | 描述 |
|---|---|
| compilation | OH_NNCompilation指针实例,非空,否则返回失败。 |
| status | 是否使能编译前可变shapeHiAI_DynamicShapeStatus。 |
返回:
函数执行结果状态。执行成功返回OH_NN_SUCCESS;失败返回具体错误码,具体失败错误码可参考OH_NN_ReturnCode。
OH_NN_ReturnCode HMS_HiAIOptions_SetFallbackMode (OH_NNCompilation * compilation, HiAI_FallbackMode fallbackMode)
描述
设置调优配置中的回滚模式。
本方法仅在模型编译阶段生效。用于在模型级或算子级调优时,指定的执行设备列表出现不支持时,是否可回滚到其他硬件执行。
起始版本: 4.1.0(11)
参数:
| 名称 | 描述 |
|---|---|
| compilation | OH_NNCompilation指针实例,非空,否则返回失败。 |
| fallbackMode | 是否使能回滚模式HiAI_FallbackMode。 |
返回:
函数执行结果状态。执行成功返回OH_NN_SUCCESS;失败返回具体错误码,具体失败错误码可参考OH_NN_ReturnCode。
OH_NN_ReturnCode HMS_HiAIOptions_SetFormatMode (OH_NNCompilation * compilation, HiAI_FormatMode formatMode)
描述
设置模型编译时的数据排列格式。
本方法仅在模型编译阶段生效,用于模型中的数据排列格式与默认值不匹配时的场景。
起始版本: 4.1.0(11)
参数:
| 名称 | 描述 |
|---|---|
| compilation | OH_NNCompilation指针实例,非空。 |
| formatMode | 数据排列格式HiAI_FormatMode。 |
返回:
函数执行结果状态。执行成功返回OH_NN_SUCCESS;失败返回具体错误码,具体失败错误码可参考OH_NN_ReturnCode。
OH_NN_ReturnCode HMS_HiAIOptions_SetInputTensorShapes (OH_NNCompilation * compilation, NN_TensorDesc * inputTensorDescs[], size_t shapeCount)
描述
编译时更新模型输入shape。
本方法仅在模型编译阶段生效,用于模型结构及权重不变,模型输入shape需要变化的场景。数组的大小需要与模型的输入数量保持一致。 模型编译后,模型的输入shape将变更为新设置的shape,推理时输入输出数据需符合新的模型输入输出描述。
起始版本: 4.1.0(11)
参数:
| 名称 | 描述 |
|---|---|
| compilation | OH_NNCompilation指针实例,非空。 |
| inputTensorDescs[] | 模型输入shape列表数组NN_TensorDesc,非空。 |
| shapeCount | 模型输入shape的个数,需与模型输入个数对应。 |
返回:
函数执行结果状态。执行成功返回OH_NN_SUCCESS;失败返回具体错误码,具体失败错误码可参考OH_NN_ReturnCode。
OH_NN_ReturnCode HMS_HiAIOptions_SetModelDeviceOrder (OH_NNCompilation * compilation, HiAI_ExecuteDevice * executeDevices, size_t deviceCount)
描述
设置模型级调优配置中模型执行设备列表。
本方法仅在模型编译阶段生效,不可与其他调优混用。用于指定模型的执行设备列表,按照优先级顺序排列。默认NPU优先。
起始版本: 4.1.0(11)
参数:
| 名称 | 描述 |
|---|---|
| compilation | OH_NNCompilation指针实例,非空,否则返回失败。 |
| executeDevices | 支持的设备类型列表HiAI_ExecuteDevice,非空,否则返回失败。 |
| deviceCount | 支持的执行硬件个数。 |
返回:
函数执行结果状态。执行成功返回OH_NN_SUCCESS;失败返回具体错误码,具体失败错误码可参考OH_NN_ReturnCode。
OH_NN_ReturnCode HMS_HiAIOptions_SetOmOptions (OH_NNCompilation * compilation, HiAI_OmType type, const char * outputDir)
描述
设置模型加载时的维测选项信息。
该方法属于可选接口,在模型加载阶段生效,用于模型的性能调试。
起始版本: 5.1.0(18)
参数:
| 名称 | 描述 |
|---|---|
| compilation | OH_NNCompilation指针实例,非空,否则返回失败。 |
| type | 维测类型HiAI_OmType。 |
| outputDir | 维测输出目录,用于生产profiling相关文件。 |
返回:
函数执行结果状态。执行成功返回OH_NN_SUCCESS;失败返回具体错误码,具体失败错误码可参考OH_NN_ReturnCode。
OH_NN_ReturnCode HMS_HiAIOptions_SetOperatorDeviceOrder (OH_NNCompilation * compilation, const char * operatorName, HiAI_ExecuteDevice * executeDevices, size_t deviceCount)
描述
设置算子级调优配置中算子执行设备列表。
本方法仅在模型编译阶段生效,不可与其他调优混用。用于指定模型中算子的执行设备列表,按照优先级顺序排列,算子名称不可重复。 模型中的算子可以部分指定,不指定的算子以NPU优先,可以使用开源工具Netron查看模型中的算子名称。
起始版本: 4.1.0(11)
参数:
| 名称 | 描述 |
|---|---|
| compilation | OH_NNCompilation指针实例,非空,否则返回失败。 |
| operatorName | 算子名称,非空,否则返回失败。 |
| executeDevices | 支持的设备类型列表HiAI_ExecuteDevice,非空,否则返回失败。 |
| deviceCount | 支持的执行硬件个数。 |
返回:
函数执行结果状态。执行成功返回OH_NN_SUCCESS;失败返回具体错误码,具体失败错误码可参考OH_NN_ReturnCode。
OH_NN_ReturnCode HMS_HiAIOptions_SetQuantConfig (OH_NNCompilation * compilation, void * data, size_t size)
描述
设置模型编译时量化配置。
本方法仅在模型编译阶段生效。用于模型编译时进行量化的场景。
起始版本: 4.1.0(11)
参数:
| 名称 | 描述 |
|---|---|
| compilation | OH_NNCompilation指针实例,非空,否则返回失败。 |
| data | 量化配置的数据地址,非空,否则返回失败。 |
| size | 量化配置的数据大小,大于0,否则返回失败。 |
返回:
函数执行结果状态。执行成功返回OH_NN_SUCCESS;失败返回具体错误码,具体失败错误码可参考OH_NN_ReturnCode。
OH_NN_ReturnCode HMS_HiAIOptions_SetTuningCacheDir (OH_NNCompilation * compilation, const char * cacheDir)
描述
设置辅助调优的缓存目录。
要求用户进程对缓存目录有读写权限。本方法需与HMS_HiAIOptions_SetTuningMode搭配使用。
起始版本: 4.1.0(11)
参数:
| 名称 | 描述 |
|---|---|
| compilation | OH_NNCompilation指针实例,非空,否则返回失败。 |
| cacheDir | 缓存目录,非空,否则返回失败。 |
返回:
函数执行结果状态。执行成功返回OH_NN_SUCCESS;失败返回具体错误码,具体失败错误码可参考OH_NN_ReturnCode。
OH_NN_ReturnCode HMS_HiAIOptions_SetTuningMode (OH_NNCompilation * compilation, HiAI_TuningMode tuningMode)
描述
选择辅助调优模式。
本方法仅在模型编译阶段生效,不可与其他调优混用。用于指定CANN Kit协助进行调优的场景。 本方法需与HMS_HiAIOptions_SetTuningCacheDir搭配使用。
起始版本: 4.1.0(11)
参数:
| 名称 | 描述 |
|---|---|
| compilation | OH_NNCompilation指针实例,非空,否则返回失败。 |
| tuningMode | 辅助调优模式HiAI_TuningMode。 |
返回:
函数执行结果状态。执行成功返回OH_NN_SUCCESS;失败返回具体错误码,具体失败错误码可参考OH_NN_ReturnCode。
OH_NN_ReturnCode HMS_HiAIOptions_SetTuningStrategy (OH_NNCompilation * compilation, HiAI_TuningStrategy tuningStrategy)
描述
设置模型编译时的模型优化策略。
本方法仅在模型编译阶段生效。用于模型算子深度融合的场景。
起始版本: 4.1.0(11)
参数:
| 名称 | 描述 |
|---|---|
| compilation | OH_NNCompilation指针实例,非空,否则返回失败。 |
| tuningStrategy | 模型优化策略配置HiAI_TuningStrategy。 |
返回:
函数执行结果状态。执行成功返回OH_NN_SUCCESS;失败返回具体错误码,具体失败错误码可参考OH_NN_ReturnCode。
HiAI_SingleOpBuffer* HMS_HiAISingleOpBuffer_Create (size_t dataSize)
描述
按照指定的内存大小创建HiAI_SingleOpBuffer对象。
本方法用于根据指定的dataSize申请对应大小的ION内存,并创建HiAI_SingleOpBuffer对象。当不再使用HiAI_SingleOpBuffer对象时, 调用HMS_HiAISingleOpBuffer_Destroy销毁,否则会造成内存泄漏。
起始版本: 5.0.0(12)
参数:
| 名称 | 描述 |
|---|---|
| dataSize | 要申请的内存字节大小。该值不能为0,否则返回空指针。 |
返回:
指向HiAI_SingleOpBuffer对象的指针,如果创建失败则返回空指针。
OH_NN_ReturnCode HMS_HiAISingleOpBuffer_Destroy (HiAI_SingleOpBuffer ** buffer)
描述
释放HiAI_SingleOpBuffer对象。
本方法用于释放调用HMS_HiAISingleOpBuffer_Create创建的HiAI_SingleOpBuffer对象。
起始版本: 5.0.0(12)
参数:
| 名称 | 描述 |
|---|---|
| buffer | 指向HiAI_SingleOpBuffer对象的二级指针。buffer和 *buffer不能是空指针,否则返回错误码。 |
返回:
函数执行的结果状态。执行成功返回OH_NN_SUCCESS;失败返回具体错误码,具体失败错误码可参考OH_NN_ReturnCode。
void* HMS_HiAISingleOpBuffer_GetData (const HiAI_SingleOpBuffer * buffer)
描述
查询HiAI_SingleOpBuffer的内存地址。
本方法用于获取指定HiAI_SingleOpBuffer对象的内存地址。
起始版本: 5.0.0(12)
参数:
| 名称 | 描述 |
|---|---|
| buffer | 指向HiAI_SingleOpBuffer对象的指针。该值不能为空指针,否则返回空指针。 |
返回:
Buffer的内存地址。
size_t HMS_HiAISingleOpBuffer_GetSize (const HiAI_SingleOpBuffer * buffer)
描述
查询HiAI_SingleOpBuffer的字节大小。
本方法用于获取指定HiAI_SingleOpBuffer对象的字节大小。
起始版本: 5.0.0(12)
参数:
| 名称 | 描述 |
|---|---|
| buffer | 指向HiAI_SingleOpBuffer对象的指针。该值不能为空指针,否则返回0。 |
返回:
Buffer的字节大小。
HiAI_SingleOpDescriptor* HMS_HiAISingleOpDescriptor_CreateActivation (HiAI_SingleOpActivationType activationType, float coef)
描述
创建激活函数类的描述符对象。
本方法用于根据传入的参数创建激活函数类的HiAI_SingleOpDescriptor对象。当不再使用HiAI_SingleOpDescriptor对象时,调用HMS_HiAISingleOpDescriptor_Destroy销毁,否则会造成内存泄漏。
起始版本: 5.0.0(12)
参数:
| 名称 | 描述 |
|---|---|
| activationType | 激活模式。 |
| coef | 如果激活模式为带系数的激活类型,该值表示系数。否则,该值不会生效。 |
返回:
指向HiAI_SingleOpDescriptor对象的指针,如果创建失败则返回空指针。
HiAI_SingleOpDescriptor* HMS_HiAISingleOpDescriptor_CreateConvolution (HiAISingleOpDescriptor_ConvolutionParam param)
描述
创建卷积类(普通卷积、转置卷积、深度卷积)的描述符对象。
本方法用于根据传入的参数创建卷积类的HiAI_SingleOpDescriptor对象。当不再使用HiAI_SingleOpDescriptor对象时,调用HMS_HiAISingleOpDescriptor_Destroy销毁,否则会造成内存泄漏。
起始版本: 5.0.0(12)
参数:
| 名称 | 描述 |
|---|---|
| param | 详细输入参数参见HiAISingleOpDescriptor_ConvolutionParam。 |
返回:
指向HiAI_SingleOpDescriptor对象的指针,如果创建失败则返回空指针。
void HMS_HiAISingleOpDescriptor_Destroy (HiAI_SingleOpDescriptor ** opDesc)
描述
当不再使用HiAI_SingleOpDescriptor对象时,调用该接口销毁,否则会造成内存泄漏。
起始版本: 5.0.0(12)
参数:
| 名称 | 描述 |
|---|---|
| opDesc | 指向HiAI_SingleOpDescriptor对象的二级指针。opDesc和 *opDesc不能是空指针,否则销毁失败。 |
HiAI_SingleOpExecutor* HMS_HiAISingleOpExecutor_CreateConvolution (HiAI_SingleOpExecutorConvolutionParam param)
描述
创建卷积类算子对应的HiAI_SingleOpExecutor对象。
当不再使用HiAI_SingleOpExecutor对象时,调用HMS_HiAISingleOpExecutor_Destroy销毁,否则会造成内存泄漏。
对于输出Tensor描述,其数据类型和排布格式可以同时为HIAI_SINGLEOP_DT_UNDEFINED和HIAI_SINGLEOP_FORMAT_RESERVED。在这种情况下,执行器会将输出的数据类型和排布格式设置为适配硬件的类型。该接口执行成功后,可以调用HMS_HiAISingleOpExecutor_UpdateOutputTensorDesc更新输出Tensor描述的数据类型和排布格式。
起始版本: 5.0.0(12)
参数:
| 名称 | 描述 |
|---|---|
| param | 详细输入参数参见HiAI_SingleOpExecutorConvolutionParam。 |
返回:
指向HiAI_SingleOpExecutor对象的指针,如果创建失败,则返回空指针。
HiAI_SingleOpExecutor* HMS_HiAISingleOpExecutor_CreateFusedConvolutionActivation (HiAI_SingleOpExecutorFusedConvolutionActivationParam param)
描述
创建卷积和激活融合算子对应的HiAI_SingleOpExecutor对象。
当不再使用HiAI_SingleOpExecutor对象时,调用HMS_HiAISingleOpExecutor_Destroy销毁,否则会造成内存泄漏。
对于输出Tensor描述,其数据类型和排布格式可以为HIAI_SINGLEOP_DT_UNDEFINED和HIAI_SINGLEOP_FORMAT_RESERVED。在这种情况下,执行器会将输出的数据类型和排布格式设置为适配硬件的类型。该接口执行成功后,可以调用HMS_HiAISingleOpExecutor_UpdateOutputTensorDesc更新输出Tensor描述的数据类型和排布格式。
起始版本: 5.0.0(12)
参数:
| 名称 | 描述 |
|---|---|
| param | 详细输入参数参见HiAI_SingleOpExecutorFusedConvolutionActivationParam。 |
返回:
指向HiAI_SingleOpExecutor对象的指针,如果创建失败,则返回空指针。
OH_NN_ReturnCode HMS_HiAISingleOpExecutor_Destroy (HiAI_SingleOpExecutor ** executor)
描述
销毁HiAI_SingleOpExecutor对象,释放执行器占用的内存。
当不再使用HiAI_SingleOpExecutor对象时,调用该接口销毁,否则会造成内存泄漏。
注意:该接口不会释放传递给HMS_HiAISingleOpExecutor_Init的工作空间内存,工作空间所属的HiAI_SingleOpBuffer需要单独释放。
起始版本: 5.0.0(12)
参数:
| 名称 | 描述 |
|---|---|
| executor | 指向HiAI_SingleOpExecutor对象的二级指针。executor和 *executor不能是空指针,否则返回错误码。 |
返回:
函数执行的结果状态。执行成功返回OH_NN_SUCCESS;失败返回具体错误码,具体失败错误码可参考OH_NN_ReturnCode。
OH_NN_ReturnCode HMS_HiAISingleOpExecutor_Execute (HiAI_SingleOpExecutor * executor, HiAI_SingleOpTensor * input[], int32_t inputNum, HiAI_SingleOpTensor * output[], int32_t outputNum)
描述
执行同步运算推理。
在调用该接口前,需要先通过HMS_HiAISingleOpTensor_CreateFromTensorDesc或HMS_HiAISingleOpTensor_CreateFromSingleOpBuffer接口创建输入和输出Tensor并填充输入Tensor数据。执行器会通过执行推理产生推理结果,并将结果写入输出Tensor中。
起始版本: 5.0.0(12)
参数:
| 名称 | 描述 |
|---|---|
| executor | 指向HiAI_SingleOpExecutor对象的指针。该值不能为空指针,否则返回错误码。 |
| input[] | 输入Tensor的数组。 |
| inputNum | 输入Tensor的数量。 |
| output[] | 输出Tensor的数组。 |
| outputNum | 输出Tensor的数量。 |
返回:
函数执行的结果状态。执行成功返回OH_NN_SUCCESS;失败返回具体错误码,具体失败错误码可参考OH_NN_ReturnCode。
size_t HMS_HiAISingleOpExecutor_GetWorkspaceSize (const HiAI_SingleOpExecutor * executor)
描述
查询HiAI_SingleOpExecutor所需的ION内存工作空间的字节大小。
在成功创建HiAI_SingleOpExecutor后,调用该接口获取执行器所需的ION内存工作空间的字节大小,然后需要调用HMS_HiAISingleOpBuffer_Create申请足够的工作空间内存,将分配的工作空间传入HMS_HiAISingleOpExecutor_Init接口。
注意:同一个执行器的工作空间内存和输入、输出Tensor内存不能复用,不同执行器的工作空间内存可以复用。
起始版本: 5.0.0(12)
参数:
| 名称 | 描述 |
|---|---|
| executor | 指向HiAI_SingleOpExecutor对象的指针。该值不能为空指针,否则返回0。 |
返回:
工作空间的字节大小。
OH_NN_ReturnCode HMS_HiAISingleOpExecutor_Init (HiAI_SingleOpExecutor * executor, void * workspace, size_t workspaceSize)
描述
在调用该接口之前,需要申请执行器所需的工作空间内存。
起始版本: 5.0.0(12)
参数:
| 名称 | 描述 |
|---|---|
| executor | 指向HiAI_SingleOpExecutor对象的指针。该值不能为空指针,否则返回错误码。 |
| workspace | 工作空间地址。当workspaceSize不为0时,该值必须为HiAI_SingleOpBuffer中的内存地址,否则返回错误码。 |
| workspaceSize | 提供的workspace的字节大小。该值必须大于等于HMS_HiAISingleOpExecutor_GetWorkspaceSize获取的所需工作空间大小, 否则返回错误码。 |
返回:
函数执行的结果状态。执行成功返回OH_NN_SUCCESS;失败返回具体错误码,具体失败错误码可参考OH_NN_ReturnCode。
HiAI_SingleOpSupportStatus HMS_HiAISingleOpExecutor_PreCheckConvolution (HiAI_SingleOpExecutorConvolutionParam param)
描述
预查询卷积算子的支持状态。
根据该接口的返回值确定是否调用HMS_HiAISingleOpExecutor_CreateConvolution来创建卷积执行器,也可以不调用本方法,直接调用创建卷积执行器。
起始版本: 5.0.0(12)
参数:
| 名称 | 描述 |
|---|---|
| param | 详细输入参数参见HiAI_SingleOpExecutorConvolutionParam。 |
返回:
支持状态。具体状态请参考HiAI_SingleOpSupportStatus。
HiAI_SingleOpSupportStatus HMS_HiAISingleOpExecutor_PreCheckFusedConvolutionActivation (HiAI_SingleOpExecutorFusedConvolutionActivationParam param)
描述
预查询卷积和激活融合算子的支持状态。
根据该接口的返回值确定是否调用HMS_HiAISingleOpExecutor_CreateFusedConvolutionActivation来创建卷积激活融合执行器,也可以不调用本方法,直接创建卷积激活融合执行器。
起始版本: 5.0.0(12)
参数:
| 名称 | 描述 |
|---|---|
| param | 详细输入参数参见HiAI_SingleOpExecutorFusedConvolutionActivationParam。 |
返回:
支持状态。具体状态请参考HiAI_SingleOpSupportStatus。
OH_NN_ReturnCode HMS_HiAISingleOpExecutor_UpdateOutputTensorDesc (const HiAI_SingleOpExecutor * executor, uint32_t index, HiAI_SingleOpTensorDesc * output)
描述
更新HiAI_SingleOpExecutor的输出tensor描述。
如果在创建HiAI_SingleOpExecutor时,输入参数output数据类型为HIAI_SINGLEOP_DT_UNDEFINED,且排布格式为HIAI_SINGLEOP_FORMAT_RESERVED,那么在成功创建HiAI_SingleOpExecutor后,调用该接口将输出Tensor描述更新为硬件适配的数据类型和排布格式。
起始版本: 5.0.0(12)
参数:
| 名称 | 描述 |
|---|---|
| executor | 指向HiAI_SingleOpExecutor对象的指针。该值不能为空指针,否则返回错误码。 |
| index | 输出Tensor描述的索引,与创建executor时的输出顺序一致。索引值从0开始。 |
| output | 需要更新的HiAI_SingleOpTensorDesc对象的指针。 |
返回:
函数执行的结果状态。执行成功返回OH_NN_SUCCESS;失败返回具体错误码,具体失败错误码可参考OH_NN_ReturnCode。
HiAI_SingleOpOptions* HMS_HiAISingleOpOptions_Create (void)
描述
创建HiAI_SingleOpOptions对象。
当不再使用HiAI_SingleOpOptions对象时,调用HMS_HiAISingleOpOptions_Destroy销毁,否则会造成内存泄漏。
起始版本: 5.0.0(12)
返回:
指向HiAI_SingleOpOptions对象的指针,如果创建失败则返回空指针。
void HMS_HiAISingleOpOptions_Destroy (HiAI_SingleOpOptions ** options)
描述
释放HiAI_SingleOpOptions对象。
本方法用于释放调用HMS_HiAISingleOpOptions_Create创建的HiAI_SingleOpOptions对象。
起始版本: 5.0.0(12)
参数:
| 名称 | 描述 |
|---|---|
| options | 指向HiAI_SingleOpOptions对象的二级指针。options和 *options不能是空指针,否则销毁失败。 |
HiAI_SingleOpTensor* HMS_HiAISingleOpTensor_CreateFromConst (const HiAI_SingleOpTensorDesc * desc, void * data, size_t dataSize)
描述
根据HiAI_SingleOpTensorDesc、常量数据(如卷积权重、偏置等)的内存地址和数据大小创建HiAI_SingleOpTensor对象。
本方法用于根据HiAI_SingleOpTensorDesc和常量数据(如卷积权重、偏置等)的内存地址和数据大小创建HiAI_SingleOpTensor对象。
本方法直接复用data和dataSize对应的常量数据,不会进行数据的拷贝。因此,在本方法创建的Tensor仍要被使用时,不要释放该Tensor对应的常量数据内存。本方法仅读取data和dataSize对应的常量数据,不会修改其数据。
注意:该接口会将desc拷贝到HiAI_SingleOpTensor中。因此,当desc不再使用时,请使用HMS_HiAISingleOpTensorDesc_Destroy销毁desc。
当不再使用HiAI_SingleOpTensor对象时,调用HMS_HiAISingleOpTensor_Destroy销毁,否则会造成内存泄漏。
起始版本: 5.0.0(12)
参数:
| 名称 | 描述 |
|---|---|
| desc | 指向HiAI_SingleOpTensorDesc对象的指针。该值不能为空指针,否则返回空指针。 |
| data | 常量数据地址。该值不能为空指针,否则返回空指针。 |
| dataSize | 常量数据大小。该值不能为0,否则返回空指针。 |
返回:
指向HiAI_SingleOpTensor对象的指针,如果创建失败则返回空指针。
HiAI_SingleOpTensor* HMS_HiAISingleOpTensor_CreateFromSingleOpBuffer (const HiAI_SingleOpTensorDesc * desc, void * data, size_t dataSize)
描述
根据HiAI_SingleOpTensorDesc、HiAI_SingleOpBuffer的内存地址和数据大小创建HiAI_SingleOpTensor对象。
本方法复用HiAI_SingleOpBuffer的ION内存,所复用的内存地址和大小由data和dataSize确定。dataSize必须等于通过HMS_HiAISingleOpTensorDesc_GetByteSize计算得到的desc的字节大小。当调用HMS_HiAISingleOpTensor_Destroy接口销毁该接口创建的Tensor时,不会释放该Tensor数据的内存。
注意:该接口会将desc拷贝到HiAI_SingleOpTensor中。因此,当desc不再使用时,请使用HMS_HiAISingleOpTensorDesc_Destroy销毁desc。
当不再使用HiAI_SingleOpTensor对象时,调用HMS_HiAISingleOpTensor_Destroy销毁,否则会造成内存泄漏。
起始版本: 5.0.0(12)
参数:
| 名称 | 描述 |
|---|---|
| desc | 指向HiAI_SingleOpTensorDesc对象的指针。该值不能为空指针,否则返回空指针。 |
| data | Tensor数据地址。该值必须是HiAI_SingleOpBuffer中的内存地址,否则返回空指针。 |
| dataSize | Tensor数据大小。该值不能为0,否则返回空指针。 |
返回:
指向HiAI_SingleOpTensor对象的指针,如果创建失败则返回空指针。
HiAI_SingleOpTensor* HMS_HiAISingleOpTensor_CreateFromTensorDesc (const HiAI_SingleOpTensorDesc * desc)
描述
根据HiAI_SingleOpTensorDesc创建HiAI_SingleOpTensor对象。
本方法使用HMS_HiAISingleOpTensorDesc_GetByteSize计算Tensor数据的字节数, 并使用HMS_HiAISingleOpBuffer_Create为Tensor数据分配ION内存。设备驱动将通过“零拷贝”的方式直接获取张量数据。
注意:该接口会将desc拷贝到HiAI_SingleOpTensor中。因此,当desc不再使用时,请使用HMS_HiAISingleOpTensorDesc_Destroy销毁desc。
当不再使用HiAI_SingleOpTensor对象时,调用HMS_HiAISingleOpTensor_Destroy销毁,否则会造成内存泄漏。
起始版本: 5.0.0(12)
参数:
| 名称 | 描述 |
|---|---|
| desc | 指向HiAI_SingleOpTensorDesc对象的指针。该值不能为空指针,否则返回空指针。 |
返回:
指向HiAI_SingleOpTensor对象的指针,如果创建失败则返回空指针。
OH_NN_ReturnCode HMS_HiAISingleOpTensor_Destroy (HiAI_SingleOpTensor ** tensor)
描述
释放HiAI_SingleOpTensor对象。
当不再使用HiAI_SingleOpTensor对象时,需要调用该接口销毁该对象,否则会造成内存泄漏。
起始版本: 5.0.0(12)
参数:
| 名称 | 描述 |
|---|---|
| tensor | 指向HiAI_SingleOpTensor对象的二级指针。tensor和 *tensor不能是空指针,否则返回错误码。 |
返回:
函数执行的结果状态。执行成功返回OH_NN_SUCCESS;失败返回具体错误码,具体失败错误码可参考OH_NN_ReturnCode。
HiAI_SingleOpBuffer* HMS_HiAISingleOpTensor_GetBuffer (const HiAI_SingleOpTensor * tensor)
描述
获取HiAI_SingleOpTensor的Buffer。
本方法用于获取指定HiAI_SingleOpTensor对象的HiAI_SingleOpBuffer。
起始版本: 5.0.0(12)
参数:
| 名称 | 描述 |
|---|---|
| tensor | 指向HiAI_SingleOpTensor对象的指针。该值不能为空指针,否则返回空指针。 |
返回:
指向HiAI_SingleOpBuffer对象的指针。
HiAI_SingleOpTensorDesc* HMS_HiAISingleOpTensor_GetTensorDesc (const HiAI_SingleOpTensor * tensor)
描述
获取HiAI_SingleOpTensor的Tensor描述。
本方法用于获取指定HiAI_SingleOpTensor对象的HiAI_SingleOpTensorDesc。
起始版本: 5.0.0(12)
参数:
| 名称 | 描述 |
|---|---|
| tensor | 指向HiAI_SingleOpTensor对象的指针。该值不能为空指针,否则返回空指针。 |
返回:
指向HiAI_SingleOpTensorDesc对象的指针。
HiAI_SingleOpTensorDesc* HMS_HiAISingleOpTensorDesc_Create (const int64_t * dims, size_t dimNum, HiAI_SingleOpDataType dataType, HiAI_SingleOpFormat format, bool isVirtual)
描述
本方法用于根据传入的维度、数据类型、排布格式等参数创建HiAI_SingleOpTensorDesc对象。
可以调用以下接口,基于传入的HiAI_SingleOpTensorDesc指针创建HiAI_SingleOpTensor对象: HMS_HiAISingleOpTensor_CreateFromTensorDesc、HMS_HiAISingleOpTensor_CreateFromSingleOpBuffer、 HMS_HiAISingleOpTensor_CreateFromConst。
注意:这些接口会将HiAI_SingleOpTensorDesc对象复制到HiAI_SingleOpTensor中。 当HiAI_SingleOpTensorDesc对象不再使用时,调用HMS_HiAISingleOpTensorDesc_Destroy接口销毁,否则会造成内存泄漏。
起始版本: 5.0.0(12)
参数:
| 名称 | 描述 |
|---|---|
| dims | 张量维度列表。该值不能为空指针,否则返回空指针。 |
| dimNum | 张量维度数量。该值不能为0,否则返回空指针。 |
| dataType | 张量数据类型。 |
| format | 张量排布格式。 |
| isVirtual | 表示张量是否是虚拟张量。true表示该张量为虚拟张量,false表示该张量为非虚拟张量。虚拟张量是相连的CANN Kit单算子之间的中间张量,其中的数据仅暂时存在,不经非CANN Kit单算子内存读取或写入。例如, 若CANN Kit单算子A的输出张量T1仅作为CANN Kit单算子B的输入张量,且用户只读取单算子B的输出张量T2,不会读取或写入T1,那么T1需要被设置为虚拟张量,而T2则是非虚拟张量。 |
返回:
指向HiAI_SingleOpTensorDesc对象的指针,如果创建失败,则返回空指针。
void HMS_HiAISingleOpTensorDesc_Destroy (HiAI_SingleOpTensorDesc ** tensorDesc)
描述
本方法用于释放调用HMS_HiAISingleOpTensorDesc_Create创建的HiAI_SingleOpTensorDesc对象。
起始版本: 5.0.0(12)
参数:
| 名称 | 描述 |
|---|---|
| tensorDesc | 指向HiAI_SingleOpTensorDesc对象的二级指针。 tensorDesc和 *tensorDesc不能为空指针。 |
size_t HMS_HiAISingleOpTensorDesc_GetByteSize (const HiAI_SingleOpTensorDesc * tensorDesc)
描述
查询基于HiAI_SingleOpTensorDesc的维度和数据类型计算的数据占用字节数。
本方法用于获取基于HiAI_SingleOpTensorDesc的维度和数据类型计算得到的数据占用字节数。
起始版本: 5.0.0(12)
参数:
| 名称 | 描述 |
|---|---|
| tensorDesc | 指向HiAI_SingleOpTensorDesc对象的指针。该值不能为空指针,否则返回0。 |
返回:
张量的数据字节数。
HiAI_SingleOpDataType HMS_HiAISingleOpTensorDesc_GetDataType (const HiAI_SingleOpTensorDesc * tensorDesc)
描述
查询HiAI_SingleOpTensorDesc的数据类型。
本方法用于获取指定HiAI_SingleOpTensorDesc对象的数据类型。
起始版本: 5.0.0(12)
参数:
| 名称 | 描述 |
|---|---|
| tensorDesc | 指向HiAI_SingleOpTensorDesc对象的指针。该值不能为空指针,否则返回HIAI_SINGLEOP_DT_UNDEFINED。 |
返回:
张量的数据类型。
int64_t HMS_HiAISingleOpTensorDesc_GetDimension (const HiAI_SingleOpTensorDesc * tensorDesc, size_t index)
描述
查询HiAI_SingleOpTensorDesc指定索引的维度长度。
本方法用于获取指定HiAI_SingleOpTensorDesc对象的某个维度的长度。
起始版本: 5.0.0(12)
参数:
| 名称 | 描述 |
|---|---|
| tensorDesc | 指向HiAI_SingleOpTensorDesc对象的指针。该值不能为空指针,否则返回0。 |
| index | 维度的索引值。索引从0开始。 |
返回:
张量的索引为index的维度的长度,如果执行失败,则返回0。
size_t HMS_HiAISingleOpTensorDesc_GetDimensionCount (const HiAI_SingleOpTensorDesc * tensorDesc)
描述
查询HiAI_SingleOpTensorDesc的维度数量。
本方法用于获取指定HiAI_SingleOpTensorDesc对象的维度数量。
起始版本: 5.0.0(12)
参数:
| 名称 | 描述 |
|---|---|
| tensorDesc | 指向HiAI_SingleOpTensorDesc对象的指针。该值不能为空指针,否则返回0。 |
返回:
张量的维度数量,如果执行失败,则返回0。
HiAI_SingleOpFormat HMS_HiAISingleOpTensorDesc_GetFormat (const HiAI_SingleOpTensorDesc * tensorDesc)
描述
查询HiAI_SingleOpTensorDesc的排布格式。
本方法用于获取指定HiAI_SingleOpTensorDesc对象的排布格式。
起始版本: 5.0.0(12)
参数:
| 名称 | 描述 |
|---|---|
| tensorDesc | 指向HiAI_SingleOpTensorDesc对象的指针。该值不能为空指针,否则返回HIAI_SINGLEOP_FORMAT_RESERVED。 |
返回:
张量的排布格式。
bool HMS_HiAISingleOpTensorDesc_IsVirtual (const HiAI_SingleOpTensorDesc * tensorDesc)
描述
查询HiAI_SingleOpTensorDesc是否为虚拟张量。
虚拟张量是相连的CANN Kit单算子之间的中间张量,其中的数据仅暂时存在,不经非CANN Kit单算子内存读取或写入。例如,若CANN Kit单算子A的输出张量T1仅作为CANN Kit单算子B的输入张量,且用户只读取单算子B的输出张量T2,不会读取或写入T1, 那么T1需要被设置为虚拟张量,而T2则是非虚拟张量。
起始版本: 5.0.0(12)
参数:
| 名称 | 描述 |
|---|---|
| tensorDesc | 指向HiAI_SingleOpTensorDesc对象的指针。该值不能为空指针,否则返回false。 |
返回:
如果张量是虚拟张量,则返回true,否则返回false。
size_t HMS_HiAITensor_GetSizeWithImageFormat (NN_TensorDesc * desc, HiAI_ImageFormat format)
描述
根据NN_TensorDesc和HiAI_ImageFormat计算申请tensor的大小。
起始版本: 4.1.0(11)
参数:
| 名称 | 描述 |
|---|---|
| desc | NN_TensorDesc指针实例,非空,否则返回0。 |
| format | 图像的格式HiAI_ImageFormat。 |
返回:
成功时返回计算后需要申请的tensor的大小,失败返回0。
OH_NN_ReturnCode HMS_HiAITensor_SetAippParams (NN_Tensor * tensor, HiAI_AippParam * aippParams[], size_t aippNum)
描述
给NN_Tensor设置AippParams。
AIPP参数设置给NN_Tensor后,其内存在tensor使用完成后,调用HMS_HiAIAippParam_Destroy释放。
起始版本: 4.1.0(11)
参数:
| 名称 | 描述 |
|---|---|
| tensor | NN_Tensor指针实例,非空,否则返回空指针。 |
| aippParams[] | AIPP参数数组。 |
| aippNum | AIPP参数数量。 |
返回:
函数执行结果状态。执行成功返回OH_NN_SUCCESS;失败返回具体错误码,具体失败错误码可参考OH_NN_ReturnCode。
void HMS_LLMEngine_Context_Destroy (HMS_LLMEngine_Context ** ctx)
描述
销毁LLM引擎上下文。
起始版本: 6.1.1(24)
参数:
| 名称 | 描述 |
|---|---|
| ctx | 待销毁的上下文句柄。 |
HMS_LLMEngine_Context* HMS_LLMEngineContext_CreateFromContextJson (const char * jsonFile)
描述
通过JSON配置文件创建LLM引擎上下文句柄。
起始版本: 6.1.1(24)
参数:
| 名称 | 描述 |
|---|---|
| jsonFile | JSON配置文件的路径,不能为空。 |
返回:
创建的LLM引擎上下文句柄。
OH_NN_ReturnCode HMS_LLMEngineContext_GetAllGeneration (const HMS_LLMEngine_Context * ctx, char * generation, uint32_t len )
描述
获取所有生成的文本。
起始版本: 6.1.1(24)
参数:
| 名称 | 描述 |
|---|---|
| ctx | 指向 HMS_LLMEngine_Context 的指针,不能为null。 |
| generation | 指向所有生成文本的指针。 |
| len | 所有生成文本的长度。 |
返回:
接口执行状态,参见OH_NN_ReturnCode。
| 状态码 | 状态信息 |
|---|---|
| OH_NN_SUCCESS | 成功状态。 |
| OH_NN_FAILED | 失败状态,入参为空或len为0。 |
OH_NN_ReturnCode HMS_LLMEngineContext_GetAllGenerationLen (const HMS_LLMEngine_Context * ctx, uint32_t * len )
描述
获取所有生成文本的总长度。
起始版本: 6.1.1(24)
参数:
| 名称 | 描述 |
|---|---|
| ctx | 指向 HMS_LLMEngine_Context 的指针,不能为null。 |
| len | 所有生成文本的总长度。 |
返回:
接口执行状态,参见OH_NN_ReturnCode。
| 状态码 | 状态信息 |
|---|---|
| OH_NN_SUCCESS | 成功状态。 |
| OH_NN_FAILED | 失败状态,入参为空或len为0。 |
OH_NN_ReturnCode HMS_LLMEngineContext_GetAllTokenGeneration (const HMS_LLMEngine_Context * ctx, int32_t * genToken, uint32_t len )
描述
获取所有已生成的tokenid。
起始版本: 6.1.1(24)
参数:
| 名称 | 描述 |
|---|---|
| ctx | 指向HMS_LLMEngine_Context的指针,不能为null。 |
| genToken | 指向生成的tokenid的指针。 |
| len | 所有已生成tokenid的长度。 |
返回:
接口执行状态,参见OH_NN_ReturnCode。
| 状态码 | 状态信息 |
|---|---|
| OH_NN_SUCCESS | 成功状态。 |
| OH_NN_FAILED | 失败状态,入参为空或len为0。 |
OH_NN_ReturnCode HMS_LLMEngineContext_GetAllTokenGenerationLen (const HMS_LLMEngine_Context * ctx, uint32_t * len )
描述
获取所有已生成tokenid的长度。
起始版本: 6.1.1(24)
参数:
| 名称 | 描述 |
|---|---|
| ctx | 指向HMS_LLMEngine_Context的指针,不能为null。 |
| len | 所有已生成tokenid的长度。 |
返回:
接口执行状态,参见OH_NN_ReturnCode。
| 状态码 | 状态信息 |
|---|---|
| OH_NN_SUCCESS | 成功状态。 |
| OH_NN_FAILED | 失败状态,入参为空或len为0。 |
OH_NN_ReturnCode HMS_LLMEngineContext_GetDecodeTimeMs (const HMS_LLMEngine_Context * ctx, double * ms )
描述
解码耗时。
起始版本: 6.1.1(24)
参数:
| 名称 | 描述 |
|---|---|
| ctx | 指向HMS_LLMEngine_Context的指针,不能为null。 |
| ms | 解码耗时(单位:ms)。 |
返回:
接口执行状态,参见OH_NN_ReturnCode。
| 状态码 | 状态信息 |
|---|---|
| OH_NN_SUCCESS | 成功状态。 |
| OH_NN_FAILED | 失败状态,入参为空。 |
OH_NN_ReturnCode HMS_LLMEngineContext_GetInputTokenCount (const HMS_LLMEngine_Context * ctx, uint64_t * count )
描述
输入token数量。
起始版本: 6.1.1(24)
参数:
| 名称 | 描述 |
|---|---|
| ctx | 指向HMS_LLMEngine_Context的指针,不能为null。 |
| count | 输入token数量。 |
返回:
接口执行状态,参见OH_NN_ReturnCode。
| 状态码 | 状态信息 |
|---|---|
| OH_NN_SUCCESS | 成功状态。 |
| OH_NN_FAILED | 失败状态,入参为空。 |
OH_NN_ReturnCode HMS_LLMEngineContext_GetOneGeneration (const HMS_LLMEngine_Context * ctx, char * generation, uint32_t len )
描述
获取生成的文本片段。
起始版本: 6.1.1(24)
参数:
| 名称 | 描述 |
|---|---|
| ctx | 指向HMS_LLMEngine_Context的指针,不能为null。 |
| generation | 指向生成的文本片段的指针。 |
| len | 生成的文本片段长度。 |
返回:
接口执行状态,参见OH_NN_ReturnCode。
| 状态码 | 状态信息 |
|---|---|
| OH_NN_SUCCESS | 成功状态。 |
| OH_NN_FAILED | 失败状态,入参为空或len为0。 |
OH_NN_ReturnCode HMS_LLMEngineContext_GetOneGenerationLen (const HMS_LLMEngine_Context * ctx, uint32_t * len )
描述
获取生成文本片段的长度。
起始版本: 6.1.1(24)
参数:
| 名称 | 描述 |
|---|---|
| ctx | 指向HMS_LLMEngine_Context的指针,不能为null。 |
| len | 生成的文本片段长度。 |
返回:
接口执行状态,参见OH_NN_ReturnCode。
| 状态码 | 状态信息 |
|---|---|
| OH_NN_SUCCESS | 成功状态。 |
| OH_NN_FAILED | 失败状态,入参为空或len为0。 |
OH_NN_ReturnCode HMS_LLMEngineContext_GetOneTokenGeneration (const HMS_LLMEngine_Context * ctx, int32_t * genToken )
描述
获取生成的tokenid。
起始版本: 6.1.1(24)
参数:
| 名称 | 描述 |
|---|---|
| ctx | 指向HMS_LLMEngine_Context的指针,不能为null。 |
| genToken | 指向生成的tokenid的指针。 |
返回:
接口执行状态,参见OH_NN_ReturnCode。
| 状态码 | 状态信息 |
|---|---|
| OH_NN_SUCCESS | 成功状态。 |
| OH_NN_FAILED | 失败状态,入参为空。 |
OH_NN_ReturnCode HMS_LLMEngineContext_GetOutputTokenCount (const HMS_LLMEngine_Context * ctx, uint64_t * count )
描述
输出token数量。
起始版本: 6.1.1(24)
参数:
| 名称 | 描述 |
|---|---|
| ctx | 指向HMS_LLMEngine_Context的指针,不能为null。 |
| count | 输出token数量。 |
返回:
接口执行状态,参见OH_NN_ReturnCode。
| 状态码 | 状态信息 |
|---|---|
| OH_NN_SUCCESS | 成功状态。 |
| OH_NN_FAILED | 失败状态,入参为空。 |
OH_NN_ReturnCode HMS_LLMEngineContext_GetPrefillTimeMs (const HMS_LLMEngine_Context * ctx, double * ms )
描述
LLM引擎预填充阶段消耗时间。
起始版本: 6.1.1(24)
参数:
| 名称 | 描述 |
|---|---|
| ctx | 指向 HMS_LLMEngine_Context 的指针,不能为null。 |
| ms | 预填充时间(单位:ms)。 |
返回:
接口执行状态,参见OH_NN_ReturnCode。
| 状态码 | 状态信息 |
|---|---|
| OH_NN_SUCCESS | 成功状态。 |
| OH_NN_FAILED | 失败状态,入参为空。 |
OH_NN_ReturnCode HMS_LLMEngineContext_GetTotalTimeMs (const HMS_LLMEngine_Context * ctx, double * ms )
描述
生成阶段总耗时。
起始版本: 6.1.1(24)
参数:
| 名称 | 描述 |
|---|---|
| ctx | 指向 HMS_LLMEngine_Context 的指针,不能为null。 |
| ms | 生成总耗时(单位:ms)。 |
返回:
接口执行状态,参见OH_NN_ReturnCode。
| 状态码 | 状态信息 |
|---|---|
| OH_NN_SUCCESS | 成功状态。 |
| OH_NN_FAILED | 失败状态,入参为空。 |
OH_NN_ReturnCode HMS_LLMEngineContext_SetOnAllTokensGenerateDoneFunc (HMS_LLMEngine_Context * ctx, callbackFunctionType func )
描述
设置所有token生成完毕时触发的回调函数。
起始版本: 6.1.1(24)
参数:
| 名称 | 描述 |
|---|---|
| ctx | 指向HMS_LLMEngine_Context的指针,不能为null。 |
| func | 上下文回调函数。 |
返回:
接口执行状态,参见OH_NN_ReturnCode。
| 状态码 | 状态信息 |
|---|---|
| OH_NN_SUCCESS | 成功状态。 |
| OH_NN_FAILED | 失败状态,入参为空。 |
OH_NN_ReturnCode HMS_LLMEngineContext_SetOnGenerateAsyncFailed (HMS_LLMEngine_Context * ctx, callbackFunctionType func )
描述
设置生成失败时的回调函数。
起始版本: 6.1.1(24)
参数:
| 名称 | 描述 |
|---|---|
| ctx | 指向HMS_LLMEngine_Context的指针,不能为null。 |
| func | 上下文回调函数。 |
返回:
接口执行状态,参见OH_NN_ReturnCode。
| 状态码 | 状态信息 |
|---|---|
| OH_NN_SUCCESS | 成功状态。 |
| OH_NN_FAILED | 失败状态,入参为空。 |
OH_NN_ReturnCode HMS_LLMEngineContext_SetOnOneTokenGenerateDoneFunc (HMS_LLMEngine_Context * ctx, callbackFunctionType func )
描述
设置生成token时触发的回调函数。
起始版本: 6.1.1(24)
参数:
| 名称 | 描述 |
|---|---|
| ctx | 指向HMS_LLMEngine_Context的指针,不能为null。 |
| func | 上下文回调函数。 |
返回:
接口执行状态,参见OH_NN_ReturnCode。
| 状态码 | 状态信息 |
|---|---|
| OH_NN_SUCCESS | 成功状态。 |
| OH_NN_FAILED | 失败状态,入参为空。 |
HMS_LLMEngine_Executor* HMS_LLMEngineExecutor_CreateFromExecutorJson (const char * jsonFile)
描述
通过JSON配置文件创建LLM引擎执行器句柄。
起始版本: 6.1.1(24)
参数:
| 名称 | 描述 |
|---|---|
| jsonFile | JSON配置文件的路径,不能为空。 |
返回:
创建的LLM引擎执行器句柄。
void HMS_LLMEngineExecutor_Destroy (HMS_LLMEngine_Executor ** executor)
描述
销毁一个LLM引擎执行器,该执行器内存释放。
起始版本: 6.1.1(24)
参数:
| 名称 | 描述 |
|---|---|
| executor | 待销毁的执行器。 |
OH_NN_ReturnCode HMS_LLMEngineExecutor_Generate (HMS_LLMEngine_Executor * executor, HMS_LLMEngine_Context * ctx, const HMS_LLMEngine_Prompt * prompt )
描述
执行同步LLM推理。
起始版本: 6.1.1(24)
参数:
| 名称 | 描述 |
|---|---|
| executor | 指向HMS_LLMEngine_Executor的指针,不能为null。 |
| ctx | 指向HMS_LLMEngine_Context的指针,不能为null。 |
| prompt | 同步LLM推理的输入。 |
返回:
接口执行状态,参见OH_NN_ReturnCode。
| 状态码 | 状态信息 |
|---|---|
| OH_NN_SUCCESS | 成功状态。 |
| OH_NN_FAILED | 失败状态,入参为空。 |
OH_NN_ReturnCode HMS_LLMEngineExecutor_GenerateAsync (HMS_LLMEngine_Executor * executor, HMS_LLMEngine_Context * ctx, const HMS_LLMEngine_Prompt * prompt )
描述
异步执行LLM推理。
起始版本: 6.1.1(24)
参数:
| 名称 | 描述 |
|---|---|
| executor | 指向HMS_LLMEngine_Executor的指针,不能为null。 |
| ctx | 指向HMS_LLMEngine_Context的指针,不能为null。 |
| prompt | 异步LLM推理的输入。 |
返回:
接口执行状态,参见OH_NN_ReturnCode。
| 状态码 | 状态信息 |
|---|---|
| OH_NN_SUCCESS | 成功状态。 |
| OH_NN_FAILED | 失败状态,入参为空。 |
OH_NN_ReturnCode HMS_LLMEngineExecutor_SetInferencePerfMode (HMS_LLMEngine_Executor * executor, HMS_LLMEngine_InferPerfMode inferPerfMode )
描述
设置推理性能模式。
起始版本: 6.1.1(24)
参数:
| 名称 | 描述 |
|---|---|
| executor | 指向HMS_LLMEngine_Executor的指针,不能为null。 |
| inferPerfMode | HMS_LLMEngine_InferPerfMode枚举值,不能为null。 |
返回:
接口执行状态,参见OH_NN_ReturnCode。
| 状态码 | 状态信息 |
|---|---|
| OH_NN_SUCCESS | 成功状态。 |
| OH_NN_FAILED | 失败状态。 可能原因:入参executor为空;入参inferPerfMode大于HMS_LLMENGINE_INFERPERF_EXTREME_HIGH或小于HMS_LLMENGINE_INFERPERF_UNSET。 |
HMS_LLMEngine_Prompt* HMS_LLMEnginePrompt_Create (void )
描述
创建一个LLM引擎提示句柄。
起始版本: 6.1.1(24)
返回:
创建的LLM引擎提示句柄。
void HMS_LLMEnginePrompt_Destroy (HMS_LLMEngine_Prompt ** prompt)
描述
销毁LLM引擎提示词句柄。
起始版本: 6.1.1(24)
参数:
| 名称 | 描述 |
|---|---|
| prompt | 待销毁的LLM引擎提示词句柄。 |
OH_NN_ReturnCode HMS_LLMEnginePrompt_SetText (HMS_LLMEngine_Prompt * prompt, const char * text )
描述
设置文本输入。
起始版本: 6.1.1(24)
参数:
| 名称 | 描述 |
|---|---|
| prompt | 指向HMS_LLMEngine_Prompt的指针,不能为null。 |
| text | 文本提示词。 |
OH_NN_ReturnCode HMS_LLMEnginePrompt_SetTokenId (HMS_LLMEngine_Prompt * prompt, int32_t * tokenIds, uint32_t tokenNum )
描述
设置输入的tokenid。
起始版本: 6.1.1(24)
参数:
| 名称 | 描述 |
|---|---|
| prompt | 指向HMS_LLMEngine_Prompt的指针,不能为null。 |
| tokenIds | 要设置到提示词中的tokenid。 |
| tokenNum | tokenid的数量。 |
返回:
接口执行状态,参见OH_NN_ReturnCode。
| 状态码 | 状态信息 |
|---|---|
| OH_NN_SUCCESS | 成功状态。 |
| OH_NN_FAILED | 失败状态,入参为空或tokenNum为0。 |