发布时间:2026/7/15 14:56:01
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/7/15 14:56:01

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

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

2026/7/15 14:56:01

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/7/15 14:56:01

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

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

2026/7/15 15:41:10

CANN/asc-devkit remove_reference类型特性

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

2026/7/15 15:41:10

Spring Boot+Vue+微信小程序全栈电商系统架构设计与实施指南

Spring BootVue微信小程序全栈电商系统架构设计与实施指南 【免费下载链接】litemall 又一个小商城。litemall Spring Boot后端 Vue管理员前端 微信小程序用户前端 Vue用户移动端 项目地址: https://gitcode.com/gh_mirrors/li/litemall 在数字化转型浪潮中&#xf…

2026/7/15 15:41:10

CANN/Ascend C标准库min函数

min 产品支持情况产品 是否支持 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/7/15 15:41:10

从算力到实用性,全方位解析AI 主机选购指南要点

当下AI绘图、自动化办公、代码生成需求持续上涨,不少用户想要一台适配AI运行的小型设备,却不懂分辨产品优劣,一份完整的AI主机选购指南能够大幅降低踩坑概率。翻阅各类迷你主机排行榜、能打游戏的迷你主机性价比排行榜对比多款产品后&#xf…

2026/7/15 15:36:10

计算机毕业设计之jsp鲜花购物商城系统的设计与实现

当今社会已经步入了科学技术进步和经济社会快速发展的新时期,国际信息和学术交流也不断加强,计算机技术对经济社会发展和人民生活改善的影响也日益突出,人类的生存和思考方式也产生了变化。传统鲜花购物商城采取了人工的管理方法,…

2026/7/14 12:47:32

3步解锁音乐自由:ncmdumpGUI终极NCM文件解密转换指南

3步解锁音乐自由:ncmdumpGUI终极NCM文件解密转换指南 【免费下载链接】ncmdumpGUI C#版本网易云音乐ncm文件格式转换,Windows图形界面版本 项目地址: https://gitcode.com/gh_mirrors/nc/ncmdumpGUI 你是否曾在网易云音乐下载了心爱的歌曲&#…

2026/7/14 19:23:19

CANoe 19 SP3 配置 GB/T 27930-2023 A类系统:3步搭建BMS仿真测试环境

CANoe 19 SP3 配置 GB/T 27930-2023 A类系统:3步搭建BMS仿真测试环境随着新能源汽车行业的快速发展,充电通信协议的标准化和测试验证变得尤为重要。GB/T 27930-2023作为中国智能充电协议的最新版本,对充电机与电动汽车之间的通信提出了更严格…

2026/7/14 18:30:06

3步搞定RTL8852BE驱动:从零开始配置Wi-Fi 6网卡

3步搞定RTL8852BE驱动:从零开始配置Wi-Fi 6网卡 【免费下载链接】rtl8852be Realtek Linux WLAN Driver for RTL8852BE 项目地址: https://gitcode.com/gh_mirrors/rt/rtl8852be 还在为Linux系统无法识别RTL8852BE Wi-Fi 6网卡而烦恼吗?&#x1f…

2026/7/15 0:08:29

【LINUX】驱动

【LINUX驱动】【字符设备】【中断】【Platform】【网课 设备树】【GPIO】【PINCTRL】【INPUT】【IIC】【SPI】【网络驱动】【屏幕驱动】【一 设备树】【二 内核模块编译】【三 基本驱动框架】【四 Platform总线设备驱动框架】【五 驱动子系统】【六 综合】

2026/7/15 0:08:29

【1982-2026】全国高精度建筑轮廓|村级精度|SHP矢量

🔍 数据简介 本次分享1982-2026年全国村级精度建筑轮廓矢量数据,覆盖全国各省市区县,到村级别精细,为2026年最新实时采集成果,非网传仅60/77个城市的老旧数据。 数据含带高度/不带高度双版本,单体建筑边界精…

2026/7/15 0:08:29

【1975-2026】全国水系水路数据|河流/水库/运河|SHP矢量

🔍 数据简介 本次分享1975-2026年全国高精度水系水路矢量数据,覆盖全国全域,包含河流、水系、水库、运河、湿地、冰川、沟渠等全类别水文要素。 数据集包含双层矢量图层,字段分类清晰、要素齐全,支持2013-2026逐年完整…

2026/7/15 13:36:32

3个高效策略:快速掌握Axure中文界面配置

3个高效策略:快速掌握Axure中文界面配置 【免费下载链接】axure-cn Chinese language file for Axure RP. Axure RP 简体中文语言包。支持 Axure 11、10、9。不定期更新。 项目地址: https://gitcode.com/gh_mirrors/ax/axure-cn 还在为Axure RP的英文界面感…