当前位置: 首页 > article >正文

Graph Fusion:一张 512 节点的图怎么压到 120 个以内

Operator Fusion 解决单点算子合并Graph Fusion 在更大范围做整图级别的融合。GE 图引擎收到 ATC 编译好的图后不是直接拿去执行——它先跑一遍图优化流水线常量折叠、算子替换、模式匹配、Buffer 复用把几百个节点的散装图压成几十个高质量的执行单元。ONNX 导出的原始图是算子粒度的。一个 Transformer Block 在 ONNX 里有十几个节点Reshape、Transpose、MatMul、Softmax、Add、LayerNorm。每个节点对应一个 Kernel Launch。Graph Compiler 的任务是在不改变计算语义的前提下把这些节点聚合——减少 Kernel 执行次数、减少中间 Tensor 的 DDR 搬运。GE 的图优化流水线四步走固定顺序第一步常量折叠。把编译期已知的 Shape 计算、常量运算直接算出结果删除对应节点。ONNX 里大量 Shape/Reshape/Gather 节点在这一步被消掉——一个 512 节点的 ResNet 图常量折叠后剩约 350 个。第二步算子替换。把通用 ONNX 算子替换成昇腾原生实现。ONNX 的 Softmax 换成昇腾优化的 SoftmaxV2利用了 Vector Unit 的快速 exp 指令MatMul 换成 GEMM 模板Cube Unit 原生 16×16 乘加。替换不改变语义但换了更高效的 Kernel。第三步模式融合。Graph Fusion 的核心步骤。GE 维护了一张融合规则表——哪些算子组合可以合并、合并成什么、合并的约束条件是什么。不是手写的大部分来自 ATC 编译器的自动推导。第四步Buffer 分配。融合后的图节点大幅减少但每个节点内部计算变复杂。GE 在这一步为每个融合算子分配 L1 Buffer决定哪些中间结果可以复用同一块 Buffer。图优化流水线 ONNX 原始图512 节点 ↓ 常量折叠 350 节点 ↓ 算子替换ONNX → Ascend Native 350 节点Kernel 变更 ↓ 模式融合Graph Fusion 核心 120 节点多算子合并 ↓ Buffer 分配 120 节点 L1 Buffer 规划 生命周期表模式融合的工作机制GE 的融合规则表里每条规则定义了一个算子序列 → 融合算子的映射。比如[LayerNorm, MatMul] → FusedLayerNormMatMul [MatMul, Add] → FusedMatMulAdd [MatMul, GeLU, MatMul] → FusedFFN [Softmax, MatMul] → FusedSoftmaxMatMulGE 遍历图在拓扑顺序上做子图匹配。匹配到一组可融合节点后检查三个约束无分支。中间算子非最后一个的输出不能被多方消费。Shape 兼容。算子之间的 Tensor Shape 必须完全匹配中间没有隐式 Broadcast。精度策略一致。融合链上的所有算子必须接受同一种精度策略——不能一半 FP32、一半 FP16。三个条件都满足GE 创建融合节点替换原来的算子链然后继续往下匹配。贪婪策略——能融就融碰到不满足条件的边界才停。融合图在 Runtime 上的执行融合后的图在 GE 里编译成.om文件。Runtime 加载.om时看到的不是原始 ONNX 算子而是融合后的执行单元。每个执行单元内部包含多个原始算子的计算逻辑——一次aclrtLaunchKernel完成全部运算。以 FusedFFNMatMul GeLU MatMul为例Runtime 看到的 FusedFFN 执行流程 1. aclrtLaunchKernel(FusedFFN, stream_3) 2. Kernel 内部 DDR → L1: 加载输入 Tensor 和权重 W1 Cube Unit: MatMul(input, W1) → L1 Buffer A Vector Unit: GeLU(L1 Buffer A) → L1 Buffer B Cube Unit: MatMul(L1 Buffer B, W2) → L1 Buffer C L1 → DDR: 写回最终输出 3. aclrtSynchronizeStream(stream_3)Runtime 完全看不到中间的 MatMul 和 GeLU——它只知道跑 FusedFFN输入 A 输出 C。中间在 L1 上发生了什么GE 和 Runtime 都不干预。Transformer 推理中的融合效果LLaMA-7B一个 Attention Block 的融合前后融合前14 个独立节点 Reshape_Q → Transpose_Q → MatMul_QK → Softmax → MatMul_SV → Transpose_O → Reshape_O → Add → LayerNorm → MatMul_FFN1 → GeLU → MatMul_FFN2 → Add → LayerNorm → 14 次 Kernel Launch Graph Fusion 后4 个融合节点 FusedAttention → FusedResidual → FusedFFN → FusedResidualNorm → 4 次 Kernel Launch14 次 Launch 变 4 次省 10 次aclrtLaunchKernel约 100μs 8 次中间 DDR 写回约 120μs。32 层累计省约 7ms。总推理延迟从 25ms 降到约 18ms。融合的边界不是融得越多越好。单 Kernel 指令长度超过 L1 指令 Cache64KB时Kernel 开始从 DDR 取指令——延迟从个位数 cycle 跳到上百 cycle。融合规则表里标注了每个融合模式的最大算子数——FusedFFN 最多容纳 5 个原始算子FusedAttention 最多容纳 6 个。超出上限的融合候选被自动回退。参考仓库GE 图引擎ATC 编译工具Runtime 运行时CANN 学习中心

