NPU 可不可以代替 GPU

结论

先说结论,GPU分为可以做图形处理的传统意义上的真GPU,做HPC计算的GPGPU和做AI加速计算的GPGPU,所以下面分别说:

  1. 对于做图形处理的GPU,这个就和NPU 一样,属于DSA,没有替代性。当然,相信题主问的也不是这个
  2. 对于做HPC计算的GPGPU,需要的是通用的64位浮点的乘加运算能力,一般NPU为了追求AI计算性能,对64位浮点一般也是不支持,或者支持有限,所以这块也是不能替代的;题主关心的应该也不是这块
  3. 最后就是专门用于AI加速的GPGPU,这块由于数据精度要求相对有限,而且主要计算是矩阵,如果不考虑软件框架支持程度,在同一工艺制程其实各类NPU应该是优于GPGPU的,所以这类是肯定可以替代的


下面以华为昇腾芯片 和英伟达的芯片为例,来了解两者在架构上区别。昇腾910 (Ascend 910 ) 是华为2019年发布产品,计算部分采用达芬奇架构。NVIDIA对应的是2020年发布的Ampere系列A100。

Ascend 910

昇腾910采用chiplet方案,一共8个die,4个HBM,2个dummy die,1个soc die,一个NIMBUS die;其中两个dummy die用来保持芯片整体机械应力平衡; 四个HBM总带宽为 1.2TB/s;昇腾910整体布局如下图所示:

不同die的面积如下所示:

其中soc die主要用来计算,采用台积电7nm工艺,面积456mm^2,可以提供512TOPS的INT8性能;soc die的物理规划如下所示:

SoC die包含 32 个 Ascend-Max 内核、16 个 Arm V8 TaiShan CPU 内核和 CPU LLC、视频编解码器(Digital Vision Pre-Processor),支持128路的全高清视频解码,以及一个连接上述组件的片上网络 (NoC)。NoC采用4x6的mesh拓扑,以提供统一且可扩展的通信网络;两个相邻节点之间的链路工作频率为 2GHz,数据位宽为 1024 位,可以提供256GB/S 的带宽。NoC不使用缓冲,减少 NoC 的面积开销。SoC die和Nimbus die架构框图如下所示:

DaVinci

DaVinci核由三种计算单元、多级片上存储器和相应的加载/存储单元、指令管理单元等组成;DaVinci核是异构架构,结合了标量、向量和张量计算单元;总线接口单元(BIU)在昇腾内核和外部组件之间传输数据/指令;DaVinci架构框图如下所示:

下表列出了三种计算单元支持的典型操作:

  • 标量计算单元主要负责地址等标量计算
  • 向量计算单元可以进行归一化,激活等计算;向量单元还负责数据精度转换,例如 int32、fp16 和 int8 之间的量化和解量化操作;向量单元还可以实现 fp32 操作
  • 张量计算单元主要是矩阵计算,包括卷积,全连接,矩阵乘等;张量计算中矩阵的典型尺寸为 16 x 16 x 16。因此,张量计算单元配备了 4096 个乘法器和 4096 个累加器。矩阵计算中的每个操作数被重复使用 16 次。因此,与向量单元相比,将操作数加载到张量单元的能耗降低到 1/16

DaVinci核包括多个缓冲区,分成不同层次。L0 缓冲区专用于张量计算单元,分成三个单独的 L0 缓冲区,分别是缓冲区 A L0、缓冲区 B L0 和缓冲区 C L0。它们分别用于保存输入特征数据、权重和输出特征数据。缓冲区 A L0 和缓冲区 B L0 中的数据从 L1 缓冲区加载。L0 缓冲区和 L1 缓冲区之间的通信由内存传输引擎MTE(Memory Transfer Engine) 管理。MTE 中有几个功能模块:

  • decomp 模块借助零值压缩的算法来解压缩稀疏网络的数据
  • img2col 模块用于将卷积转换成矩阵乘法
  • trans 模块用于矩阵转置

缓冲区 C L0 中的输出结果可以由向量单元处理(例如归一化或激活)。向量单元的输出结果被分配到统一缓冲区Unified Buffer中,该缓冲区与标量单元共享。数据存储在 L1 缓冲区中,指令存储在指令缓存中。指令执行流程如下:

  • 指令首先由PSQ (Program Sequence Queue) 排序
  • 根据指令类型,分别分发到三个队列,即多维数据集队列(cube queue)、向量队列和 MTE 队列
  • 指令分别由相应的计算单元处理

