CANN/asc-devkit NZ2DN矩阵格式转换

发布时间:2026/7/16 11:00:03

CANN/asc-devkit NZ2DN矩阵格式转换
NZ2DN【免费下载链接】asc-devkit本项目是CANN 推出的昇腾AI处理器专用的算子程序开发语言原生支持C和C标准规范主要由类库和语言扩展层构成提供多层级API满足多维场景算子开发诉求。项目地址: https://gitcode.com/cann/asc-devkit特性说明矩阵计算的搬出过程中NZ2DN的核心功能体现为将NZ格式矩阵转化为DN格式矩阵。NZ2DN转化过程可以参考以下伪代码for (int h 0; h dnNum; h) { src_tmp3_addr src h ∗ 16 ∗ sizeof(src_element) ∗ srcNzMatrixStride; dst_tmp3_addr dst h ∗ sizeof(dst_element) ∗ dstDnMatrixStride; for (int i 0; i ceil(nSize / 16); i) { src_tmp2_addr src_tmp3_addr i ∗ sizeof(src_element) ∗ 16 ∗ srcStride; dst_tmp2_addr dst_tmp3_addr i ∗ sizeof(dst_element) ∗ 16 ∗ dstStride; for (int j 0; j 16; j) { if (i ∗ 16 j nSize) { src_block_addr src_tmp2_addr j ∗ sizeof(src_element); dst_block_addr dst_tmp2_addr j ∗ sizeof(dst_element) ∗ dstStride; for (int k 0; k mSize; k) { src_ele_addr src_block_addr k ∗ sizeof(src_element) ∗ 16 ∗ srcNzC0Stride; dst_ele_addr dst_block_addr k ∗ sizeof(dst_element); } } } } }伪代码使用的参数具体说明如下src表示源操作数搬运的起始地址。dst表示目的操作数搬运的起始地址。源操作数每个NZ矩阵的起始地址为src_tmp3_addr。目的操作数每个DN矩阵的起始地址为dst_tmp3_addr。源操作数NZ矩阵以每16列为一组数据每一组数据的起始地址为src_tmp2_addr。目的操作数DN矩阵以每16行为一组数据每一组数据的起始地址为dst_tmp2_addr。在上述源自NZ矩阵的每一组数据中再以每列元素为一组数据每一组数据的起始地址为src_block_addr。在上述源自DN矩阵的每一组数据中再以每行元素为一组数据每一组数据的起始地址为dst_block_addr。src_ele_addr为NZ矩阵一列的每个元素的地址dst_ele_addr为DN矩阵一行的每个元素的地址二者为一一对应关系对应完成NZ2DN格式转换。以下参数为NZ2DN用户可配置参数含义取值范围参见Fixpipe搬运参数FixpipeParamsArch3510dnNum表示需要做NZ2DN转化的矩阵个数。mSize与nSize分别表示矩阵m方向和n方向上的维度。srcStride表示源NZ矩阵中相邻Z排布的起始地址之间的间隔单位为C0_Size。dstStride表示目的DN矩阵每一行中的元素个数单位为element。srcNzMatrixStride表示不同源NZ矩阵的起始地址的间隔单位为C0_Size。dstDnMatrixStride表示相邻目的DN矩阵起始地址间的间隔单位为element。srcNzC0Stride表示源矩阵NZ分形相邻行的地址偏移为单位为C0_Size。特性约束当开启Channel Split/Channel Merge功能NZ2NZ时此功能不可用。当L0C Buffer搬运到UB开启双目标模式时此功能不可用。目标操作数地址之间不能重叠。使用示例如下图所示在L0C Buffer中有两个NZ格式的矩阵每个矩阵N方向上维度为32M方向上维度为48经过NZ2DN转换将数据格式变为右部分所示排布。图1NZ2DN示意图对于该场景可以通过配置intriParams结构体参数实现上图的效果dnNum 2表示需要做NZ2DN转化的矩阵个数为2。nSize 32表示源NZ矩阵在N方向上的大小为32个元素。mSize 48表示源NZ矩阵在M方向上的大小为48个元素。srcStride 80表示源NZ矩阵中相邻Z排布的起始地址之间的间隔为80 * C0_Size(C0_Size 16*sizeof(T)T为操作数的数据类型)字节。dstStride 80表示目的DN矩阵每一行中的元素个数为80。srcNzMatrixStride 240表示不同源NZ矩阵的起始地址的间隔为240 * C0_Size。dstDnMatrixStride 48 * 80表示相邻目的DN矩阵起始地址间的间隔为48 * 80 3840个元素40为间隔行数80为dstStride 每行的元素个数。srcNzC0Stride 1表示源矩阵NZ分形相邻行的地址偏移为1 * C0_Size。【免费下载链接】asc-devkit本项目是CANN 推出的昇腾AI处理器专用的算子程序开发语言原生支持C和C标准规范主要由类库和语言扩展层构成提供多层级API满足多维场景算子开发诉求。项目地址: https://gitcode.com/cann/asc-devkit创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