相关文章:

Graph Fusion:一张 512 节点的图怎么压到 120 个以内

Operator Fusion 解决单点算子合并,Graph Fusion 在更大范围做整图级别的融合。GE 图引擎收到 ATC 编译好的图后,不是直接拿去执行——它先跑一遍图优化流水线,常量折叠、算子替换、模式匹配、Buffer 复用,把几百个节点的"散…...

用labview制作的上位机界面的多语言显示

在工控系统中,特别是有国外项目的时候,多语言显示必不可少。labview的控件的显示项里,有一个“标题”项,用标题就可以实现多语言显示,因为在labview中,标签是唯一的,而标题是可以重复的。首先&a…...

AArch64缓存架构解析与性能优化实践

1. AArch64缓存架构基础解析AArch64架构作为ARMv8指令集的64位执行状态,其缓存系统设计体现了现代处理器架构的典型特征。缓存作为CPU与主存之间的高速缓冲存储器,通过存储频繁访问的数据和指令来减少内存访问延迟。在AArch64中,缓存被组织为…...

量子通信技术突破:量子处理器如何提升经典通信容量

1. 量子通信技术的新范式:量子处理器辅助经典通信在传统通信领域,香农极限长期被视为不可逾越的理论边界。然而,量子计算技术的快速发展正在颠覆这一认知。我们团队最新研究发现,通过量子处理器辅助的经典通信系统,可以…...

Agent Harness 系列:为什么你的 Agent 演示很顺、上线就崩?

导读: 同样的模型,换一套外围基础设施,排名从第 30 开外直接冲到第 5——没有改动任何模型权重,没有换更贵的 API。这不是玄学,这是 Agent Harness 的威力。本文是三篇系列的第一篇,从"为什么需要 Har…...

打印机:解决windows打印任务卡死或者打印纸张喷墨不清晰的问题

问题概述买了一台型号较老的HP喷墨打印机,不知道是驱动问题还是打印机有问题,Windows在打印时老出现任务卡死或打印质量不佳(如喷墨不清晰)的问题。解决windows打印任务卡死试过很多种解决方案,大多都是浪费时间&#…...

别急着重装系统!记一次 Ubuntu 22.04 上 gcc 与 cpp 版本依赖冲突的排查与修复实录

从依赖地狱到编译自由:Ubuntu 22.04下gcc与cpp版本冲突的深度修复指南那天下午,当我正准备为新的C项目搭建开发环境时,终端里那行刺眼的红色错误提示让我的咖啡瞬间不香了。作为一个自诩"Linux老司机"的开发者,我没想到…...

统信UOS 20.1060专业版美化全攻略:从桌面到开机GRUB,一张图搞定所有壁纸