由于三个计算单元和 MTE 并行工作,因此需要显式同步来确保不同执行单元之间的数据依赖关系。下图展示了相应流程,PSQ 不断向不同的单元发送指令,这些指令可以并行处理,直到遇到显式同步信号(屏障);屏障由编译器或程序员生成。

系统扩展

每台昇腾910服务器 包含8个昇腾910芯片,并分为两组;组内连接基于高速缓存一致性网络HCCS (high-speed cache coherence network),提供30GB/S带宽 。两个组使用 PCI-E 总线相互通信,提供32GB/S带宽。整体形成hyper cube mesh网络拓扑。多台昇腾910服务器可以通过fat-tree 的网络拓扑组织成一个集群。下图展示了一个 2048 节点的集群,可以提供512 Peta FLOPS的 fp16 总计算能力,包含 256 台服务器,服务器之间的链路带宽为 100Gbps。

编程模型

PyTorch、TensorFlow、MindSpore 等DNN模型开发框架位于顶端,输出“Graph”,表示算法中的粗粒度关系。然后,在图引擎的帮助下,“Graph”被转换为“Stream”,由几个按顺序排列的“Task”组成。“Streams”/“Tasks”可以直接从Operator Lib调用,也可以由程序员借助Operator Engine 用不同级别的语言描述。TBE(Tensor Boost Engine )DSL(Domain Specific Language)是用Level-3编程模型开发的,称为数学编程级别,针对不了解硬件知识的用户。借助编译器,可以从 TBE DSL 描述中自动生成实例“Tasks”。程序员还可以在并行/内核级别(2 级)编程模型中开发实例“Task”,类似于 GPU 的 CUDA 或 OpenCL,并引入了张量迭代器核 TIK(Tensor Iterator Kernel)接口,可以使用 Python 进行并行编程。专用的编译器技术“Auto Tiling ”,用于将大任务切割以适应 Ascend 架构。在强化学习算法的帮助下,该技术通过智能搜索合法的映射空间,为程序提供最佳的tiling和调度。编程模型的最低级别(级别 1)是 C 编程,也称为 CCE-C(Cube-based Compute En­gine)。在此级别中,每个体系结构的所有设计细节都暴露给程序员。程序员可以嵌入类似汇编的代码。整体结构如下所示:

Ampere

2020年,NVIDIA推出Ampere架构,采用TSMC 7nm FFN工艺,面积826mm^2,一共542亿晶体管;完整GA100物理版图如下所示:

Ampere GPU 中两个 SM 共同组成一个纹理处理器集群TPC,其中 8 个 TPC组成了一个GPU 处理集群(GPC);一共 8 个GPC。因此,GA100 GPU 的完整实现包括以下单元:

- 8 个 GPC,每个GPC有8 个 TPC,每个TPC有2 个 SM,一共128 个 SM

- 每个SM有64 个 FP32 CUDA 核,每个完整 GPU 8192 个 FP32 CUDA 核

- 每个SM有4 个第三代 Tensor Core,每个完整 GPU 512 个 Tensor Core

- 6 个 HBM2 ,12 个 512 位内存控制器

A100 基于 GA100,有 108 个 SM;A100 Tensor Core GPU 实现包括以下单元:

- 7 个 GPC,每个GPC有7 或 8 个 TPC,每个TPC有2 个 SM,最多108 个 SM

- 每个 GPU有 64 个 FP32 CUDA 核,一共6912 个 FP32 CUDA 核

- 每个SM有4 个第三代 Tensor Core,每个 GPU 432 个Tensor Core

- 5 个 HBM2,10 个 512 位内存控制器

A100 SM 包括新的第三代 Tensor Core,每个核每个时钟执行 256 个 FP16/FP32 FMA 操作。A100 每个 SM 有四个 Tensor Core,每个时钟总共提供 1024 次密集的 FP16/FP32 FMA 操作。

DGX

下图展示了DGX A100 系统网络拓扑:

DGX A100 系统包含6个NVSwitch 2.0,每个 A100 GPU 使用 12 个 NVLink 与 6 个 NVSwitch 进行互联通信,因此每个 GPU 到每个交换机都有两条链路。

NVIDIA DGX SuperPOD

NVIDIA DGX SuperPOD是由DGX A100 组成的集群系统,包括:

  • 140 个 DGX A100 系统
  • 1,120 个 NVIDIA A100 GPU
  • 170 个 Mellanox Quantum 200G InfiniBand 交换机
  • 15Km光缆
  • 4PB 高性能存储

