GPU 进阶笔记(三):华为 NPU/GPU 演进
大家读完觉得有意义记得关注和点赞!!!
- 1 术语 
- 1.1 CPU
 - 1.2 GPU
 - 1.3 NPU / TPU
 - 1.4 小结
 
 - 2 华为 DaVinci 架构:一种方案覆盖所有算力场景 
- 2.1 场景、算力需求和解决方案
 - 2.2 Ascend NPU 设计
 
 - 3 路线一:NPU 用在手机芯片(Mobile AP SoC) 
- 3.1 Kirin 970,2017, Mate 10 系列手机
 - 3.2 Kirin 990 5G,2019, Mate 30 系列手机
 - 3.3 Kirin 9000 5G,2020,Mate 40 系列手机
 - 3.4 Kirin 9000s,2023,Mate 60 系列手机
 - 3.5 小结
 
 - 4 路线二:NPU 用作推理/训练芯片(Ascend AI Processor) 
- 4.1 产品:加速卡 Atlas 系列
 - 4.2 Ascend 310,2019,推理 
- Spec
 
 - 4.3 Ascend 910, 2019,训练 
- 4.3.1 Spec & Performance, vs. Google TPU
 - 4.3.2 计算集群
 
 - 4.4 Ascend 910B, 2023
 
 - 参考资料
 
本文内容都来自公开资料,仅供个人了解参考。 AI 相关的东西现在迭代非常快,所以部分内容可能已经过时,请注意甄别。
1 术语
CPU/GPU/NPU 等等都是硬件芯片,简单来说,晶体管既可以用来实现逻辑控制单元, 也可以用来实现运算单元(算力)。 在芯片总面积一定的情况下,就看控制和算力怎么分。
- CPU:通用目的处理器,重逻辑控制;
 - GPU:通用目的并行处理器(GPGPU),图形处理器;
 - NPU:专用处理器,相比 CPU/GPU,擅长执行更具体的计算任务。
 
1.1 CPU
大部分芯片面积都用在了逻辑单元,因此逻辑控制能力强,算力弱(相对)。
1.2 GPU
大部分芯片面积用在了计算单元,因此并行计算能力强,但逻辑控制弱。 适合图像渲染、矩阵计算之类的并行计算场景。作为协处理器, 需要在 CPU 的指挥下工作,

Image Source [8]
1.3 NPU / TPU
也是协处理器。在 wikipedia 中没有专门的 NPU (Neural Processing Unit) 页面,而是归到 AI Processors 大类里面, 指的是一类特殊目的硬件加速器,更接近 ASIC,硬件实现神经网络运算, 比如张量运算、卷积、点积、激活函数、多维矩阵运算等等[7]。
如果还不清楚什么是神经网络,可以看看 以图像识别为例,关于卷积神经网络(CNN)的直观解释(2016)。
在这些特殊任务上,比 CPU/GPU 这种通用处理器效率更高,功耗更小,响应更快 (比如一个时钟周期内可以完成几十万个乘法运算), 因此适合用在手机、边缘计算、物联网等等场景。
TPU:这里特制 Google 的 Tensor Processing Unit,目的跟 NPU 差不多。 [11] 对 TPU 和 GPU 的使用场景区别有一个非常形象的比喻:
如果外面下雨了,你其实并不需要知道每秒到底有多少滴雨, 而只要知道雨是大还是小。 与此类似,神经网络通常不需要 16/32bit 浮点数做精确计算,可能 8bit 整型预测的精度就足以满足需求了。

Floor Plan of Google TPU die(yellow = compute, blue = data, green = I/O, red = control) [11]
1.4 小结
GPU 已经从最初的图像渲染和通用并行计算,逐步引入越来越多的神经网络功能 (比如 Tensor Cores、Transformer); 另一方面,NPU 也在神经网络的基础上,开始引入越来越强大的通用计算功能, 所以这俩有双向奔赴的趋势。
2 华为 DaVinci 架构:一种方案覆盖所有算力场景
2.1 场景、算力需求和解决方案

不同算力场景下,算力需求(TFLOPS)和内存大小(GB)的对应关系 [1]

