尧图网络科技YAOTU DIGITAL 获取报价
获取报价
首页 / 资讯中心 / 文章详情

CANN/asc-devkit CubeResGroupHandle构造函数

发布时间:2026/9/12 6:51:42

资讯中心
01
ARTICLE

CANN/asc-devkit CubeResGroupHandle构造函数

CANN/asc-devkit CubeResGroupHandle构造函数
CubeResGroupHandle构造函数产品支持情况产品是否支持Ascend 950PR/Ascend 950DT√Atlas A3 训练系列产品 / Atlas A3 推理系列产品xAtlas A2 训练系列产品 / Atlas A2 推理系列产品√Atlas 200I/500 A2 推理产品xAtlas 推理系列产品 AI CorexAtlas 推理系列产品 Vector CorexAtlas 训练系列产品x功能说明构造CubeResGroupHandle对象完成组内的AIC和消息队列分配。构造CubeResGroupHandle对象时需要传入模板参数CubeMsgTypeCubeMsgType是由用户定义的消息结构体请参考表1。使用此接口需要用户自主管理地址、同步事件等因此更推荐使用CreateCubeResGroup接口快速创建CubeResGroupHandle对象。函数原型template typename CubeMsgType class CubeResGroupHandle; __aicore__ inline CubeResGroupHandle() default __aicore__ inline CubeResGroupHandle(GM_ADDR workspace, uint8_t blockStart, uint8_t blockSize, uint8_t msgQueueSize, uint8_t evtIDIn)参数说明表 1CubeResGroupHandle参数说明参数输入/输出说明workspace输入该CubeResGroupHandle的消息通讯区在GM上的起始地址。blockStart输入该CubeResGroupHandle在AIV视角下起始AIC对应的序号即AIC的起始序号*2。例如如果AIC起始序号为0则填入0*2如果为1则填入1*2。blockSize输入该CubeResGroupHandle在AIV视角下分配的Block个数即实际的AIC个数*2。msgQueueSize输入该CubeResGroupHandle分配的消息队列总数。evtIDIn输入通信框架内用于AIV侧消息的同步事件。如下图所示CubeResGroupHandle1的blockStart为4blockSize为4表示起始的AIC序号为2即blockStart / 2AIC数量为2即blockSize / 2。msgQueueSize为10表示消息队列个数为10每个Block分配的消息队列个数为Ceil(msgQueueSizeblockSize/2)Block2和Block3分配到的消息队列个数均为5。CubeResGroupHandle2的msgQueueSize数量为11最后一个Block只能分配5个消息队列。图 1Block和消息队列映射示意图![](https://raw.gitcode.com/cann/asc-devkit/raw/68eb55191616e7a7b08961a5c82a706272353b5f/docs/api/figures/Block和消息队列映射示意图.png Block和消息队列映射示意图?utm_sourcegitcode_repo_files)约束说明假设芯片的AIV核数为x那么blockStart blockSize x - 1, msgQueueSize x。每个AIC至少被分配1个消息队列msgQueue。blockStart和blockSize必须为偶数。使用该接口UB空间末尾的1600B sizeof(CubeMsgType)将被占用。1个AIC只能属于1个CubeGroupHandle即多个CubeGroupHandle的[blockStart / 2, blockStart / 2blockSize / 2]区间不能重叠。不能和REGIST_MATMUL_OBJ接口同时使用。使用资源管理API时用户自主管理AIC和AIV的核间通信REGIST_MATMUL_OBJ内部是由框架管理AIC和AIV的核间通信同时使用可能会导致通信消息错误等异常。调用示例uint8_t blockStart 4; uint8_t blockSize 4; uint8_t msgQueueSize 10; uint8_t evtIDIn 0; //用户自行管理事件ID AscendC::KfcWorkspace desc(workspace); // 用户自行管理的workspace指针。 AscendC::CubeResGroupHandleCubeMsgBody handle; handle AscendC::CubeResGroupHandleMatmulApiType, MyCallbackFunc, CubeMsgBody(desc.GetMsgStart(), blockStart, blockSize, msgQueueSize, evtIDIn);创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
02
RELATED NEWS

相关资讯

更多网站建设与数字化升级内容

03
WHY YAOTU

想打造同款高转化官网?

懂行业、懂生意,从建站到增长一站式陪跑

场景化定制

不做模板站,围绕你的业务场景量身设计,小众不撞款。

营销型架构

以转化目标组织内容与路径,让官网真正带来询盘。

全周期服务

设计、开发、运营、运维一体,上线只是开始。

免费获取你的建站方案

留下需求,专属顾问 24 小时内为你输出方案建议。