具体硬件参数如下:

下图展示了140 节点 DGX SuperPOD 的计算拓扑结构:

参考文献

  1. H. Liao, J. Tu, J. Xia and X. Zhou, “DaVinci: A Scalable Architecture for Neural Network Computing,” 2019 IEEE Hot Chips 31 Symposium (HCS), Cupertino, CA, USA, 2019, pp. 1-44, doi: 10.1109/HOTCHIPS.2019.8875654.
  2. Liao, H., Tu, J., Xia, J., Liu, H., Zhou, X., Yuan, H., Hu, Y., 2021. Ascend: a Scalable and Unified Architecture for Ubiquitous Deep Neural Network Computing : Industry Track Paper, in: 2021 IEEE International Symposium on High-Performance Computer Architecture (HPCA). Presented at the 2021 IEEE International Symposium on High-Performance Computer Architecture (HPCA), IEEE, Seoul, Korea (South), pp. 789–801. doi.org/10.1109/HPCA516
  3. NVIDIA Ampere Architecture In-Depth [WWW Document], 2020. . NVIDIA Technical Blog. URL [NVIDIA Ampere Architecture In-Depth | NVIDIA Technical Blog](NVIDIA Ampere Architecture In-Depth | NVIDIA Technical Blog) .
  4. Choquette J. et al., “NVIDIA A100 tensor core GPU: Performance and innovation,” IEEE Micro, vol. 41, no. 2, pp. 29–35, Mar./Apr. 2021, doi: 10.1109/MM.2021.3061394.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/59520.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

java: 题目:银行账户管理系统

题目:银行账户管理系统 设计一个简单的银行账户管理系统。要求实现以下功能: 1. 创建一个银行账户 BankAccount 类,该类具有以下属性:accountNumber(账户号码,类型为 String) balance&#xff…

2024年无线领夹麦克风十大品牌推荐,衣领麦克风哪个品牌好

声音,是沟通的桥梁,是信息的载体。在信息爆炸的时代,如何让自己的声音脱颖而出,成为了每个人都需要思考的问题。无线领夹麦克风,以其小巧便携、无线传输的特点,成为了众多声音爱好者的首选。市场上无线领夹…

【C++的vector、list、stack、queue用法简单介绍】

【知识预告】 vector的介绍及使用list的介绍及使用list与vector的对比stack的介绍和使用queue的介绍和使用priority_queue的介绍和使用 1 vector的介绍及使用 1.1 vector的介绍 vector是表示可变大小数组的序列容器和数组类似,vector也采用连续存储空间来存储元…

杨传辉:云+AI 时代的一体化数据库|OceanBase发布会实录

在 2024 OceanBase 年度发布会 上, OceanBase CTO 杨传辉进行了主题为《云和 AI 时代的一体化数据库战略思考》的演讲,本文为演讲实录,欢迎阅读。 视频观看可点击:https://www.oceanbase.com/video/9001825 各位 OceanBase 的客…

[大模型]视频生成-Sora简析

参考资料: Sora技术报告https://openai.com/index/video-generation-models-as-world-simulators/4分钟详细揭密!Sora视频生成模型原理https://www.bilibili.com/video/BV1AW421K7Ut 一、概述 相较于Gen-2、Stable Diffusion、Pika等生成模型的前辈&am…

【docker入门】docker的安装

目录 Centos 7 添加docker 官方仓库到yum源 将 Docker 的官方镜像源替换为国内可以的 Docker 镜像源 安装docker 配置docker加速源 Ubuntu 创建 gpg key 目录 下载 gpg key 添加国内可用镜像源到 系统的 APT 仓库中 安装docker 配置加速源 Centos 7 添加docker 官方仓…

2024年【汽车修理工(高级)】考试总结及汽车修理工(高级)试题及解析