华为的解决方案:一种架构(DaVinci),覆盖所有场景 [1]
用在几个不同产品方向上,
- 手机处理器,自动驾驶芯片等等
 - 专门的 AI 处理器,使用场景类似于 GPU
 
2.2 Ascend NPU 设计
2017 年发布了自己的 NPU 架构,[2] 详细介绍了 DaVinci 架构的设计。 除了支持传统标量运算、矢量运行,还引入了 3D Cube 来加速矩阵运算,

Image Source [2]
单位芯片面积或者单位功耗下,性能比 CPU/GPU 大幅提升:

Image Source [2]
下面看看实际使用场景和产品系列。
3 路线一:NPU 用在手机芯片(Mobile AP SoC)
现代手机芯片不再是单功能处理器,而是集成了多种芯片的一个 片上系统(SoC), 华为 NPU 芯片就集成到麒麟手机芯片内部,随着华为 Mate 系列高端手机迭代。

Image Source [7]
比如,一些典型的功能划分 [7]:
- CPU 主处理器,运行 app;
 - GPU 渲染、游戏等;
 - NPU 图像识别、AI 应用加速。
 
Mate 系列手机基本上是跟 Kirin 系列芯片一起成长的,早期的手机不是叫 “Mate XX”, 而是 “Ascend Mate XX”,从中也可以看出跟昇腾(Ascend)的渊源。
3.1 Kirin 970,2017, Mate 10 系列手机
 
据称是第一个手机内置的 AI 处理器(NPU)[3]。 在 AI 任务上(比如手机上输入文字搜图片,涉及大批量图片识别)比 CPU 快 25~50 倍。
10nm,台积电代工- CPU 8-core with a clockspeed of uP to 2.4GHz i.e. 4 x Cortex A73 at 2.4GHz + 4 x Cortex 53 at 1.8GHz
 GPU12-core Mali G72MP12 ARM GPUNPU1.92 TFLOPs FP16
3.2 Kirin 990 5G,2019, Mate 30 系列手机
 
Kirin 990 包含了 D-lite 版本的 NPU [1]:
- World’s st 5G SoC Poweed by 7nm+ EUV
 - World’s 1st 5G NSA & SA Flagship SoC
 - Wolrd’s 1st 16-Core Mali-G76 
GPU - World’s 1st Big-Tiny Core Architechture 
NPU 

麒麟 990 5G 芯片逻辑拓扑 [1]
一些硬件参数 [1,4]:
- 台积电 
7nm+工艺 - CPU 8-Core
 NPU2+1 Core-  
GPU16-core Mali-G76(ARM GPU) GPU16-core Mali-G76 (ARM GPU)NPU- HUAWEI Da Vinci Architecture,
 - 2x Ascend Lite + 1x Ascend Tiny
 
- 2G/3G/4G/5G Modem
 - LPDDR 4X
 - 4K HDR Video
 
3.3 Kirin 9000 5G,2020,Mate 40 系列手机
 
 

Image Source
- 台积电 
5nm工艺 - GPU 24-core Mali-G78, Kirin Gaming+ 3.0
 NPU- HUAWEI Da Vinci Architecture 2.0 第二代架构
 - 2x Ascend Lite + 1x Ascend Tiny
 
这个是台积电 5nm 工艺 [5],然后就被美国卡脖子了。 所以 Mate 50 系列用的高通处理器,Mate 60 系列重新回归麒麟处理器。
3.4 Kirin 9000s,2023,Mate 60 系列手机
 
王者低调回归,官网没有资料。
据各路媒体分析,是中芯国际 7+nm 工艺,比上一代 9000 落后一些, 毕竟制程有差距,看看国外媒体的副标题 [6]:
It's tough to beat a 5nm processor with a 7nm chip.
Wikipedia 提供的参数 [10]:
- SMIC 7nm FinFET
 - CPU HiSilicon Taishan microarchitecture Cortex-A510
 - GPU Maleoon 910 MP4
 - NPU 有,但是没提
 
3.5 小结
手机芯片系列先到这里,接下来看看作为独立卡使用的 NPU 系列。
4 路线二:NPU 用作推理/训练芯片(Ascend AI Processor)

