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
GPU
12-core Mali G72MP12 ARM GPUNPU
1.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
NPU
2+1 Core-
GPU
16-core Mali-G76(ARM GPU) GPU
16-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自定义注解获取当前登录用户信息
写在前面 在项目开发过程中,难免都要获取当前登录用户的信息。通常的做法,都是开发一个获取用户信息的接口。 如果在本项目中,多处都需要获取登录用户的信息,难不成还要调用自己写的接口吗?显然不用! 以…...

js创建二维空数组
js创建二维空数组 错误使用原因分析分析1举个例子:解释: 正确创建二维数组总结: 错误使用 今天在写代码的时候,需要创建一个长度为2的空二维数组,我当时第一反应就是,使用let arr new Array(2).fill([])&…...

AF3 checkpoint_blocks函数解读
checkpoint_blocks 函数实现了一种分块梯度检查点机制 (checkpoint_blocks),目的是通过分块(chunking)执行神经网络模块,减少内存使用。在深度学习训练中,梯度检查点(activation checkpointing)是一种显存优化技术。该代码可以: 对神经网络的块(blocks)按需分块,并对…...

下载并使用CICFlowMeter提取网络流特征(Windows版本)
CICFlowMeter简介 CICFlowMeter是一款流量特征提取工具,从原始的pcap包中聚合流,并提取流特征到csv格式的文件中。使用CICFlowMeter提取的特征有助于后续基于网络流的分析与建模 官方github地址:https://github.com/ahlashkari/CICFlowMete…...

深入了解JSON-LD:语义化网络数据的桥梁
目录 前言1. JSON-LD概述1.1 什么是JSON-LD?1.2 JSON-LD的优势 2. JSON-LD的核心概念2.1 上下文(Context)2.2 词汇表(Vocabulary)2.3 标注语言(Markup Language) 3. JSON-LD的语法与结构3.1 基本…...

分布式 IO 模块助力冲压机械臂产线实现智能控制
在当今制造业蓬勃发展的浪潮中,冲压机械臂产线的智能化控制已然成为提升生产效率、保障产品质量以及增强企业竞争力的关键所在。而分布式 IO 模块的应用,正如同为这条产线注入了一股强大的智能动力,开启了全新的高效生产篇章。 传统挑战 冲压…...

webrtc源码编译【linux/安卓】
编译webrtc库 环境ubuntu22.04 推荐在linux里运行一个docker容器,在新环境里搭建。 准备工作 #我使用了下面的安装命令。目前知道的必须需要的 git python3 unzip ninja jdk file lsb-release apt install -y git curl build-essential python3 python3-pip pyt…...

亚矩阵云手机
亚矩阵云手机是一个集成了云计算、大数据、人工智能和边缘计算等先进技术的云平台,它通过ARM虚拟化技术在云端运行手机应用,提供了全面、高效且稳定的服务。以下是对亚矩阵云手机的详细解析: 技术基础与架构 1.ARM虚拟化技术:亚矩阵云手机基于ARM服务器和…...

Flink状态编程
Flink处理机制的核心就是“有状态的流处理”,在某些情况下,一条数据的计算不仅要基于当前数据自身,还需要依赖数据流中的一些其他数据。这些在一个任务中,用来辅助计算的数据我们就称之为这个任务的状态。 一、按键分区状态&…...

【Django篇】--动手实现路由模块化与路由反转
一、路由模块化 在一个Django项目中,由于功能类别不同,因此需要将不同功能进行模块化设计。在Django项目中模块化设计则需要将不同模块封装为对应的app模块,每一个模块中涉及到的路由则也需要进行模块化设计,才能更好的让整个项目…...

多元统计分析练习题3
从总体 A A A 和 B B B 中分别抽取 n 10 n10 n10 个样本 假设 A , B A,B A,B 协方差矩阵相同,并且服从多元正态分布 计算得到的样本均值和样本离差阵分别为 X ‾ A ( 1 , 2 , 3 ) T , V B d i a g ( 1 , 1 , 1 ) X ‾ B ( 1.5 , 2.5 , 3.5 ) T , V B d i…...