CANN Coordinate数据结构
2026/6/17 7:08:14 网站建设 项目流程

Coordinate简介

【免费下载链接】asc-devkit本项目是CANN 推出的昇腾AI处理器专用的算子程序开发语言,原生支持C和C++标准规范,主要由类库和语言扩展层构成,提供多层级API,满足多维场景算子开发诉求。项目地址: https://gitcode.com/cann/asc-devkit

Coordinate本质上是一个元组(tuple),用于表示张量在不同维度的位置信息,即坐标值。Coordinate(坐标)和Layout(布局)、Index(内存位置索引)之间存在紧密的关联:

  • 从Coordinate到Index的转换:Layout定义了张量的形状和各维度的步长,根据这些信息和给定的Coordinate,可以计算出该坐标在内存中的位置索引。
  • 从Index到Coordinate的转换:基于Layout中定义的形状和步长信息,对于一个已知的内存位置索引,通过相应的计算可以得到该索引对应的Coordinate。

原型定义

template <typename... Coords> using Coord = Std::tuple<Coords...>

模板参数

表1模板参数说明

参数名

描述

Coords

表示输入数据类型的形参包,参数个数范围为[0,64]。

输入的数据类型支持size_t和Std::Int。

相关接口

// Coord结构构造方法 template <typename... Ts> __aicore__ inline constexpr Coord<Ts...> MakeCoord(Ts const&... t) // Layout输入,Coordinate转换为内存位置索引Index template <typename CoordType, typename ShapeType, typename StrideType> __aicore__ inline constexpr auto Crd2Idx(const CoordType& coord, const Layout<ShapeType, 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)

【免费下载链接】asc-devkit本项目是CANN 推出的昇腾AI处理器专用的算子程序开发语言,原生支持C和C++标准规范,主要由类库和语言扩展层构成,提供多层级API,满足多维场景算子开发诉求。项目地址: https://gitcode.com/cann/asc-devkit

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询