以下文章来源于MoreThanSemi,作者猫叔
最近几天关于某大厂从NPU转向GPGPU的讨论非常多,但网上充斥着太多无脑的解读,首先推荐大家看一篇专业的解读:作者是渣总。 https://mp.weixin.qq.com/s/iqRXwdHjyMI7egMrXEIfFw
内容比较长,我们简单总结一下:
NVIDIA 的 GPU 发展呈现出明显的周期,从早期图形渲染的固定流水线 DSA 架构,到为解决负载不均衡问题发展出统一 Shader 架构和 SIMT 抽象,再到 AI 时代引入 Tensor Core 重新走向 DSA 化,期间通过 CUDA 生态的不断优化维持了行业地位。而国内大厂 Ascend 则从系统级统一角度出发,针对异构架构导致的生态碎片化问题,提出了同构 ISA 和混合执行模型,还设计了统一总线(UB)来打破资源孤岛,试图实现 CPU、GPU、NPU 等的编程统一和高效互连。
SIMT 和 SIMD 两种架构各有优劣,SIMT 在编程灵活性上更具优势,适合处理稀疏数据和复杂控制流,而 SIMD 在硬件效率上表现更佳,适合密集型向量运算,两者的取舍关键在于软硬件交付界面的设计。生态和用户习惯对技术推广影响重大,NVIDIA 的两次关键妥协案例就充分说明了这一点,脱离行业标准的 “革命性设计” 往往难以成功。
用一句话总结就是:无论是NPU还是GPGPU,两种架构的核心差异在于编程灵活性与硬件效率的平衡,所以国内大厂一开始选择NPU是正确的,现在开始做GPGPU也是正确的,并不存在最开始战略方向错误的说法。
下面我们再对NPU、GPU做一些详细的解释。
NPU 是一种专门为人工智能计算设计的处理器,主要用于高效执行神经网络相关的运算。相较于传统 CPU、GPU,NPU 在能效比和计算速度上更具优势,尤其适合移动设备、边缘计算和嵌入式 AI 场景,不过近年来,NPU 也被应用于 AI 大模型的训练和推理,当前市面上已有不少使用 NPU 架构作为硬件服务 AI 网络推理的产品。
这些企业青睐 NPU,主要是因为 NPU 芯片设计可控且可靠,其硬件指令架构相对简单很多,主要就是搬移和计算,相较于 GPU 上的一些复杂指令,NPU 相关的所有 ISA 指令可以塞入 ARM、RISC-V 的一个拓展指令集。而且通过密集的计算阵列,NPU 的功耗也低,大块内存的单一且反复使用让 NPU 对高带宽的敏感度有所降低,这几点加起来,使其成为前几年国内公司应对芯片 “卡脖子” 问题的最佳选择 —— 可自主定义指令集框架,性能上不逊于 GPU,能应对相关出口管制限制,硬件门槛也没有传统 CPU、GPU 那么高。
就像龙芯中科的董事长在前段时间的一次采访中讲到,从设计的复杂度来讲,通用CPU是最难的,其次是图形GPU,而AI用的NPU是比较容易的。如果CPU复杂度是1的话,那么图形GPU的复杂度是0.3-0.4,而AI芯片的复杂度还不到0.1,它就是矩阵乘法和卷积运算,就是需要堆料。
所以堆料越多,算力就越大,因此只比较AI芯片的算力是没有意义的。英伟达的芯片算力,也是被称为Jensen math,是老黄独有的计算方法,都是为了宣传产品。
Jensen math规则的第一条是,英伟达公布的浮点运算次数(FLOPs)是基于2:4稀疏度(但没人使用这种稀疏度)来计算的,而不是基于密集浮点运算次数(这是现实世界中的性能衡量指标)。也就是说,H100的FP16(半精度浮点数)的989.4万亿次浮点运算被宣称是1979.8万亿次浮点运算 。
再聊回NPU,NPU有个最大的问题是,软件复杂度远超硬件。这也是我们认为简单对比算力参数是没有意义的,软件好不好用非常关键,目前国内开始限制数据中心的建设,是因为低端算力过程,而高端算力紧缺,所谓的低端算力,就是里面部署了大量的国产GPU卡,但由于软件不好用或者硬件不稳定,这个数据中心一直无法正常运营或者整理的可利用率比较低。
NPU 的多级内存架构中,L1 缓存块通常体积有限,且存在存储体冲突问题。要让算子在 NPU 上跑满性能,工程师必须精准切分数据,既要避免地址冲突,又要最大化利用有限的缓存空间。更麻烦的是,NPU 缺乏 GPU 的 SIMT(单指令多线程)架构中的延迟隐藏机制,访存延迟直接暴露,稍有不慎就会让计算核心 "空转"。
另一个痛点是碎片化的生态壁垒。作为新兴的 DSA,NPU 尚未经历 GPU 那样的 "残酷收敛"—— 不同厂商的架构隔代剧变,甚至同代产品的设计也大相径庭。这意味着为某款 NPU 优化的软件,很难直接移植到另一款产品上,开发者不得不为每类硬件重复投入,极大推高了应用落地成本。
早期的显卡与今天的 NPU 颇为相似:都是由 CPU 远程控制的 "专用计算器",结构简单、功能单一。但随着图形任务日益复杂,显卡逐渐集成了独立的控制单元,最终演变为今天的 GPU。这种演变并非偶然:总线物理距离决定了 CPU 无法实时控制远程设备,必须将部分控制逻辑 "下放",才能应对复杂任务的实时性需求。
英伟达的突破在于,不仅给 GPU 装上了控制单元,更抽象出 SIMT 编程模型 —— 让开发者能像编写单线程程序一样处理并行任务,彻底降低了并行计算的门槛。反观 NPU,至今仍缺乏强大的控制单元,更像是一个 "被动执行指令的算盘",所有复杂调度都依赖外部 CPU,这也是它在 AI 大模型训练中举步维艰的根源 —— 训练过程中瞬息万变的任务流,需要实时调整计算策略,没有自主控制能力的 NPU 根本无法应对。
从体系结构看,GPU 与 NPU 的层级差异更明显:GPU 是 "CPUGPU张量核心" 的三级控制链,而 NPU 更像是 "CPUNPU" 的二级结构。
如今,AI 任务正从单一推理走向 "训练 + 推理" 全流程,从固定场景走向复杂多变的通用智能。这倒逼芯片架构必须向 "高效计算 + 灵活控制" 的方向演进。
对国产 AI 芯片厂商而言,这条路已逐渐清晰:在 NPU 中引入 SIMT 前端,强化控制单元,向 GPU 的架构靠拢。而对于GPU而言,也要将内部的很多模块都DSA化,
NPU 的崛起,是 AI 算力专业化的必然;而它向 GPU 的靠近,则是技术演进中 "分久必合" 的规律。在这场算力革命中,没有永远的 "特长生",只有不断适应变化的 "全能选手"—— 这或许就是 AI 芯片赛道最深刻的生存逻辑。
行业信息交流
英伟达B系列服务器,国内也可以拿到货,我们可以开始接样品订单了,有兴趣的朋友可以加微信,请备注所在行业:
知识星球