统信UOS 20.1060专业版视觉定制指南:全系统美学统一方案当你第一次启动全新安装的统信UOS专业版时,那个默认的蓝色渐变桌面或许会让你感到一丝失望——它专业、稳重,但缺乏个性。作为一名追求效率与美感并存的技术爱好者,我一直在…...

从“画箭头”到1亿播放量:机械工程师梁乐平,如何用CAD绘图书写知识传播新篇章?

一、绘图的开始和许多人一样,梁乐平选择了机械类专业,从广东理工学院毕业后,一头扎进了机械设计与绘图的世界。与别人不同的是,他给自己取了一个颇有传统文人气息的字“金泓”。这个细节,隐约透露着他性格中那份既务实…...

CompressO:重新定义本地视频压缩的三大创新维度

CompressO:重新定义本地视频压缩的三大创新维度 【免费下载链接】compressO Convert any video/image into a tiny size. 100% free & open-source. Available for Mac, Windows & Linux. 项目地址: https://gitcode.com/gh_mirrors/co/compressO 当…...

AI Native 公司构建指南:从 Anthropic 创始人手册到工程实践

【摘要】系统解析 AI Native 公司的本质特征与技术架构,基于 Anthropic 2026 年《创始人行动手册》核心框架,结合 31 家精益 AI 团队的真实案例,提供从想法验证到规模化增长的完整工程落地路径,帮助技术创业者避开 AI 时代特有的创…...

拆解:我们为宁步建设做南京办公室装修GEO的完整步骤与底层思考

很多南京工装老板现在都有一个共同困惑:网站有、文章发、排名有,就是没有精准咨询。本质原因很简单:传统SEO只“做排名”,而现在的AI搜索GEO是“做答案”。用户现在搜【南京1000平办公室装修】【南京产业园工装公司】,…...

17.通杀安卓 /iOS 全机型!Linux 原生刷机方案,EDL 底层救砖 + 自动化源码开源

摘要 本文面向具备基础Linux命令行操作能力的开发者与维修工程师,系统阐述主流品牌Android与iOS设备刷机维修的底层原理与可落地方案。覆盖华为、小米、OPPO、vivo、一加及苹果设备,提供从Bootloader解锁、Recovery刷写、固件烧录到基带修复的完整技术栈。所有操作均基于USB…...

ARM SME架构向量点积指令SVDOT与UDOT深度解析

1. ARM SME架构中的向量点积指令解析在ARMv9架构引入的SME(Scalable Matrix Extension)扩展中,向量点积运算作为核心计算单元获得了显著增强。我最近在优化一个图像卷积算法时,深入研究了SVDOT和UDOT这两条指令的实际表现。与传统…...

AI与精益创业结合驱动产品创新的方法论

1. 人工智能与精益创业方法如何驱动产品创新在当今快速变化的商业环境中,初创企业面临着前所未有的竞争压力。传统产品开发模式往往需要数月甚至数年的周期,投入大量资源后才发现市场并不买账。这种"闭门造车"的方式在数字化时代显得越来越力不…...

Keil RTX5迁移调试问题与RTOS组件使用指南

1. 问题背景与现象分析最近在将项目从CMSIS-RTOS v1(Keil RTX v4.x)迁移到CMSIS-RTOS v2(Keil RTX v5.x)时,发现Vision调试器中的System and Thread Viewer窗口在调试会话中显示空白。这个现象让习惯了通过图形化界面监…...

量子计算误差缓解技术:从原理到实践