两个产品:301 低功耗;910 高算力。
设计见 paper [2]。
4.1 产品:加速卡 Atlas 系列
型号 Atlas 200/300/500/…,包括了 NPU 在内的 SoC,用于 AI 推理和训练。
4.2 Ascend 310,2019,推理
 
Spec
用的是 D-mini version:

纸面算力基本对标 NVIDIA T4 [9]。
4.3 Ascend 910, 2019,训练
 
4.3.1 Spec & Performance, vs. Google TPU

Image Source [1]

Image Source [1]
4.3.2 计算集群

Image Source [1]

Image Source [1]
4.4 Ascend 910B, 2023
 
GPU 进阶笔记(二):华为 Ascend 910B GPU 相关(2023)。
参考资料
- DaVinci: A Scalable Architecture for Neural Network Computing,huawei, 2020
 - Ascend: a Scalable and Unified Architecture for Ubiquitous Deep Neural Network Computing, HPCA, 2021
 - Huawei Unveils The Kirin 970, The World’s First Processor With A Dedicated NPU, 2017
 - Kirin 990 5G Data Sheet, hisilicon.com
 - Kirin 9000 Data Sheet, hisilicon.com
 - Huawei’s sanctions-evading Kirin 9000S processor tested: significantly behind its Kirin 9000 predecessor that used TSMC tech,2023
 - Neural Processing Unit (NPU) Explained, 2021
 - AI 101: GPU vs. TPU vs. NPU, 2023
 - GPU Performance (Data Sheets) Quick Reference (2023)
 - Wikipedia: HiSilicon, wikipedia.com
 - An in-depth look at Google’s first Tensor Processing Unit (TPU), Google Cloud Blog, 2017
 
