Coordinate简介Coordinate本质上是一个元组tuple用于表示张量在不同维度的位置信息即坐标值。Coordinate坐标和Layout布局、Index内存位置索引之间存在紧密的关联从Coordinate到Index的转换Layout定义了张量的形状和各维度的步长根据这些信息和给定的Coordinate可以计算出该坐标在内存中的位置索引。从Index到Coordinate的转换基于Layout中定义的形状和步长信息对于一个已知的内存位置索引通过相应的计算可以得到该索引对应的Coordinate。原型定义template typename... Coords using Coord Std::tupleCoords...模板参数表 1模板参数说明参数名描述Coords表示输入数据类型的形参包参数个数范围为[064]。输入的数据类型支持size_t和Std::Int。相关接口// Coord结构构造方法 template typename... Ts __aicore__ inline constexpr CoordTs... MakeCoord(Ts const... t) // Layout输入Coordinate转换为内存位置索引Index template typename CoordType, typename ShapeType, typename StrideType __aicore__ inline constexpr auto Crd2Idx(const CoordType coord, const LayoutShapeType, StrideType layout) // Shape和Stride输入Coordinate转换为内存位置索引Index template typename CoordType, typename ShapeType, typename StrideType __aicore__ inline constexpr auto Crd2Idx(const CoordType coord, const ShapeType shape, const StrideType stride)创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
CANN/asc-devkit Coordinate简介
发布时间:2026/7/15 15:43:45
Coordinate简介Coordinate本质上是一个元组tuple用于表示张量在不同维度的位置信息即坐标值。Coordinate坐标和Layout布局、Index内存位置索引之间存在紧密的关联从Coordinate到Index的转换Layout定义了张量的形状和各维度的步长根据这些信息和给定的Coordinate可以计算出该坐标在内存中的位置索引。从Index到Coordinate的转换基于Layout中定义的形状和步长信息对于一个已知的内存位置索引通过相应的计算可以得到该索引对应的Coordinate。原型定义template typename... Coords using Coord Std::tupleCoords...模板参数表 1模板参数说明参数名描述Coords表示输入数据类型的形参包参数个数范围为[064]。输入的数据类型支持size_t和Std::Int。相关接口// Coord结构构造方法 template typename... Ts __aicore__ inline constexpr CoordTs... MakeCoord(Ts const... t) // Layout输入Coordinate转换为内存位置索引Index template typename CoordType, typename ShapeType, typename StrideType __aicore__ inline constexpr auto Crd2Idx(const CoordType coord, const LayoutShapeType, StrideType layout) // Shape和Stride输入Coordinate转换为内存位置索引Index template typename CoordType, typename ShapeType, typename StrideType __aicore__ inline constexpr auto Crd2Idx(const CoordType coord, const ShapeType shape, const StrideType stride)创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考