1. 量子计算误差缓解技术概述量子计算正从实验室走向实际应用,但噪声问题始终是制约其发展的关键瓶颈。在NISQ(噪声中等规模量子)时代,量子比特数量虽已突破百位大关,但错误率仍居高不下。误差缓解技术(Err…...

兆赫兹X射线光子相关光谱技术原理与应用

1. 兆赫兹X射线光子相关光谱技术概述X射线光子相关光谱(XPCS)作为研究软物质动态特性的重要工具,其核心原理是通过分析相干X射线散射形成的散斑图样随时间的变化来揭示纳米尺度的动力学过程。这项技术的独特之处在于能够探测传统光学方法难以…...

CAXA 引出说明

位置同 CAD 里引线。效果示例设置样式默认样式,GB_引出说明(1984)Tip:如果引线样式需求是和标注样式一致,就使用“标注” 这一个样式就可以了。场景例如,标注比例是 1:4;但有个地方需要用文字引…...

CAXA 查找替换

位置和打开命令属性查找字符输入要查找的文字,例如 “手机”;替换字符输入要替换的文字,例如 “电脑”;搜索范围【默认】整幅图纸。拾取范围1、单击上图 ”拾取范围“ 按钮;提示:2、框选一段范围&#xff1…...

https://pypi.tuna.tsinghua.edu.cn/simple/

清华镜像源 https://pypi.tuna.tsinghua.edu.cn/simple/...

计算机工程投稿经历(2026年5月份录用)

本篇文章记录自己的投稿经历然后一些投稿心得。相信大家完成自己初稿的时候都不知道如何去选择期刊,我也是一样。根据自己的稿件研究方向可以快速筛选期刊,最好的方法就是在知网搜索与自己稿件相关主题相关的文章,本人研究方向是深深度学习方…...

随记-关于当下大学生就业现状的个人感想

近来身边不少人都在讨论,如今不少大学生毕业后选择返乡务工,或是回到家乡工厂就业。前两天和家人通话,也听闻不少人毕业后,最终回乡进厂务工、帮衬家里。昨天大学老师也发来消息,和我聊起当下本科毕业生就业压力大、求…...

002-AI客服-RAG优化分析

文章目录前言项目结构概览与实现状态总结当前状态📊 项目概况🏗️ 技术架构✅ 已实现功能⚠️ 有待修复的问题📝 下一步规划📊 当前 RAG 现状🧭 RAG 优化全景图🥇 强烈推荐的 5 个优化(按性价比…...

差分隐私生成模型实战:从理论保障到隐私攻击与审计评估

1. 项目概述与核心挑战在医疗健康、社会科学研究以及政府统计等领域,处理包含个人敏感信息的表格数据是一项常态。这些数据是宝贵的研究资源,但其使用受到严格的隐私法规(如GDPR、HIPAA等)的约束。传统的数据脱敏或匿名化方法&…...

麒麟服务器等保三级配置实战:从SSH双因子到kysec策略落地

1. 这不是“打补丁”,而是给服务器穿防弹衣:麒麟等保配置的真实定位很多人第一次接触“国产麒麟服务器等保配置”,第一反应是:“不就是改几个密码、关几个端口、装个杀毒软件?”——这种理解,轻则导致测评反…...

UPS不间断电源不工作如何确定是否损坏

故障:加电后不能正常启动,蜂鸣器会有滴滴的响声。不接电瓶,然后拔掉电源线重新插上电源线,长按开机按键3-5秒看看能不能开机;电池灯闪是因为没接电池,然后报 1 4灯故障,机器内部有问题&#x…...

棋牌类网站渗透测试五大高危漏洞实战解析

1. 为什么棋牌类网站总在渗透测试中“反复栽跟头”做渗透测试这十多年,我经手过上百个在线游戏类系统,其中棋牌类网站的漏洞复现率之高、利用链之典型、业务逻辑之“反直觉”,在所有垂直领域里排得上前三。不是它们代码写得最差,而…...

物理生物学研究报告【20260015】

文章目录抛球入框实验报告一、实验目的二、实验装置三、实验方法四、实验结果4.1 无弹跳实验(A组)4.2 允许弹跳实验(B组)五、分析与讨论5.1 无弹跳与弹跳的参数差异5.2 恢复系数的影响5.3 误差来源六、结论七、致谢抛球入框实验报…...

2026最新免费图片去水印保姆级教程!这5种方法一次学会,第三种零门槛秒出图

你是不是也遇到过这种情况?好不容易在小红书、抖音上刷到一张绝美壁纸,保存下来却被水印破坏了整体美感;想把博主分享的干货截图保存,结果那个半透明的Logo刚好挡在关键数据上。别急,今天这篇教程就是为你准备的。 202…...