5分钟快速上手foobox-cn:打造你的专属音乐播放器界面

5分钟快速上手foobox-cn:打造你的专属音乐播放器界面

2026/7/16 11:00:03

5分钟快速上手foobox-cn:打造你的专属音乐播放器界面 【免费下载链接】foobox-cn DUI 配置 for foobar2000 项目地址: https://gitcode.com/GitHub_Trending/fo/foobox-cn 还在使用foobar2000那过于朴素的默认界面吗?想要一个既美观又功能强大的音…

泰克DPO7354C示波器维修北光恒电指南

泰克DPO7354C示波器维修北光恒电指南

2026/7/16 11:00:03

泰克DPO7354C是7000系列经典高端机型,3.5GHz超高带宽搭配四通道设计,波形捕获能力强劲,广泛应用于高速数字信号测试、射频电路调试、车载精密电子、电源完整性分析等高端研发场景。凭借扎实的硬件品质和精准的测试性能,这款机型长…

3大核心模块解锁:如何用KKManager重塑你的Illusion游戏体验

3大核心模块解锁:如何用KKManager重塑你的Illusion游戏体验

2026/7/16 11:00:03

3大核心模块解锁:如何用KKManager重塑你的Illusion游戏体验 【免费下载链接】KKManager Mod, plugin and card manager for games by Illusion that use BepInEx 项目地址: https://gitcode.com/gh_mirrors/kk/KKManager 你是否曾在数百个游戏模组中迷失方向…

Qoder Agent与Quest模式:重构AI编程的思维操作系统

Qoder Agent与Quest模式:重构AI编程的思维操作系统

2026/7/16 12:10:06

1. 这不是又一个“AI编程助手”测评:Qoder让我重新理解了“写代码”的起点 我上个月把主力开发环境从 VS Code 原生工作流,彻底切换成 Qoder,不是因为被广告洗脑,也不是赶时髦——是连续三天在凌晨两点对着一个 Vue 组件的响应式更…

OpenAI CodeX自定义API接入与配置实战指南

OpenAI CodeX自定义API接入与配置实战指南

2026/7/16 12:10:06

1. 项目概述:自定义API接入OpenAI CodeX的核心价值在当今AI辅助编程工具爆发的时代,CodeX作为OpenAI推出的专业级代码生成引擎,其原生API调用方式往往存在地域限制和网络稳定性问题。通过自定义API接入方案,开发者可以突破这些限制…

GitHub Copilot SDK 深度集成指南:从流式会话到生产落地

GitHub Copilot SDK 深度集成指南:从流式会话到生产落地

2026/7/16 12:10:06

1. 项目概述:这不是“加个插件”,而是把 Copilot 的大脑装进你的软件里 “技术速递|使用 GitHub Copilot SDK 将智能体集成到任何应用中”——这个标题里藏着一个被严重低估的信号。它不是教你如何在 VS Code 里开启 Copilot 的自动补全&…

抖音批量下载终极指南:5分钟搞定无水印视频、音乐、合集完整解决方案

抖音批量下载终极指南:5分钟搞定无水印视频、音乐、合集完整解决方案

2026/7/16 12:10:06

