asc-devkit获取Tiling数据API

asc-devkit获取Tiling数据API GET_TILING_DATA【免费下载链接】asc-devkit本项目是CANN 推出的昇腾AI处理器专用的算子程序开发语言原生支持C和C标准规范主要由类库和语言扩展层构成提供多层级API满足多维场景算子开发诉求。项目地址: https://gitcode.com/cann/asc-devkit产品支持情况产品是否支持Ascend 950PR/Ascend 950DT√Atlas A3 训练系列产品 / Atlas A3 推理系列产品√Atlas A2 训练系列产品 / Atlas A2 推理系列产品√Atlas 200I/500 A2 推理产品√Atlas 推理系列产品 AI Core√Atlas 推理系列产品 Vector Core√Atlas 训练系列产品x功能说明用于获取算子kernel入口函数传入的Tiling信息并填入注册的TilingData结构体中此函数会以宏展开的方式进行编译。对应的算子host实现中需要定义TilingData结构体实现并注册计算TilingData的Tiling函数。如果用户通过TilingData结构注册注册了多个TilingData结构体使用该接口返回默认注册的结构体。函数原型GET_TILING_DATA(tiling_data, tiling_arg)参数说明参数输入/输出说明tiling_data输出返回默认TilingData结构体变量。tiling_arg输入此参数为算子入口函数处传入的Tiling参数。约束说明本函数需在算子kernel代码处使用并且传入的tiling_data参数不需要声明类型。暂不支持kernel直调工程。调用示例extern C __global__ __aicore__ void add_custom(__gm__ uint8_t *x, __gm__ uint8_t *y, __gm__ uint8_t *z, __gm__ uint8_t *tiling) { GET_TILING_DATA(tilingData, tiling);// 反序列化SaveToBuffer生成的数据并填入注册的TilingData结构体中 KernelAdd op; op.Init(x, y, z, tilingData.numBlocks, tilingData.totalSize, tilingData.splitTile); op.Process(); }配套的host侧Tiling函数示例ge::graphStatus TilingFunc(gert::TilingContext* context) { // 其他代码逻辑 ... TilingData tiling; // 与算子host实现中定义TilingData结构体的对应 tiling.set_blkDim(numBlocks); // 与算子host实现中定义TilingData结构体中的成员的对应 tiling.set_totalSize(totalSize); tiling.set_splitTile(splitTile); tiling.SaveToBuffer(context-GetRawTilingData()-GetData(), context-GetRawTilingData()-GetCapacity()); ... // 其他代码逻辑 }【免费下载链接】asc-devkit本项目是CANN 推出的昇腾AI处理器专用的算子程序开发语言原生支持C和C标准规范主要由类库和语言扩展层构成提供多层级API满足多维场景算子开发诉求。项目地址: https://gitcode.com/cann/asc-devkit创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考