CANN坐标转换函数Crd2Idx

发布时间:2026/10/25 1:22:12

CANN坐标转换函数Crd2Idx Crd2Idx产品支持情况产品是否支持Ascend 950PR/Ascend 950DT√Atlas A3 训练系列产品 / Atlas A3 推理系列产品√Atlas A2 训练系列产品 / Atlas A2 推理系列产品√Atlas 200I/500 A2 推理产品xAtlas 推理系列产品 AI CorexAtlas 推理系列产品 Vector CorexAtlas 训练系列产品x功能说明Crd2Idx函数用于将多维坐标Coordinate通过布局Layout转换为内存位置索引Index这里的Layout包含了Shape和Stride信息。对于一个布局Layout其Shape为(d0, d1, ..., dn)Stride为(s0, s1, ..., sn)Coordinate为(c0, c1, ..., cn)到线性索引Index的转换公式为例如对于Shape (3, 4, 5)Stride (20, 5, 1)和Coordinate (1, 2, 3)维度0: c₀ * s₀ 1 * 20 20 维度1: c₁ * s₁ 2 * 5 10 维度2: c₂ * s₂ 3 * 1 3 Index 20 10 3 33当Coordinate维度和Stride维度不相同时可以采用去线性化delinearize的方法使得Coordinate维度和Stride维度相同再使用上述公式计算得到最终结果。去线性化的方法介绍如下对于一个n维数组形状为(d0, d1, ..., dn)线性坐标c对应的多维坐标(c0, c1, ..., cn)可以通过以下公式进行转换例如对于Shape ((2, 4), (3, 5))Stride((3, 6), (1, 24))Layout ((2, 4), (3, 5)) : ((3, 6), (1, 24))Coordinate11, 12按照列优先原则Crd2Idx的结果为crd2idx delinearize(11, 12) * stride ((11 % 2, 11 / 2), (12 % 3, 12 / 3)) * ((3, 6), (1, 24)) ((1, 5), (0, 4)) * ((3, 6), (1, 24)) 1 * 3 5 * 6 0 * 1 4 * 24 129总结上述过程计算公式如下其中(d0, d1, ..., dn)为Shape(s0, s1, ..., sn)为Stridedelinearize公式展开如下函数原型// 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)参数说明参数名输入/输出描述coord输入Std::tuple结构类型用于表示张量在不同维度上的坐标值。输入的数据类型支持size_t和Std::Int。layout输入输入的Layout对象。输入的数据类型支持size_t和Std::Int。shape输入Std::tuple结构类型用于定义数据的逻辑形状例如二维矩阵的行数和列数或多维张量的各维度大小。输入的数据类型支持size_t和Std::Int。stride输入Std::tuple结构类型用于定义各维度在内存中的步长即同维度相邻元素在内存中的间隔间隔的单位为元素与Shape的维度信息一一对应。输入的数据类型支持size_t和Std::Int。返回值说明返回根据Coordinate信息转换之后的索引值。约束说明输入参数需满足对应的数据类型要求。调用示例// Layout形式入参计算索引值 constexpr int M 11; constexpr int N 12; constexpr int blockM 13; constexpr int blockN 14; auto coord AscendC::MakeCoord(AscendC::Std::Int20{}, AscendC::Std::Int30{}); auto shape AscendC::MakeShape(AscendC::MakeShape(AscendC::Std::IntblockM{}, AscendC::Std::IntM/blockM{}), AscendC::MakeShape(AscendC::Std::IntblockN{}, AscendC::Std::IntN/blockN{})); auto stride AscendC::MakeStride(AscendC::MakeStride(AscendC::Std::IntblockN{}, AscendC::Std::IntblockM*blockN{}),AscendC::MakeStride(AscendC::Std::Int1{}, AscendC::Std::IntM*blockN{})); auto layout AscendC::MakeLayout(shape, stride); auto index layout(coord); // decltype(index)::value 590 index AscendC::Crd2Idx(coord, layout); // decltype(index)::value 590 // Shape和Stride形式入参计算索引值 auto blockCoordM AscendC::Std::Int11{}; auto blockCoordN AscendC::Std::Int12{}; auto baseShapeM AscendC::Std::Int13{}; auto baseShapeN AscendC::Std::Int14{}; auto basestrideM AscendC::Std::Int15{}; auto basestrideN AscendC::Std::Int16{}; auto coord AscendC::MakeCoord(AscendC::Std::Int0{}, blockCoordN); auto shape AscendC::MakeShape(AscendC::MakeShape(baseShapeM, baseShapeM), AscendC::MakeShape(baseShapeN, baseShapeN)); auto stride AscendC::MakeStride(AscendC::MakeStride(basestrideM, basestrideM),AscendC::MakeStride(basestrideN, basestrideN)); auto index AscendC::Crd2Idx(coord, shape, stride); // decltype(index)::value 192创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
延伸阅读

更多相关文章

2026/10/24 10:36:10

WeChatFerry微信Hook框架架构解析与多语言客户端开发实战

WeChatFerry微信Hook框架架构解析与多语言客户端开发实战 【免费下载链接】WeChatFerry 微信机器人,可接入DeepSeek、Gemini、ChatGPT、ChatGLM、讯飞星火、Tigerbot等大模型。微信 hook WeChat Robot Hook. 项目地址: https://gitcode.com/GitHub_Trending/we/We…

2026/10/25 1:12:00

CANN/asc-devkit SetCurAddr函数API文档

SetCurAddr 产品支持情况 产品 是否支持 Ascend 950PR/Ascend 950DT √ Atlas A3 训练系列产品/Atlas A3 推理系列产品√ Atlas A2 训练系列产品/Atlas A2 推理系列产品√ Atlas 200I/500 A2 推理产品x Atlas 推理系列产品AI Core √ Atlas 推理系列产品Vector Core x Atlas 训…

