- 博客(205)
- 收藏
- 关注
原创 CANN-昇腾NPU-模型压缩-剪枝和蒸馏怎么用
本文介绍了模型压缩的两种关键技术——剪枝和蒸馏,及其在昇腾NPU上的联合应用。剪枝通过移除权重矩阵中不重要的连接(结构化剪枝可去除整个神经元或attention head)来减小模型规模;蒸馏则利用大模型指导小模型训练。实验表明,联合使用这两种方法可将7B模型压缩至4B,精度损失控制在3%以内。文章还提供了具体的代码实现方案,包括结构化剪枝25%的attention head和KL散度蒸馏训练流程。最后指出,结合量化技术可进一步将模型压缩至2.5GB,适用于边缘设备部署。当前昇腾NPU对动态head数的支持
2026-05-23 14:37:46
103
原创 CANN-昇腾NPU-模型量化-W4A16和W8A8怎么选
摘要:模型量化主要有W4A16(权重4bit,激活fp16)和W8A8(权重和激活8bit)两种方案。W4A16显存占用最小(Llama2-7B从14GB降至4GB),精度损失小(0.3-0.8%),适合显存受限场景;W8A8速度最快(吞吐提升1.8-2.0倍),但显存占用较大(7GB),精度损失更高(1.0-2.0%)。选择方案需根据需求:显存受限选W4A16,速度优先选W8A8。W4A16的group_size可调优,128为平衡选择。昇腾NPU上W8A8有硬件加速优势。
2026-05-23 14:37:39
171
原创 CANN-昇腾NPU-推理延迟优化-首token延迟怎么压到100ms以内
本文探讨了如何将大模型推理的首token延迟(TTFB)优化至100ms以内。通过分析Llama2-7B在昇腾NPU上的性能瓶颈,提出四项关键优化:1)采用FlashAttention V2实现2倍加速;2)FFN层算子融合提升28%性能;3)Prompt Cache缓存系统提示节省10-20ms;4)Chunked Prefill技术将长序列处理的首token响应从280ms降至85ms。实验显示,512 tokens的TTFB从245ms降至75ms,满足对话系统对响应速度的严苛要求。优化效果随batc
2026-05-23 14:37:16
185
原创 CANN-昇腾NPU-多机推理-跨机房怎么部署
摘要:本文探讨了昇腾NPU跨机房部署大模型的解决方案。针对单机8卡不足的情况,分析了Tensor Parallel(TP)在跨机房场景下的通信瓶颈(带宽仅50%、延迟高10000倍),提出Pipeline Parallel(PP)和Data Parallel(DP)两种方案。PP通过分层跨机房传输激活值减少通信量,DP则完全避免跨机房通信但显存需求高。文章推荐混合方案(DP+PP)并给出不同规模模型的具体部署建议:70B模型推荐纯DP,405B模型建议PP+DP混合。最后强调跨机房网络需满足100GbE带宽
2026-05-23 14:37:11
80
原创 CANN-昇腾NPU-模型加密-怎么保护知识产权
本文介绍了使用CANN工具加密AI模型的方法,以保护模型在客户机房部署时不被反编译或权重提取。主要内容包括:1)加密流程,将.pt/.onnx模型转换为加密的.om格式;2)密钥管理方案,包括机器绑定、非绑定和远程密钥服务三种方式;3)性能影响分析,显示加密仅增加模型加载时间(约24%),不影响推理速度;4)使用限制和注意事项,如仅支持离线模型、密钥绑定MAC地址等。文章还提供了ATB框架下的加密模型加载示例,强调密钥安全保管的重要性。
2026-05-23 14:37:04
185
原创 CANN-昇腾NPU-模型量化-W8A8训练-怎么在训练时用int8
摘要:CANN的QAT-W8A8方案在训练时采用int8权重和激活,节省37%显存并提速70%。其核心原理是前向传播模拟量化误差,反向传播保持fp16梯度精度。相比PTQ量化,QAT精度损失更小(<1%),且可与LoRA结合使用。实现上通过伪量化包装模型,需校准数据集统计激活分布。训练后模型可直接部署为int8推理,吞吐提升1.8倍。该方案平衡了量化效率与模型精度,适用于大模型训练场景。
2026-05-23 14:36:42
217
原创 CANN-昇腾NPU-多机多卡-怎么把16卡用出32卡的效果
本文介绍了提升Atlas 800I A2 NPU利用率的方法,将16张卡的等效算力提升38%。通过分析发现原始利用率仅64%,主要损耗来自通信开销(12%)、显存搬运(8%)等。提出了五项优化:1)通信计算重叠(MC2)降低通信开销;2)Double Buffer并行数据搬运;3)静态Shape编译减少重复编译;4)激进算子融合降低调度开销;5)自动调优Batch Size。综合优化后利用率提升至88%,等效22卡算力。配合AOE自动调优可进一步提升至90-92%,实现16卡发挥25-26卡的效果。
2026-05-23 14:36:08
354
原创 CANN-昇腾NPU-推理服务高可用-怎么做到99.99%可用性
本文介绍了在昇腾NPU上实现99.99%高可用推理服务的关键技术。主要内容包括:通过进程级、容器级和机器级三级故障隔离机制,确保单点故障不影响整体服务;设计NPU状态、模型加载和推理功能的健康检查;支持NPU故障时自动降级到CPU的容错机制;采用Kubernetes滚动更新实现零宕机部署。实测表明,该方案可将年宕机时间控制在30分钟左右,达到99.994%的可用性目标。完整实现代码已开源。
2026-05-23 14:35:52
249
原创 CANN-昇腾NPU-持续预训练-怎么用领域数据继续训练
摘要:持续预训练(CPT)通过领域数据扩展基座模型的专业能力,与微调形成互补。CPT需要大规模领域文本(100M-1B tokens),采用无监督训练目标,可扩展词表并内化领域知识。关键技术包括:1)保持与预训练相同的数据格式;2)使用较低学习率(1e-5);3)通过混合通用数据或LoRA防止灾难性遗忘;4)在昇腾NPU上采用ZeRO-3分布式训练。评估显示优质CPT可使领域性能提升10-30%而通用能力下降<3%。该方法特别适用于医疗、法律等专业领域。
2026-05-23 14:35:32
220
原创 CANN-昇腾NPU-推理服务监控-怎么实时监控NPU状态
本文介绍了CANN提供的两种NPU监控方案:命令行工具npu-smi和Python API。npu-smi可快速查看NPU利用率、显存、温度和功耗等状态,支持实时刷新。Python API则适合集成到推理服务中,通过后台线程定期采集监控数据。对于线上服务,建议使用Prometheus+Grafana构建监控系统,并设置关键告警规则(如利用率过低、显存不足等)。文章还提供了常见问题排查方法(如利用率低、显存泄漏等)和日志集成方案。两种监控方案互为补充,共同确保推理服务的稳定运行。
2026-05-23 14:33:43
312
原创 CANN-昇腾NPU-Speculative-Decoding-昇腾NPU上怎么用小模型加速大模型推理
摘要:Speculative Decoding利用小模型生成候选token,大模型并行验证,在昇腾NPU上实现高效加速。该方法将单token解码转为多token预填充,使NPU的batch GEMM利用率提升3.5倍。关键因素是小模型的接受率需高于60%,同架构小模型可提升10-15%接受率。在8卡Atlas 800I A2上,虽然显存减少29%,但吞吐可提升2-3倍。动态调整K值和提高小模型温度可进一步优化性能。
2026-05-22 12:33:03
65
原创 CANN-昇腾NPU显存优化-大模型推理怎么把64GB用出128GB的感觉
这篇技术文章详细介绍了如何在昇腾NPU上优化大模型推理的显存使用。文章从显存分布分析入手,逐步讲解了五种优化方法:KV Cache分页分配、fp8压缩、权重W8A16量化、权重分片加载和共享权重。通过这些优化组合,作者展示了如何将Llama2-7B模型的显存使用效率提升近一倍,从96K token并发提升到197K。文章还针对不同规模的模型(7B/13B/70B)给出了具体的部署建议,强调优化顺序应为先提升KV Cache效率,再压缩KV Cache,最后压缩权重。这些优化技术使得64GB显存能够处理更大规
2026-05-22 12:33:00
243
原创 CANN-昇腾NPU分布式训练-8卡到64卡怎么线性扩展
本文分析了昇腾NPU上分布式训练的扩展效率问题。实验显示,64卡训练Llama2-7B时,纯张量并行(TP)的扩展效率仅42%,主要因跨机通信开销占比高达95%。通过采用数据并行(DP)+TP混合策略(4卡TP+16组DP),结合通信计算重叠和8bit梯度压缩,可将64卡扩展效率提升至86%。实测表明,混合并行策略显著优于纯TP方案,在16/32/64卡配置下分别实现97%/92%/86%的扩展效率。对于超大规模训练,建议采用单机内TP+跨机DP的组合,并配合梯度累积等优化技术。
2026-05-22 12:32:53
100
原创 CANN-昇腾NPU混合精度训练-bf16和fp16选哪个更省心
摘要:本文对比了昇腾NPU上fp16和bf16两种混合精度训练方式的差异。bf16具有与fp32相同的数值范围,不易溢出且无需Loss Scaling,训练更稳定;fp16精度更高但需调参防止梯度溢出。实验显示bf16训练速度仅比fp16慢2%,最终loss相近。建议大模型预训练和微调优先选择bf16,可减少调参复杂度。CANN融合算子同时支持两种精度,转换灵活。总体而言,bf16在昇腾NPU上具有更好的易用性和稳定性优势。
2026-05-22 12:32:15
150
原创 CANN-昇腾NPU训练-从零到一用Ascend-C写训练融合算子
本文介绍了使用Ascend-C编写训练融合算子的方法,以GEMM + SiLU为例。训练算子需要支持前向和反向传播,关键点包括:1) 保存前向中间结果用于反向计算;2) 实现反向传播kernel;3) 注册PyTorch自动微分。文章详细展示了forward和backward kernel的实现代码,其中backward需要计算三个梯度。通过融合算子,Llama2-7B训练可获得27%的速度提升(forward快33%,backward快25%),且不增加额外显存开销。最后提供了相关代码仓库地址。
2026-05-22 12:29:27
186
原创 CANN-昇腾NPU长序列训练-128K上下文怎么不OOM
本文探讨了Llama3支持128K上下文长度的训练技术挑战与解决方案。通过FlashAttention将显存需求从O(N²)降至O(N),配合选择性激活重计算和序列并行(SP)技术,实现了128K长序列的高效训练。其中FlashAttention将每层显存从32GB降至1GB;选择性重计算平衡显存与速度;SP技术将LayerNorm激活显存降至1/8。最终在8卡Atlas 800I A2上,结合4卡张量并行,成功实现了Llama2-7B模型128K序列的训练配置,显存利用率达512GB,为长序列训练提供了可
2026-05-22 12:28:54
156
原创 CANN-昇腾NPU-checkpoint-训练中断后怎么快速恢复
本文探讨了大模型训练中Checkpoint保存与恢复的优化策略。针对训练中断问题,介绍了同步和异步保存方法,其中异步保存通过后台线程写入可减少60-120秒的阻塞时间,但需额外14GB CPU内存。分析了不同保存频率的权衡(1000步/次可平衡0.03%开销与恢复速度)。在分布式训练中,建议采用分片保存提高I/O并行度,并通过dist.barrier()确保多卡一致性。恢复训练约需30-60秒。这些方法可有效降低训练中断带来的时间损失。
2026-05-22 12:28:39
214
原创 CANN-昇腾NPU梯度累积-显存不够时怎么模拟大batch训练
本文介绍了大模型训练中的梯度累积技术。当显存不足时,通过多次小批量前向传播累积梯度再统一更新参数,等效于大批量训练。关键实现要点包括:1) 损失值除以累积步数;2) 累积期间不清零梯度。该方法可减少75%的激活显存,仅增加参数量的梯度存储开销。文章还分析了梯度累积与DDP、MC2等技术的兼容性,指出在bf16精度下差异可忽略。梯度累积已成为大模型训练的标准操作,实现简单且效果可靠。
2026-05-22 12:28:21
223
原创 CANN-昇腾NPU部署架构-从单卡到千卡的推理服务怎么搭
本文介绍了从单卡到千卡规模的昇腾NPU推理服务架构演进。单卡架构简单直接,8卡采用Tensor Parallel模式。多节点架构需要智能调度器,提出了三种请求分配策略,其中预估KV Cache占用的策略最优。Prefill-Decode分离架构将计算密集和内存密集任务分离,提高资源利用率。千卡规模需考虑故障隔离、热更新、弹性扩缩和监控告警。文章指出8卡以内可用ATB自带调度,更大规模需要外部调度器,Prefill-Decode分离是未来方向。
2026-05-22 12:27:37
236
原创 CANN-昇腾NPU精度对比-昇腾NPU和NVIDIA-GPU推理结果差多少
摘要:昇腾NPU与NVIDIA GPU在Llama2-7B模型推理时存在微小精度差异,主要源于Softmax实现、GEMM累加顺序和GELU/SiLU近似三个方面的不同。实测显示token一致率达98-99%,logits平均差异0.005-0.01,主要影响概率接近的候选token排序。业务场景中对话、代码生成等基本不受影响,但评测集打分可能波动0.1-0.3%。如需严格对齐可采用float32推理、固定随机种子或逐层对比定位,但大多数场景无需额外处理。
2026-05-22 12:25:30
426
原创 CANN-Ascend-C入门-昇腾NPU上写第一个自定义算子
本文介绍了在昇腾NPU上使用Ascend C语言开发自定义算子的完整流程。首先需要配置CANN开发环境,然后通过一个向量加法算子的示例,详细说明了Kernel编写、Tiling函数实现、算子注册和编译的步骤。文章对比了Ascend C与CUDA C的关键差异,指出Ascend C采用SIMD模型,需要将线程级逻辑改写为向量级操作。开发重点在于理解HBM、L2、L1、LocalTensor四级缓存的使用方式。完成环境搭建后,有CUDA开发经验的开发者可在2-3天内完成迁移。
2026-05-21 09:38:01
45
原创 CANN-opbase-Tiling框架详解-昇腾NPU算子分块参数怎么算才对
本文详细介绍了昇腾NPU算子开发中的Tiling框架,用于解决大矩阵计算时的片上缓存限制问题。文章阐述了Tiling函数的输入输出结构、分块参数计算规则(需考虑L1缓存容量限制)、多套Tiling策略的实现方法(针对不同规模矩阵)、对齐要求(16的倍数)以及AOE自动调优工具的使用。作者强调Tiling是Ascend C开发中最易出错的环节,建议遵循对齐、不超L1容量、大矩阵多策略三个原则,并从小矩阵开始测试验证。
2026-05-21 09:36:44
110
原创 CANN-Ascend-C流水线编程-昇腾NPU上Cube和Vector怎么协作
本文介绍了昇腾NPU上Cube和Vector计算单元的流水线协作机制。通过分析FlashAttention算子的执行流程,指出传统串行方式会导致计算单元利用率低下(Cube 86%,Vector 14%)。文章详细阐述了采用TPipe编程模型实现流水线的方法,包括使用三重缓冲技术(Triple Buffer)来重叠Cube和Vector的计算,使Cube利用率提升至95%,Vector利用率提升至60%。关键点包括:1) 分块处理数据;2) 多缓冲机制避免等待;3) 通过pipe_barrier确保数据同步
2026-05-21 09:36:04
119
原创 CANN-opbase-昇腾NPU算子开发的基础设施为什么这么重要
摘要:CANN-opbase是昇腾NPU算子开发的基础设施,为算子注册、编译和调度提供核心支持。它包含四大关键组件:1)算子注册框架,定义算子接口;2)Tiling框架,管理分块参数计算;3)编译工具链,将Ascend C编译为NPU可执行文件;4)运行时接口,实现算子与CANN交互。开发者通过标准化流程注册算子、实现Tiling函数,并利用预置工具链编译,最终生成NPU可执行的.so文件。opbase作为CANN算子生态的基础层,简化了自定义算子开发流程,是昇腾NPU算子开发的必经之路。
2026-05-21 09:35:50
183
原创 CANN-ATB部署实战-昇腾NPU从模型下载到推理上线的完整Checklist
本文提供了昇腾NPU上ATB推理服务的完整部署Checklist,涵盖环境确认、显存规划、配置文件、编译缓存、健康检查、监控埋点和滚动升级等关键环节。重点包括:计算KV Cache显存占用(如Llama2-7B单token约512KB)、首次编译缓存管理(约2GB/模型)、健康检查指标(NPU利用率<95%)以及监控指标(TTFT<500ms)。特别强调升级时需采用滚动部署避免服务中断,并提供了常见OOM、精度异常等问题的解决方案。通过合理的显存分配和缓存配置可确保推理服务稳定上线。
2026-05-21 09:35:47
191
原创 CANN-ATB多卡推理-昇腾NPU上Llama70B怎么切到8张卡
摘要:Llama2-70B模型在昇腾NPU上通过ATB框架实现8卡Tensor Parallel推理。模型权重和KV Cache按Attention头数(head)和FFN维度(ff_dim)切分到各卡,每层进行2次All-Reduce通信(总延迟约3.2ms)。ATB自动处理权重加载和切分,8卡配置下单卡显存占用降至35GB,解码速度达2400 tokens/s。相比Pipeline Parallel,Tensor Parallel更适合昇腾NPU的高带宽互联特性。使用方法仅需设置tensor_paral
2026-05-21 09:35:41
108
原创 CANN-HCCL-昇腾NPU分布式训练的通信库怎么选
摘要 HCCL是昇腾NPU的分布式通信库,支持All-Reduce、All-Gather等通信原语,在Atlas 800I A2上单机通过HCCS互联(200GB/s),跨机通过RoCE(100GB/s)。相比NCCL,HCCL提供相似的接口但针对昇腾硬件优化,支持Ring和Tree两种All-Reduce算法:Ring适合单机高带宽场景,Tree适合跨机低延迟场景。ATB框架利用HCCL实现Tensor Parallel推理,通过通信计算重叠、Reduce-Scatter替代等技术优化性能。实际部署需确保
2026-05-21 09:35:32
424
原创 CANN-Ascend-C调试技巧-昇腾NPU算子出了bug怎么查
昇腾NPU算子调试技巧摘要 本文介绍了三种调试Ascend C算子的方法:1)与标准实现逐层对比快速定位差异;2)通过HBM转储中间结果;3)使用CPU模拟器逐步执行并打印调试信息。文章还总结了常见Bug模式,如Tiling参数溢出、Global Buffer偏移错误等,并提供了标准调试流程:先缩小输入规模,用CPU模拟定位问题,修复后恢复原始规模验证。调试关键在于利用现有工具组合,最小化输入变量,逐步排查问题。
2026-05-21 09:35:00
205
原创 CANN-Ascend-C存储体系-昇腾NPU的四级缓存怎么用才算对
昇腾NPU的四级存储体系(HBM/L2/L1/Local Buffer)对算子性能至关重要。文章分析了各级存储的带宽差异(最高达20倍),并指出数据搬运策略是性能优化的关键。重点介绍了DMA搬运和自动搬运的区别,以及Double Buffer技术如何实现计算与搬运重叠。同时列举了三种常见性能反模式:计算完再搬运导致L1溢出、非对齐搬运降低效率、L1缓存未复用造成重复读取。掌握四级存储层次关系和Double Buffer技术可使算子性能达到80分以上。
2026-05-21 09:34:28
255
原创 CANN-ATB量化推理-昇腾NPU上W8A8量化为什么比W4A16更实用
昇腾NPU上W8A8量化比W4A16更实用的原因:W8A8在Llama2-70B模型上实现2倍压缩(4卡即可运行),精度损失仅0.1-0.5%,且利用NPU的int8 GEMM算力优势,解码速度比fp16提升16%。而W4A16虽然压缩比达4倍,但反量化开销大导致速度下降,且精度损失显著(GSM8K任务下降5.6%)。ATB量化工具支持多种方案,其中W8A8在显存节省、计算效率和精度保持上达到最佳平衡,是当前昇腾NPU上性价比最高的量化选择。
2026-05-21 09:33:16
441
原创 CANN-ops-nn和ops-transformer-昇腾NPU两个算子仓库怎么分工
摘要:CANN中的ops-nn和ops-transformer算子仓库分工明确。ops-nn提供通用神经网络基础算子,适用于各类模型;ops-transformer则专注于Transformer架构的融合算子优化。实际调用时,系统会优先检查是否满足融合条件,自动选择最优实现。大模型推理、长序列等场景必须使用ops-transformer以获得显著性能提升,而小模型调试等场景使用ops-nn即可。两个仓库形成完整算子体系,共同支撑昇腾NPU的高效计算。
2026-05-20 18:29:41
76
原创 CANN-ops-nn-昇腾NPU基础算子库从装到跑全流程
本文介绍了昇腾NPU基础算子库ops-nn的完整使用流程。首先确认CANN、torch_npu和NPU设备环境正常,然后克隆并编译ops-nn项目。通过示例验证LayerNorm和Linear+SiLU融合算子的功能,并对比标准实现与融合实现的性能差异(加速比1.3-1.5x)。文章还说明了ops-nn与ATB推理服务的自动集成,以及自定义模型使用ops-nn的三个关键点:确保输入张量连续、使用float16精度和启用torch.compile优化。最后提供了项目仓库地址。
2026-05-20 18:29:36
44
原创 CANN8.5-ops-nn新融合算子-昇腾NPU推理加速又多了几把刷子
CANN 8.5在ops-nn仓库中新增了三个重要功能:RMSNorm+残差融合算子、Linear+GELU融合接口和LayerNorm动态shape支持。前两项优化显著提升推理性能,RMSNorm融合使Llama2-7B的decode速度提升15%,Linear+GELU融合使BERT-base FFN层加速24%。动态shape支持解决了不同输入长度需要重复编译的问题,将首次编译延迟从2秒降至0.5秒。这些更新主要针对NLP模型推理场景,特别是Llama和BERT类模型,对训练和CV模型影响较小。建议相
2026-05-20 18:29:34
214
原创 CANN-ops-math-昇腾NPU上那些不起眼但无处不在的数学算子
本文介绍了昇腾NPU生态中基础数学算子库ops-math的关键作用。作为CANN算子架构的最底层,ops-math优化了Softmax、ReduceSum、Exp等基础数学运算,这些算子虽小但影响深远,其性能直接决定上层算子如FlashAttention的表现。文章重点分析了Softmax算子的优化策略,通过减少HBM访问次数实现3倍加速,并解释了类型转换算子如何利用DMA引擎提升效率。ops-math作为原子计算层,为整个昇腾NPU算子生态提供了数值精度、性能和硬件适配的基础保障,是上层算子性能的天花板所
2026-05-20 18:29:28
167
原创 CANN-ops-math随机数生成-昇腾NPU上Dropout和采样背后的赌场
摘要:昇腾NPU的ops-math模块采用Philox算法实现高效并行随机数生成,解决了AI训练和推理中的关键需求。在训练场景中,Dropout算子融合随机数生成、掩码和缩放操作,提升3-5%的训练速度;推理时Top-P采样通过并行计算累积概率分布实现高效token选择。该实现通过PractRand和TestU01测试,统计质量与CPU随机数相当,同时支持种子设置确保训练可复现性。这些优化显著提升了昇腾NPU在深度学习任务中的性能表现。
2026-05-20 18:29:23
302
原创 CANN-ops-math高精度Softmax-昇腾NPU上float32归一化为什么不能省
摘要:大模型推理中Softmax运算必须使用float32而非float16,主要原因是float16的指数运算容易溢出且精度不足。float16在减最大值时会产生较大误差,导致后续exp运算精度下降4%,而float32误差仅1e-6量级。昇腾NPU的ops-math实现通过两次高效Cast保持高精度计算,FlashAttention也保留这一步骤。bf16虽无溢出问题但精度不足,仍需float32计算。性能测试显示float32版本仅慢15%但精度提升显著,是必要选择。
2026-05-20 18:29:14
321
原创 CANN-ops-blas-昇腾NPU上MatMul的Tiling为什么决定一切
《昇腾NPU矩阵乘法性能优化核心:Tiling策略解析》 摘要:在昇腾NPU上,矩阵乘法(GEMM)的性能瓶颈并非计算速度,而是数据搬运效率。Tiling策略决定了如何将大矩阵分块以适应Cube单元的1MB片上缓存,成为性能优化的关键。文章分析了三种典型Tiling模式:大块模式(60%利用率)、长条模式(85%利用率)和双缓冲模式(95%+利用率),其中ops-blas默认采用双缓冲模式。通过AOE自动调优工具可进一步提升性能20-40%,特别适用于固定shape的推理场景。研究显示,在Atlas 800
2026-05-20 18:28:55
381
原创 CANN-ops-math推理优化-昇腾NPU数学算子调优实战
《昇腾NPU数学算子调优实战:优化大模型推理性能》 本文针对大模型推理中的数学算子性能瓶颈进行深入分析,以Llama2-7B为例展示了优化实践。通过CANN Profiler工具发现,ReduceMean、Softmax、Cast等数学算子可能占用10-15%的推理时间。文章详细介绍了三种关键优化方法:1)确保Softmax走优化路径,将三次HBM读取压缩为一次;2)使用fused_add_rms_norm融合ReduceMean运算;3)消除不必要的Cast转换操作。优化后,数学算子时间占比从8.9%降至
2026-05-20 18:19:40
210
原创 CANN-ops-math类型转换算子-昇腾NPU上fp16和bf16怎么互转才不拖后腿
摘要:昇腾NPU上fp16和bf16互转性能关键点在于数据连续性。DMA引擎转换连续tensor时带宽利用率可达95%,而非连续tensor需Vector单元处理,带宽利用率仅30-40%。fp16适合推理(精度更高),bf16适合训练(范围更大)。FlashAttention等融合算子可消除独立Cast开销(约0.02ms/次)。混合精度训练中LayerNorm等操作的Cast最频繁,但可通过融合算子优化。性能测试显示非连续tensor转换耗时是连续的3倍,建议转换前确保tensor连续性。优化Cast操
2026-05-20 18:19:27
326
原创 CANN-ops-nn推理实战-昇腾NPU跑Llama如何让基础算子不掉链子
本文介绍了在昇腾NPU上优化Llama2-7B模型推理性能的实战方法。文章重点分析了基础算子(RMSNorm、残差连接等)对整体性能的影响,提供了五步优化检查流程:1)确认算子注册状态;2)验证RMSNorm性能;3)检查FFN层融合效果;4)优化残差连接;5)端到端性能测试。通过具体代码示例展示了如何确保各算子走优化路径,并给出了常见问题的排查表格。最终目标是让基础算子不掉链子,充分发挥NPU的推理性能。
2026-05-20 18:17:37
219
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