aclrtFuncAttribute
1 2 3 4 5 | typedef enum { ACL_FUNC_ATTR_KERNEL_TYPE = 1, // Kernel类型 ACL_FUNC_ATTR_KERNEL_RATIO = 2, // Kernel执行时需要的Cube Core与Vector Core的比例 ACL_FUNC_ATTR_KERNEL_SCHED_MODE = 3, // Kernel调度模式 } aclrtFuncAttribute; |
- 当属性设置为ACL_FUNC_ATTR_KERNEL_TYPE时,属性值说明请参见aclrtKernelType。
- 当属性设置为ACL_FUNC_ATTR_KERNEL_RATIO时,属性值需要使用以下方式获取:
1 2 3
uint16_t* ratioArr = reinterpret_cast<uint16_t*>(&attrValue); uint16_t aicratio = ratioArr[1]; // 表示Cube Core的比例 uint16_t aivratio = ratioArr[0]; // 表示Vector Core的比例
该属性在各产品型号上支持的情况不同,如下:
- Atlas 350 加速卡,不支持
Atlas A3 训练系列产品 /Atlas A3 推理系列产品 ,支持Atlas A2 训练系列产品 /Atlas A2 推理系列产品 ,支持Atlas 200I/500 A2 推理产品 ,不支持Atlas 推理系列产品 ,支持Atlas 训练系列产品 ,不支持
- 当属性设置为ACL_FUNC_ATTR_KERNEL_SCHED_MODE时,属性值说明如下:
- 0:普通调度模式,有空闲的核,就启动算子执行。例如,当numBlocks为8时,表示算子核函数将会在8个核上执行,这时如果指定普通调度模式,则表示只要有1个核空闲了,就启动算子执行。
- 1:batch调度模式,必须所有所需的核都空闲了,才启动算子执行。例如,当numBlocks为8时,表示算子核函数将会在8个核上执行,这时如果指定batch调度模式,则表示必须等8个核都空闲了,才启动算子执行。
父主题: 数据类型及其操作接口