CANN/asc-devkit Tiling模板参数选择接口
ASCENDC_TPL_SEL_PARAM【免费下载链接】asc-devkit本项目是CANN 推出的昇腾AI处理器专用的算子程序开发语言原生支持C和C标准规范主要由类库和语言扩展层构成提供多层级API满足多维场景算子开发诉求。项目地址: https://gitcode.com/cann/asc-devkit功能说明Tiling模板编程时开发者通过调用此接口自动生成并配置TilingKey。使用该接口需要包含定义模板参数和模板参数组合的头文件。详细内容请参考Tiling模板编程。函数原型#define ASCENDC_TPL_SEL_PARAM(context, ...) \ do { \ uint64_t key GET_TPL_TILING_KEY({__VA_ARGS__}); \ context-SetTilingKey(key); \ } while(0) // context指代TilingFunc(gert::TilingContext *context)中的context参数说明参数输入/输出说明context输入TilingFunc注册上下文。...输入可变长参数模板参数的具体值传入时需要与定义模板参数和模板参数组合的头文件中的模板参数顺序保持一致。返回值说明无约束说明无调用示例#include tiling_key_add_custom.h static ge::graphStatus TilingFunc(gert::TilingContext *context) { TilingDataTemplate tiling; uint32_t totalLength context-GetInputShape(0)-GetOriginShape().GetShapeSize(); ge::DataType dtype_x context-GetInputDesc(0)-GetDataType(); ge::DataType dtype_y context-GetInputDesc(1)-GetDataType(); ge::DataType dtype_z context-GetOutputDesc(0)-GetDataType(); uint32_t D_T_X static_castint(dtype_x), D_T_Y static_castint(dtype_y), D_T_Z static_castint(dtype_z), TILE_NUM 1, IS_SPLIT 0; if (totalLength MIN_LENGTH_FOR_SPLIT) { IS_SPLIT 0; TILE_NUM 1; } else { IS_SPLIT 1; TILE_NUM DEFAULT_TILE_NUM; } context-SetBlockDim(NUM_BLOCKS); tiling.set_totalLength(totalLength); tiling.SaveToBuffer(context-GetRawTilingData()-GetData(), context-GetRawTilingData()-GetCapacity()); context-GetRawTilingData()-SetDataSize(tiling.GetDataSize()); ASCENDC_TPL_SEL_PARAM(context, D_T_X, D_T_Y, D_T_Z, TILE_NUM, IS_SPLIT); size_t *currentWorkspace context-GetWorkspaceSizes(1); currentWorkspace[0] 0; return ge::GRAPH_SUCCESS; }【免费下载链接】asc-devkit本项目是CANN 推出的昇腾AI处理器专用的算子程序开发语言原生支持C和C标准规范主要由类库和语言扩展层构成提供多层级API满足多维场景算子开发诉求。项目地址: https://gitcode.com/cann/asc-devkit创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2598571.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!