公司动态

CANN AscendC MakeLayout布局构造

📅 2026/7/16 23:01:00
CANN AscendC MakeLayout布局构造
MakeLayout【免费下载链接】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 训练系列产品不支持功能说明需要包含的头文件为#include tensor_api/tensor.h。MakeLayout用于根据Shape和Stride构造Layout对象描述数据张量在逻辑维度上的形状以及各维对应的步长信息。MakeLayout支持以下两种构造方式传入shape和stride直接按用户指定的布局信息构造Layout。仅传入shape接口会根据shape自动推导stride并构造紧凑布局。当shape为一维或多维普通元组时按连续行优先存储方式推导步长。函数原型template typename T, typename U __aicore__ inline constexpr auto MakeLayout(const T shape, const U stride) template typename ShapeType __aicore__ inline constexpr auto MakeLayout(const ShapeType shape)参数说明表1模板参数说明参数名称类型描述T输入shape的类型要求为元组tuple类型。U输入stride的类型要求为元组tuple类型。ShapeType输入单参数重载中shape的类型要求为元组tuple类型。表2参数说明参数名称输入/输出描述shape输入描述逻辑形状的元组对象可由MakeShape构造。stride输入描述各维步长的元组对象可由MakeStride构造。返回值说明返回LayoutShape, Stride类型对象。约束说明MakeLayout构造的Layout类型不显式携带LayoutPattern和LayoutTrait信息。对于Shape和Stride类型结构可识别的标准布局可通过GetLayoutPattern自动推导LayoutPattern无法推导或需要显式指定完整类型信息时请使用MakePatternLayout。调用示例using namespace AscendC::Te; // 示例1显式指定Shape和Stride auto layout1 MakeLayout(MakeShape(8, 16), MakeStride(16, 1)); // 示例2仅指定Shape自动推导连续布局的Stride auto layout2 MakeLayout(MakeShape(8, 16, 32)); // 推导得到stride (16 * 32, 32, 1) (512, 32, 1) // 示例3嵌套Shape自动推导嵌套Stride auto layout3 MakeLayout(MakeShape(MakeShape(2, 4), MakeShape(8, 16))); // 推导得到stride为嵌套结构用于描述FrameLayout【免费下载链接】asc-devkit本项目是CANN 推出的昇腾AI处理器专用的算子程序开发语言原生支持C和C标准规范主要由类库和语言扩展层构成提供多层级API满足多维场景算子开发诉求。项目地址: https://gitcode.com/cann/asc-devkit创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考