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自定义注解获取当前登录用户信息
写在前面 在项目开发过程中,难免都要获取当前登录用户的信息。通常的做法,都是开发一个获取用户信息的接口。 如果在本项目中,多处都需要获取登录用户的信息,难不成还要调用自己写的接口吗?显然不用! 以…...
css实现圆环展示百分比,根据值动态展示所占比例
代码如下 <view class""><view class"circle-chart"><view v-if"!!num" class"pie-item" :style"{background: conic-gradient(var(--one-color) 0%,#E9E6F1 ${num}%),}"></view><view v-else …...
【WiFi帧结构】
文章目录 帧结构MAC头部管理帧 帧结构 Wi-Fi的帧分为三部分组成:MAC头部frame bodyFCS,其中MAC是固定格式的,frame body是可变长度。 MAC头部有frame control,duration,address1,address2,addre…...
前端倒计时误差!
提示:记录工作中遇到的需求及解决办法 文章目录 前言一、误差从何而来?二、五大解决方案1. 动态校准法(基础版)2. Web Worker 计时3. 服务器时间同步4. Performance API 高精度计时5. 页面可见性API优化三、生产环境最佳实践四、终极解决方案架构前言 前几天听说公司某个项…...
FastAPI 教程:从入门到实践
FastAPI 是一个现代、快速(高性能)的 Web 框架,用于构建 API,支持 Python 3.6。它基于标准 Python 类型提示,易于学习且功能强大。以下是一个完整的 FastAPI 入门教程,涵盖从环境搭建到创建并运行一个简单的…...
Leetcode 3577. Count the Number of Computer Unlocking Permutations
Leetcode 3577. Count the Number of Computer Unlocking Permutations 1. 解题思路2. 代码实现 题目链接:3577. Count the Number of Computer Unlocking Permutations 1. 解题思路 这一题其实就是一个脑筋急转弯,要想要能够将所有的电脑解锁&#x…...
Nginx server_name 配置说明
Nginx 是一个高性能的反向代理和负载均衡服务器,其核心配置之一是 server 块中的 server_name 指令。server_name 决定了 Nginx 如何根据客户端请求的 Host 头匹配对应的虚拟主机(Virtual Host)。 1. 简介 Nginx 使用 server_name 指令来确定…...
C++.OpenGL (10/64)基础光照(Basic Lighting)
基础光照(Basic Lighting) 冯氏光照模型(Phong Lighting Model) #mermaid-svg-GLdskXwWINxNGHso {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-GLdskXwWINxNGHso .error-icon{fill:#552222;}#mermaid-svg-GLd…...
Element Plus 表单(el-form)中关于正整数输入的校验规则
目录 1 单个正整数输入1.1 模板1.2 校验规则 2 两个正整数输入(联动)2.1 模板2.2 校验规则2.3 CSS 1 单个正整数输入 1.1 模板 <el-formref"formRef":model"formData":rules"formRules"label-width"150px"…...
使用Matplotlib创建炫酷的3D散点图:数据可视化的新维度
文章目录 基础实现代码代码解析进阶技巧1. 自定义点的大小和颜色2. 添加图例和样式美化3. 真实数据应用示例实用技巧与注意事项完整示例(带样式)应用场景在数据科学和可视化领域,三维图形能为我们提供更丰富的数据洞察。本文将手把手教你如何使用Python的Matplotlib库创建引…...
wpf在image控件上快速显示内存图像
wpf在image控件上快速显示内存图像https://www.cnblogs.com/haodafeng/p/10431387.html 如果你在寻找能够快速在image控件刷新大图像(比如分辨率3000*3000的图像)的办法,尤其是想把内存中的裸数据(只有图像的数据,不包…...