相关文章:
GPU 进阶笔记(三):华为 NPU/GPU 演进
大家读完觉得有意义记得关注和点赞!!! 1 术语 1.1 CPU1.2 GPU1.3 NPU / TPU1.4 小结2 华为 DaVinci 架构:一种方案覆盖所有算力场景 2.1 场景、算力需求和解决方案2.2 Ascend NPU 设计3 路线一:NPU 用在手机芯片&…...
计算机网络 (13)信道复用技术
前言 计算机网络中的信道复用技术是一种提高网络资源利用率的关键技术。它允许在一条物理信道上同时传输多个用户的信号,从而提高了信道的传输效率和带宽利用率。 一、信道复用技术的定义 信道复用(Multiplexing)就是在一条传输媒体上同时传输…...
数据库约束和查询
一 约束意义 这个后面的字段是什么意思呢? 先前说数据类型是一种约束,约束我们只能放该类型的数据,还有其它的约束来保证数据的合法性,下面的字段就和约束有关。 编译器的编译就是一个约束,保证我们的代码一定是语法合格的。我们…...
网工日记:FTP两种工作模式的区别
FTP 的主动模式和被动模式在连接建立的发起方、数据传输端口以及对网络环境的适应性等方面存在明显区别: 1. 连接发起方 主动模式:数据连接由服务器主动发起。在控制连接建立后,客户端通过 PORT 命令告知服务器自己用于接收数据的临时端口号…...
NLP模型工程化部署
文章目录 一、理论-微服务、测试与GPU1)微服务架构2)代码测试3)GPU使用 二、实践-封装微服务,编写测试用例和脚本,并观察GPU1)微服务封装(RestFul和RPC)2)测试编写(unit_test\api_test\load_tes…...
分布式版本管理工具——git 中忽略文件的版本跟踪(初级方法及高级方法)
git工具忽略指定文件的版本跟踪 一、简单方式实现二、复杂方式实现(模式匹配)1. 相关规则2. 应用案例a) 忽略所有内容b) 忽略所有目录(不忽略当前目录的具体文件)c)忽略指定目录下的所有文件,但排除某文件d)…...
【LangChain】Chapter4 - Question and Answer Over Documents
说在前面 文档问答,是常见的一类LLM应用,给定一段可能是从 PDF文件、网页或某公司内部文档库中提取的文本,使用LLM回答关于这些文档内容的问题。这样的应用非常的强大,它可以将LLM与完全没被训练的数据相结合,可以灵活…...
TCP/IP 协议演进中的瓶颈,权衡和突破
所有(去掉 “几乎” 修饰)问题都来自于生长速度的不一致,换句话说,膨胀不是均匀的,从而产生瓶颈甚至触碰极限,TCP/IP 从协议到实现面临的多方问题与动物体型不能无限大,摩天大楼不能无限高本质上一样。 如今被高性能网…...
软件测试面试八股文,查漏补缺(附文档)
大家好,最近有不少小伙伴在后台留言,准备面试了,又不知道从何下手!为了帮大家节约时间,特意准备了一份面试相关的资料,内容非常的全面,真的可以好好补一补,希望大家在都能拿到理想的…...
IDEA工具使用介绍、IDEA常用设置以及如何集成Git版本控制工具
文章目录 一、IDEA二、建立第一个 Java 程序三、IDEA 常用设置四、IDEA 集成版本控制工具(Git、GitHub)4.1 IDEA 拉 GitHub/Git 项目4.2 IDEA 上传 项目到 Git4.3 更新提交命令 一、IDEA 1、什么是IDEA? IDEA,全称为 IntelliJ ID…...
YOLOv10-1.1部分代码阅读笔记-transformer.py
transformer.py ultralytics\nn\modules\transformer.py 目录 transformer.py 1.所需的库和模块 2.class TransformerEncoderLayer(nn.Module): 3.class AIFI(TransformerEncoderLayer): 4.class TransformerLayer(nn.Module): 5.class TransformerBlock(nn.Module)…...
机器人革新!ModbusTCP转CCLINKIE网关揭秘
在当今这个科技日新月异的时代,机器人技术正以前所未有的速度发展着,它们在工业制造、医疗服务、家庭娱乐等多个领域扮演着越来越重要的角色。而随着机器人应用的普及和多样化,如何实现不同设备之间的高效通信成为了一个亟待解决的问题。开疆…...
JWT包中的源码分析【Golang】
前言 最近在学web编程的途中,经过学长提醒,在进行登陆(Login)操作之后,识别是否登陆的标识应该要放入authorization中,正好最近也在学鉴权,就顺便来看看源码了。 正文 1. 代码示例 在进行分…...
SpringBoot数据字典字段自动生成对应code和desc
效果:接口会返回orderType,但是这个orderType是枚举的类型(1,2,3,4),我想多返回一个orderTypeDesc给前端展示,这样前端就可以直接拿orderTypeDesc使用了。 1. 定义注解 …...
TencentOS 2.4 final 安装mysql8.0备忘录
准备 tencentOS 2.4 与Red Hat Enterprise Linux 7 是兼容的。 我们首先从oracle官网上下载mysql的源文件。 下载完成后你会得到以下文件: mysql84-community-release-el7-1.noarch.rpm 安装 首先你需要切换到root用户下。 1.安装源文件 yum localinstall my…...
Hadoop HA安装配置(容器环境),大数据职业技能竞赛模块A平台搭建,jdk+zookeeper+hadoop HA
HA概述 (1) 所谓HA(High Availablity),即高可用(7*24小时不中断服务)。 (2) 实现高可用最关键的策略是消除单点故障,HA严格来说应该分为各个组件的HA机制,H…...
使用javascript读取波形文件数据,并生成动态的波形图
代码如下: // HTML5 Canvas 动态波形生成器 // 使用JS读取波形文件并生成动态波形// 创建Canvas并设置上下文 const canvas document.createElement(canvas); canvas.width 800; canvas.height 400; document.body.appendChild(canvas); const ctx canvas.getC…...
服务器系统维护与安全配置
一、硬件系统的安全防护 硬件的安全问题也可以分为两种,一种是物理安全,一种是设置安全。 1、物理安全 物理安全是指防止意外事件或人为破坏具体的物理设备,如服务器、交换机、路由器、机柜、线路等。机房和机柜的钥匙一定要管理…...
大模型Weekly 03|OpenAI o3发布;DeepSeek-V3上线即开源!
大模型Weekly 03|OpenAI o3发布;DeepSeek-V3上线即开源!DeepSeek-V3上线即开源;OpenAI 发布高级推理模型 o3https://mp.weixin.qq.com/s/9qU_zzIv9ibFdJZ5cTocOw?token47960959&langzh_CN 「青稞大模型Weekly」,持…...
Spring Boot自定义注解获取当前登录用户信息
写在前面 在项目开发过程中,难免都要获取当前登录用户的信息。通常的做法,都是开发一个获取用户信息的接口。 如果在本项目中,多处都需要获取登录用户的信息,难不成还要调用自己写的接口吗?显然不用! 以…...
PPT|230页| 制造集团企业供应链端到端的数字化解决方案:从需求到结算的全链路业务闭环构建
制造业采购供应链管理是企业运营的核心环节,供应链协同管理在供应链上下游企业之间建立紧密的合作关系,通过信息共享、资源整合、业务协同等方式,实现供应链的全面管理和优化,提高供应链的效率和透明度,降低供应链的成…...
基于服务器使用 apt 安装、配置 Nginx
🧾 一、查看可安装的 Nginx 版本 首先,你可以运行以下命令查看可用版本: apt-cache madison nginx-core输出示例: nginx-core | 1.18.0-6ubuntu14.6 | http://archive.ubuntu.com/ubuntu focal-updates/main amd64 Packages ng…...
【机器视觉】单目测距——运动结构恢复
ps:图是随便找的,为了凑个封面 前言 在前面对光流法进行进一步改进,希望将2D光流推广至3D场景流时,发现2D转3D过程中存在尺度歧义问题,需要补全摄像头拍摄图像中缺失的深度信息,否则解空间不收敛…...
06 Deep learning神经网络编程基础 激活函数 --吴恩达
深度学习激活函数详解 一、核心作用 引入非线性:使神经网络可学习复杂模式控制输出范围:如Sigmoid将输出限制在(0,1)梯度传递:影响反向传播的稳定性二、常见类型及数学表达 Sigmoid σ ( x ) = 1 1 +...
【Oracle】分区表
个人主页:Guiat 归属专栏:Oracle 文章目录 1. 分区表基础概述1.1 分区表的概念与优势1.2 分区类型概览1.3 分区表的工作原理 2. 范围分区 (RANGE Partitioning)2.1 基础范围分区2.1.1 按日期范围分区2.1.2 按数值范围分区 2.2 间隔分区 (INTERVAL Partit…...
Spring Cloud Gateway 中自定义验证码接口返回 404 的排查与解决
Spring Cloud Gateway 中自定义验证码接口返回 404 的排查与解决 问题背景 在一个基于 Spring Cloud Gateway WebFlux 构建的微服务项目中,新增了一个本地验证码接口 /code,使用函数式路由(RouterFunction)和 Hutool 的 Circle…...
Hive 存储格式深度解析:从 TextFile 到 ORC,如何选对数据存储方案?
在大数据处理领域,Hive 作为 Hadoop 生态中重要的数据仓库工具,其存储格式的选择直接影响数据存储成本、查询效率和计算资源消耗。面对 TextFile、SequenceFile、Parquet、RCFile、ORC 等多种存储格式,很多开发者常常陷入选择困境。本文将从底…...
HDFS分布式存储 zookeeper
hadoop介绍 狭义上hadoop是指apache的一款开源软件 用java语言实现开源框架,允许使用简单的变成模型跨计算机对大型集群进行分布式处理(1.海量的数据存储 2.海量数据的计算)Hadoop核心组件 hdfs(分布式文件存储系统)&a…...
在Ubuntu24上采用Wine打开SourceInsight
1. 安装wine sudo apt install wine 2. 安装32位库支持,SourceInsight是32位程序 sudo dpkg --add-architecture i386 sudo apt update sudo apt install wine32:i386 3. 验证安装 wine --version 4. 安装必要的字体和库(解决显示问题) sudo apt install fonts-wqy…...
PAN/FPN
import torch import torch.nn as nn import torch.nn.functional as F import mathclass LowResQueryHighResKVAttention(nn.Module):"""方案 1: 低分辨率特征 (Query) 查询高分辨率特征 (Key, Value).输出分辨率与低分辨率输入相同。"""def __…...
