Hiva::CreateNnEngine

产品支持情况

产品

是否支持

Atlas A2 训练系列产品/Atlas 800I A2 推理产品/A200I A2 Box 异构组件

x

Atlas 200I/500 A2 推理产品

Atlas 推理系列产品

x

Atlas 训练系列产品

x

Atlas 200/300/500 推理产品

x

功能说明

创建NN引擎,加载指定的模型文件,对inTopicInfo发布的数据执行推理,并将推理的结果以outTopicInfo的形式发布出来。

函数原型

1
uint32_t Hiva::CreateNnEngine(const std::string& engineName, const EngineAttr& engineAttr, const NnTopicInfo& inTopicInfo, const NnTopicInfo& outTopicInfo)

参数说明

参数名

输入/输出

说明

engineName

输入

指推理引擎的名字,必须唯一、不能为空,不能超过128字节,不能包含 '\'、'*'。

engineAttr

输入

指推理引擎的属性,包括推理模型的路径、所在分组、模型优先级等。

1
2
3
4
5
typedef struct EngineAttr_ {           // 定义了当前推理模型属性
    std::string modelPath           // 模型在文件系统的路径
    uint32_t groupId;       // 模型所在分组,示例参见,默认范围0-1(范围可改,最大范围0-3)
    uint32_t  pri;          // 模型的优先级,数字越小优先级越高,取值为[0-7]
};

inTopicInfo

输入

模型输入数据的Topic名称(vector结构)及queue size,所有输入数据拥有相同的队列长度,开启队列流控和写覆盖。topicVec中的topic name首字母必须为'/'。

1
2
3
4
typedef struct NnTopicInfo_{
    const std::vector<std::string> topicVec;    
    const uint32_t queueSize;                    // queueSize的范围1-127
}NnTopicInfo;

outTopicInfo

输出

模型输出数据的topic名称(vector结构)及queue size,所有输出数据拥有相同的队列长度,关闭队列流控和写覆盖。topicVec中的topic name首字母必须为'/'。

返回值

返回uint32_t类型,成功返回HIVA_SUCCESS,该值为0;其他值为失败

约束说明

模型分组

模型分组是通过配置文件(yaml文件)来设置各组的属性,配置文件示例如下。如需修改配置文件,需通过CfgMgr接口操作(可参见配置管理相关接口)。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
AIGroups: 
    group0: 
        aicore_number: 8 
        aivector_number: 4 
        sdma_number: 255     # 代表使用默认值 
        aicpu_number: 255    # 代表使用默认值  
        active_sq_number: 1  
    group1: 
        aicore_number: 2 
        aivector_number: 4 
        sdma_number: 255     # 代表使用默认值 
        aicpu_number: 255    # 代表使用默认值  
        active_sq_number: 1 		 
    group2: 
        aicore_number: 0     # 该值为0,则其他值无作用 
        aivector_number: 0 
        sdma_number: 255     # 代表使用默认值 
        aicpu_number: 255    # 代表使用默认值  
        active_sq_number: 1  
    group3: 
        aicore_number: 0     # 该值为0,则其他值无作用 
        aivector_number: 0 
        sdma_number: 255     # 代表使用默认值 
        aicpu_number: 255    # 代表使用默认值  
        active_sq_number: 1