抖音批量下载终极指南:5分钟搞定无水印视频、音乐、合集完整解决方案 【免费下载链接】douyin-downloader A practical Douyin downloader for both single-item and profile batch downloads, with progress display, retries, SQLite deduplication, and browser …

智能体开发指南:从LLM原理到多智能体系统实战

智能体开发指南:从LLM原理到多智能体系统实战

2026/7/16 12:10:06

1. 项目概述:Hello-Agents的诞生与使命2025年被业界普遍认为是"智能体元年"的起点。当大语言模型的基础能力趋于成熟,技术焦点自然转向如何让AI系统具备自主决策和持续进化的能力。Datawhale社区推出的《Hello-Agents》项目,正是为…

VisionFive RISC-V开发板评测与开发实践

VisionFive RISC-V开发板评测与开发实践

2026/7/16 12:00:06

1. VisionFive开发板初印象:开箱与硬件解析当我拆开赛昉科技昉星光RISC-V单板计算机的包装时,第一感觉是这款VisionFive开发板的工业设计相当考究。静电袋包装的主板尺寸为85mm100mm,与树莓派4的板型相近,但布局更为紧凑。板载的J…

Unity游戏文本翻译架构深度解析:XUnity.AutoTranslator的技术实现与工程实践

Unity游戏文本翻译架构深度解析:XUnity.AutoTranslator的技术实现与工程实践

2026/7/16 0:35:09

Unity游戏文本翻译架构深度解析:XUnity.AutoTranslator的技术实现与工程实践 【免费下载链接】XUnity.AutoTranslator 项目地址: https://gitcode.com/gh_mirrors/xu/XUnity.AutoTranslator XUnity.AutoTranslator作为Unity游戏社区中最成熟的文本翻译解决方…

openEuler Raspberry Pi Kernel设备驱动开发指南:为树莓派硬件添加支持

openEuler Raspberry Pi Kernel设备驱动开发指南:为树莓派硬件添加支持

2026/7/13 20:43:19

openEuler Raspberry Pi Kernel设备驱动开发指南:为树莓派硬件添加支持 【免费下载链接】raspberrypi-kernel It provides openEuler kernel source for Raspberry Pi 项目地址: https://gitcode.com/openeuler/raspberrypi-kernel 前往项目官网免费下载&…

openEuler系统集成测试实战:基于smoke-test套件的环境验证技巧

openEuler系统集成测试实战:基于smoke-test套件的环境验证技巧

2026/7/15 0:26:43

openEuler系统集成测试实战:基于smoke-test套件的环境验证技巧 【免费下载链接】integration-test The repo contains test suits for system integration test 项目地址: https://gitcode.com/openeuler/integration-test 前往项目官网免费下载:…

Python实现跨境电商商品图批量翻译教程

Python实现跨境电商商品图批量翻译教程

2026/7/16 0:09:31

一、问题引入做跨境电商的卖家朋友,你是否遇到过这样的困扰?每次上架新品到亚马逊、Shopee或Lazada等平台,都需要处理大量商品图片的多语言版本。比如上架200款衣服,每款需要翻译成英语、日语、韩语等5种语言,这意味着…

跨境电商多语言商品图翻译方案实现

跨境电商多语言商品图翻译方案实现

2026/7/16 0:09:31

一、问题引入对于做跨境电商的卖家来说,多语言商品图的制作一直是令人头疼的环节。当你准备在亚马逊、Shopee、Lazada等多个平台同步上架新品时,首先遇到的就是图片翻译问题。以一位做家居用品的卖家为例,他需要将200张商品图片中的英文文案全…

Windows系统文件d3dx9_36.dll丢失找不到问题解决

Windows系统文件d3dx9_36.dll丢失找不到问题解决

2026/7/16 0:09:31

在使用电脑系统时经常会出现丢失找不到某些文件的情况,由于很多常用软件都是采用 Microsoft Visual Studio 编写的,所以这类软件的运行需要依赖微软Visual C运行库,比如像 QQ、迅雷、Adobe 软件等等,如果没有安装VC运行库或者安装…