题库来源:安全生产模拟考试一点通公众号小程序 汽车修理工(高级)考试总结是安全生产模拟考试一点通总题库中生成的一套汽车修理工(高级)试题及解析,安全生产模拟考试一点通上汽车修理工(高级&a…

vscode的一些使用心得

问题1:/home目录空间有限 连接wsl或者remote的时候,会在另一端下载一个.vscode-server,vscode的插件都会安装进去,导致空间增加很多,可以选择更换这个文件的位置 参考:https://blog.csdn.net/weixin_4389…

Qt(openCV的应用)

1. OpenCV简介 OpenCV(Open Source Computer Vision Library)是一个开源的计算机视觉库,它提供了丰富的图像处理和计算机视觉功能。该库由英特尔公司发起,并在 BSD 许可证下发布,因此它是免费的,且开放源代…

【大语言模型】ACL2024论文-06 探索思维链COT在多模态隐喻检测中的应用

【大语言模型】ACL2024论文-06 探索思维链COT在多模态隐喻检测中的应用 目录 文章目录 【大语言模型】ACL2024论文-06 探索思维链COT在多模态隐喻检测中的应用目录摘要研究背景问题与挑战如何解决创新点算法模型1. 知识总结模块(Knowledge Summarization Module&…

Kubernetes中的statefulset控制器

华子目录 statefulset控制器功能StatefulSet的组成部分 问题复现示例statefulset示例总结 statefulset控制器 功能 Statefulset是为了解决有状态服务的问题设计的StatefulSet将应用状态抽象成了两种情况拓扑状态:应用实例必须按照某种顺序启动。新创建的Pod必须和…

【Android】时区规则库tzdata更新

1 背景: 最近我遇到墨西哥城时区,会出现夏令时,而墨西哥城在2022年底都已经取消夏令时了。 看起来是要更新RK3588上的时区库,我的还是2021a,而现在都已经2024年了 这样能看版本号: cat /system/usr/sha…

【论文速看】DL最新进展20241106-图像分类、图像分割、时间序列预测

目录 【图像分类】【图像分割】【时间序列预测】 【图像分类】 [2024 解耦数据增强] Decoupled Data Augmentation for Improving Image Classification 机构:腾讯优图 论文链接:https://arxiv.org/pdf/2411.02592v1 代码链接:无 最近在图…

[MRCTF2020]PYWebsite1

如果输入的密钥是对的那么我们就直接跳转到flag.php页面 那么我们直接访问😎,他不带我们去我们自己去. 那就用XFF呗. 知识点: 定义:X-Forwarded-For是一个HTTP请求头字段,用于识别通过HTTP代理或负载均衡方式连接到W…

穿越文化与时空的回响——从廖问洁《红豆诗词选》看当代人文情怀

穿越文化与时空的回响 ——从廖问洁《红豆诗词选》看当代人文情怀 在快节奏的现代生活中,我们时常感到身心的疲惫,渴望找到一种能够洗涤内心的方式。而廖问洁的《红豆诗词选》就如同一股清泉,为我们带来了心灵的洗礼和慰藉。 这位来自94年的…

【sqlmap使用手册-持续更新中】

SQLMap 简介 SQLMap 是一个开源的渗透测试工具,用于自动化检测和利用 SQL 注入漏洞。它支持多种数据库,包括 MySQL、PostgreSQL、Oracle、SQL Server 等。 可以通过以下命令安装sqlmap git clone https://github.com/sqlmapproject/sqlmap.git最常用的…

吉利极氪汽车嵌入式面试题及参考答案

inline 的作用 inline 是 C++ 中的一个关键字。它主要用于函数,目的是建议编译器将函数体插入到调用该函数的地方,而不是像普通函数调用那样进行跳转。 从性能角度来看,当一个函数被标记为 inline 后,在编译阶段,编译器可能会将函数的代码直接复制到调用它的位置。这样做…

详解Rust标准库:VecDeque 队列

theme: github highlight: an-old-hope 查看本地官方文档 安装rust后运行 rustup doc查看The Standard Library即可获取标准库内容 std::connections::VecDeque定义 队列是遵循先入先出规则的线性数据结构,在内存中不一定连续 VecDeque定义:可增长…

有哪些实用的 Ads Spy 工具推荐?

了解竞争对手的广告策略至关重要。Ads Spy 工具可以帮助我们洞察竞争对手的广告活动,从而优化自己的推广计划。以下是一些实用的 Ads Spy 工具介绍: 1. PowerAdSpy:可以按广告版位全渠道搜索筛选,实时在线筛查正在展示的广告&…

01 Oracle 数据库存储结构深度解析:从数据文件到性能优化的全链路探究

文章目录 Oracle 数据库存储结构深度解析:从数据文件到性能优化的全链路探究一、Oracle存储结构的物理层次1.1 控制文件(Control File)1.2 联机重做日志文件(Online Redo Log File)1.3 数据文件(Data File&…