2026/10/23 22:44:17

MusicFree:重新定义你的移动音乐体验,告别广告与限制

MusicFree:重新定义你的移动音乐体验,告别广告与限制 【免费下载链接】MusicFree 插件化、定制化、无广告的免费音乐播放器 项目地址: https://gitcode.com/GitHub_Trending/mu/MusicFree 还在为音乐APP里的广告弹窗烦恼吗?还在为会员…

2026/10/25 14:59:40

MATLAB实现贝叶斯优化图卷积网络BO-GCN多特征分类预测

简介:这份资源面向具备MATLAB基础、从事机器学习与深度学习研发的高校师生及工程技术人员,聚焦高维、非欧式结构、样本间存在复杂关联的多特征分类预测难题。项目以图结构表达样本相似性,用图卷积网络完成节点特征聚合,并引入贝叶…

2026/10/25 14:59:40

SSM零食商城源码实战:从环境搭建到订单事务的完整解析

简介:这份资源是面向计算机专业学生与JavaWeb初学者的一套SSM框架零食商城系统完整项目,适用于毕业设计、课程设计或框架练手场景。项目基于SpringSpringMVCMyBatis实现,涵盖用户购物模块与后台管理员模块,配套论文完整覆盖需求分…

2026/10/25 14:59:40

C#实现单向空间后方交会:共线方程、雅可比矩阵与LM迭代

简介:本资源是面向测绘、遥感与计算机视觉方向初学者及C#开发者的摄影测量学实践项目,聚焦单向空间后方交会这一核心算法——即通过单张影像与地面控制点反解相机外方位元素及三维空间坐标。项目完整实现针孔相机模型下的坐标正反解、最小二乘优化求解及…

2026/10/25 14:59:40

Django协同过滤推荐系统实战:冷启动+实时评分+后台管理

简介:这是一套基于协同过滤算法的电影推荐系统毕业设计实现,面向Python与Web开发初学者及高校计算机专业学生,解决个性化推荐系统从理论到工程落地的学习痛点。资源完整复现了基于用户和基于物品的双路协同过滤逻辑,采用Django 2.…

2026/10/25 14:59:40

Qwen3-VL多模态模型解析:跨模态检索与精细化排序

1. Qwen3-VL系列模型全景解析在2024年开年之际,清华代码熊团队推出的Qwen3-VL-Embedding和Qwen3-VL-Reranker模型组合,正在重塑多模态语义理解的技术格局。这套方案最引人注目的特点是其"双引擎"架构设计——Embedding模型负责将图像和文本映射…

2026/10/25 14:54:39

NPC长期记忆压缩:先保存事实出处,再考虑图谱蒸馏

NPC记住“玩家偷了面包”,可能因为亲眼看见,也可能只是听别人说过。如果把两条文字一起压成“玩家是小偷”,节省了节点,却抹掉了它们之间最重要的区别。 长期记忆首先是信息治理问题。向量库、图网络和摘要器可以参与实现&#x…

2026/10/25 0:02:22

全国计算机二级C语言真题PDF高效刷题指南

简介:这份PDF是全国计算机二级C语言考试的试题与答案解析,专为备考二级C语言的考生准备。内容涵盖C语言特点与设计理念、程序基本组成单位、main函数执行流程、函数嵌套调用规则、标识符命名规范、整型实型字符型数据类型、八进制十六进制数合法形式、运…

2026/10/25 0:02:23

requests+BeautifulSoup:爬虫抓取h1标题的入门实战指南

简介:一份以实战为导向的Python爬虫入门资源,面向具备基本编程基础、希望快速掌握网络数据抓取的初学者,可解决从零编写简单爬虫的常见困惑。实例以requests库发送HTTP请求、BeautifulSoup解析HTML文档,完整演示从网页中提取 标题…

2026/10/25 0:02:23

递推最小二乘参数辨识MATLAB编程:二阶系统与渐消记忆实现

简介:这是一篇面向控制系统、信号处理与机器学习等领域学习者的最小二乘参数辨识程序说明文档。资源共包含一个docx格式文档,压缩包大小七十八KB,内容围绕递推最小二乘算法和渐消记忆最小二乘算法展开:先构造一个极点位于单位圆内…

2026/10/25 0:02:22

全国计算机二级C语言真题PDF高效刷题指南

简介:这份PDF是全国计算机二级C语言考试的试题与答案解析,专为备考二级C语言的考生准备。内容涵盖C语言特点与设计理念、程序基本组成单位、main函数执行流程、函数嵌套调用规则、标识符命名规范、整型实型字符型数据类型、八进制十六进制数合法形式、运…

2026/10/25 0:02:23

requests+BeautifulSoup:爬虫抓取h1标题的入门实战指南

简介:一份以实战为导向的Python爬虫入门资源,面向具备基本编程基础、希望快速掌握网络数据抓取的初学者,可解决从零编写简单爬虫的常见困惑。实例以requests库发送HTTP请求、BeautifulSoup解析HTML文档,完整演示从网页中提取 标题…

2026/10/25 0:02:23

递推最小二乘参数辨识MATLAB编程:二阶系统与渐消记忆实现

简介:这是一篇面向控制系统、信号处理与机器学习等领域学习者的最小二乘参数辨识程序说明文档。资源共包含一个docx格式文档,压缩包大小七十八KB,内容围绕递推最小二乘算法和渐消记忆最小二乘算法展开:先构造一个极点位于单位圆内…

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
☎咨询二维码 ☎ ↑