一文读懂「四大主流计算芯片 CPU、GPU、ASIC、FPGA」特点和场景

news2024/9/22 5:05:06

纵观人类历史,从结绳计数、木制计数到巴比伦的粘土板上的刻痕,再到中国古代的算盘,社会生产力的提高与当时所采用的计算工具密切相关。计算工具能力越强,就能大幅缩短人类解决复杂问题的时间,社会生产力水平自然就会越高。

CPU

CPU,全称Central Processing Unit,即中央处理器。现代电子计算机的发明是基于1940年代诞生的冯·诺依曼架构,这个架构主要由运算器、控制器、存储器、输入设备、输出设备等五个主要部分组成。

  • 特点:CPU具有通用性和灵活性,能够执行各种任务,如操作系统管理、软件运行和数据处理等。它擅长串行计算,即按照指定顺序执行任务。
  • 应用:广泛应用于个人电脑、服务器、移动设备等各种计算设备中。

按照冯·诺依曼架构,数据来了会先放到存储器。然后,控制器会从存储器拿到相应数据,再交给运算器进行运算。运算完成后,再把结果返回到存储器。大致的架构如图1所示,其中运算器和控制器两个部分组成了CPU的主要功能。
在这里插入图片描述
上面的计算方式,从数据输入到输出算一个完整的处理流程,冯·诺依曼体系采用的就是串行运算方式。即一次只能进行一项计算任务,只有上一个计算指令完成了,数据存储了,才能开启下一个指令。
这就是CPU所采用的先进先出运算模式。从个人计算机诞生起,CPU的硬件架构到指令集都是基于串行运算模式设计,其优势是逻辑控制力好,即计算通用性很好,为的就是能应付各种复杂的计算需求,在软件对计算性能要求不高的时代,这种设计是有优势的。

GPU

GPU,全程Graphics Processing Unit,又称图像处理器(显示核心、视觉处理器、显示芯片),是一种专门用于处理图形和图像计算任务的处理器。

  • 特点:GPU拥有大量的小型处理核心,可同时处理多个任务,能够高效地执行并行计算。它在处理复杂图像、视频和3D图形等方面表现出色。但值得注意的是,GPU无法单独工作,必须由CPU进行控制调用才能工作。
  • 应用:基于它的特点,GPU不仅可以在图像处理领域大显身手,如游戏产业、动画制作;它还被用来科学计算、数值分析、海量数据处理、金融分析等需要大规模并行计算的领域。

GPU除作为独立显卡的核心用于个人电脑,为高清视频、大型游戏提供高质量3D图形渲染,基于GPU构建的专业显卡还配置在高端工作站上做复杂的三维设计和工程仿真。但当前GPU最重要的应用场景还是AI计算,支撑AI大模型的训练和推理。

Q:那为什么CPU不行,非GPU不可?
A:GPU的推出就是为了接手原本由CPU负责的图形显示处理工作。因而GPU架构有其先天的计算特征,就是完全为3D图形处理而设计。

在这里插入图片描述

  • CPU指令相对复杂,它需要做好资源的调度和控制,支持操作系统的中断处理、内存管理、I/O处理等,运算过程需要大量的逻辑控制,因此内部的控制单元较多,极大挤压了计算单元数量,使计算性能受到很大限制,还需要预留空间为数据建立多级缓存;
  • GPU运算就不需要考虑这些,也无需太多的控制单元,芯片上大部分空间都留给了计算单元,因此适合并行计算任务和大规模数据访问,通常具有更高的带宽和更低的延迟。

ASIC

ASIC(Application Specific Integrated Circuit)是一种为专门目的而设计的集成电路。无法重新编程,效能高功耗低,但价格昂贵。近年来涌现出的类似TPU、NPU、VPU、BPU等各种芯片,本质上都属于ASIC。
ASIC不同于 GPU 和 FPGA 的灵活性,定制化的 ASIC 一旦制造完成将不能更改,所以初期成本高、开发周期长的使得进入门槛高。目前,大多是具备 AI 算法又擅长芯片研发的巨头参与,如 Google 的 TPU。由于完美适用于神经网络相关算法,ASIC 在性能和功耗上都要优于 GPU 和 FPGA,TPU1 是传统 GPU 性能的 14-16 倍,NPU 是 GPU 的 118 倍。寒武纪已发布对外应用指令集,预计 ASIC 将是未来 AI 芯片的核心。

ASIC芯片的计算能力和计算效率都可以根据算法需要进行定制,所以ASIC与通用芯片相比,具有以下几个方面的优越性:体积小、功耗低、计算性能高、计算效率高、芯片出货量越大成本越低。但ASIC芯片的算法是固定的,一旦算法变化就可能无法使用。

NPU

NPU(Neural network Processing Unit), 即神经网络处理器。神经网络处理器NPU采用“数据驱动并行计算”的架构,是专门为人工智能应用开发的处理器,尤其擅长进行神经网络的训练和推理计算,特别是处理视频、图像类的海量多媒体数据。

  • 特点:NPU采用了专门的硬件加速技术,能够高效地进行大规模的矩阵运算,解决了传统芯片在神经网络运算时效率低下的问题。
  • 应用:NPU主要应用于人脸识别、语音识别、自动驾驶、智能相机等需要进行深度学习任务的领域。

TPU

TPU,全称Tensor Processing Unit,即张量处理单元,TPU是谷歌开发的一种特殊类型的芯片,专门用于加速人工智能和机器学习工作负载。(张量(tensor)是一个包含多个数字/多维数组的数学实体)。

目前,几乎所有的机器学习系统,都使用张量作为基本数据结构。所以,张量处理单元,我们可以简单理解为“AI处理单元”。TPU主要针对张量(tensor)操作进行了优化,提高了机器学习相关任务的性能。
在这里插入图片描述

  • 特点:TPU具有卓越的张量计算能力,能够高速进行大规模矩阵运算,支持高性能的神经网络训练和推理计算。
  • 应用:常用于机器学习模型的训练和推理计算,例如在自然语言处理、计算机视觉和语音识别等领域中发挥重要作用。

BPU

BPU,Brain Processing Unit,大脑处理器。是由地平线科技提出的嵌入式人工智能处理器架构。第一代是高斯架构,第二代是伯努利架构,第三代是贝叶斯架构。目前地平线已经设计出了第一代高斯架构,并与英特尔在2017年CES展会上联合推出了ADAS系统(高级驾驶辅助系统)

FPGA

FPGA全称是可编程逻辑门阵列,内部结构由大量的数字(或模拟)电路组成,可以实现各种功能。FPGA是ASIC的一种,只是ASIC是全定制电路芯片,FPGA是半定制电路芯片,它解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。

数据计算包括两种方式:一种是利用CPU或GPU基于指令的架构编写计算所需的软件,另一种是针对特定计算需求设计制造出一套专用的电路,比如ASIC、FPGA。但不同的是,对FPGA进行编程要使用硬件描述语言,硬件描述语言描述的逻辑可以直接被编译为晶体管电路的组合。所以FPGA实际上直接用晶体管电路实现用户的算法,没有通过指令系统的翻译。

相比于CPU 和GPU数据处理需先读取指令和完成指令译码,FPGA不采用指令和软件,是软硬件合一的器件。因而计算效率更高、功耗更低,且更接近IO。

总结

  • 功能:CPU具有通用性,适用于各种计算任务;GPU擅长图形渲染和并行计算;NPU专注于神经网络的训练和推理计算;TPU专为机器学习任务而设计。

  • 并行能力:GPU和TPU具有更多的处理核心和更高的并行计算能力,适合处理大规模并行计算任务。

  • 硬件加速:NPU和TPU采用专门的硬件加速技术,能够高效地执行特定类型的计算任务。

  • 应用领域:CPU广泛应用于个人电脑、服务器等各种设备;GPU主要应用于游戏、动画制作、科学计算等领域;NPU常用于人脸识别、语音识别等人工智能应用;TPU常用于深度学习任务和自然语言处理等领域。

目前主流Al芯片就三类:以GPU为代表的通用芯片、以ASIC定制化为代表的专用芯片以及以FPGA为代表的半定制化芯片,其中GPU市场最为成熟且应用最广。但人工智能产业发展除了需要强大的算力,还需要更优秀的算法和庞大的数据支撑,GPU能否在AI算力竞争中持续保持优势仍是未知。在我们看来,有谷歌和华为背书的ASIC,以及英特尔和AMD背书的FPGA,未来都是有很大破局机会的。

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

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

相关文章

微信小程序解决华为手机保存图片到相册失败

1.新增隐私设置 2.优化代码 新增uni.authorize判断 _saveCode() {let that this;console.log(点击了保存图片)console.log(this.result)uni.authorize({scope: scope.writePhotosAlbum,success(e) {console.log(e)if (this.result ! "") {uni.saveImageToPhotosAlb…

RCS系统之:界面设计

RCS Floor Manager设计的主要目的: 实时监控机器人状态实时查看货架状态查看机器人任务状态查看捡货站的任务状态地图的状态信息其他元素,如打包机,机械臂的状态动态的编辑地图元素信息等等 有兴趣的可以留言一起交流下

[office] Excel2007在工作簿中创建区域名称 #职场发展#经验分享

Excel2007在工作簿中创建区域名称 Excel 提供了几种不同的方法来创建区域名称。但在开始之前,必须注意关于可接受内容的重要规则: 名称不能含有空格。可以用一个下划线字符来代替空格(如Annual Total ) 。 可以使用字母和数字的任意组合,但是名称必须以…

Redis + Lua 实现分布式限流器

文章目录 Redis Lua 限流实现1. 导入依赖2. 配置application.properties3. 配置RedisTemplate实例4. 定义限流类型枚举类5. 自定义注解6. 切面代码实现7. 控制层实现8. 测试 相比 Redis事务, Lua脚本的优点: 减少网络开销:使用Lua脚本&…

C++ STL精通之旅:向量、集合与映射等容器详解

目录 常用容器 顺序容器 向量vector 构造 尾接 & 尾删 中括号运算符 获取长度 清空 判空 改变长度 提前分配好空间 代码演示 运行结果 关联容器 集合set 构造 遍历 其他 代码演示 运行结果​编辑 映射map 常用方法 构造 遍历 其他 代码演示1​编…

搜索与图论(一)(深搜,广搜,树与图的存储遍历,拓扑排序)

一、DFS 往深里搜,搜到叶子结点那里,回溯,到可以继续到叶子结点深搜的位置。 1、回溯一定要恢复现场 2、定义一个与当前递归层数有关的终止条件(题目要求的东西) 3、每层都用循环判断是否存在可以dfs的路 输出数字…

PbootCMS采集插件使用教程

这篇Pboot采集教程教你使用PbootCMS采集插件,自动批量采集网页文章数据,并发布到PbootCMS系统,快速丰富网站的内容。 1. 下载并安装PbootCMS采集插件 1-1)PbootCMS采集插件免费下载:Pboot采集插件-PbootCMS发布模块下…

「Mybatis实战五」:Mybatis核心文件详解 - MyBatis常用配置environments、properties

一、MyBatis核心配置文件层级关系 ​ 本文代码在 Mybatis初体验:一小时从入门到运行你的第一个应用 所构建的基础代码结构之上,进行修改。 MyBatis 的配置文件包含了会深深影响 MyBatis 行为的设置和属性信息。 配置文档的顶层结构如下: 二…

什么是大小端字节序存储?如何用代码判断当前的机器是大端字存储还是小端存储?

目录 什么是大端字节序存储与小端字节序存储 为什么会有大端和小端之分? 用代码判断当前机器是大端存储还是小端存储 什么是大端字节序存储与小端字节序存储 1.字节序:以字节为单位,讨论存储顺序 2.大端字节序存储:高位在低地…

C和C++面试--看的不多只看一篇

C和C面试 1. 语言基础1.1 C和C有什么区别?1.2 a和&a有什么区别?1.3 #define和const区别?(编译阶段、安全性、内存占用等)1.4 inline函数1.5 对于⼀个频繁使⽤的短⼩函数,应该使⽤什么来实现&#xff1f…

【C语言】三子棋游戏实现代码

目录 1.三子棋代码功能介绍 2.三子棋游戏实现步骤 ①打印菜单栏 ②判断是否进入三子棋游戏 ③三子棋游戏基本函数实现 (1)清空(初始化)棋盘函数实现 (2)打印棋盘函数实现 (3&#xff0…

【HTML】MDN

文章目录 一、html元素1.1 <a>1.2 <abbr>1.3 <address>1.4<area>1.5 <article>1.6 <aside>1.7 <audio>1.8 <b>1.9 <base>1.10<bdi>1.11 <bdo>1.12 <blockquote>1.13 <body>1.14 <br>1.15…

计组学习笔记2024/2/4

1.计算机的发展历程 2.计算机硬件的基本组成 存储器 -> 就是内存. 3.各个硬件的部件 寄存器 -> 用来存放二进制数据. 各个硬件的工作原理视频留白,听完后边课程之后再来理解理解. 冯诺依曼计算机的特点: 1.计算机由五大部件组成 2.指令和数据以同等地位存于存储器,…

计算机视觉 | OpenCV 实现手势虚拟控制亮度和音量

Hi&#xff0c;大家好&#xff0c;我是半亩花海。在当今科技飞速发展的时代&#xff0c;我们身边充斥着各种智能设备&#xff0c;然而&#xff0c;如何更便捷地与这些设备进行交互却是一个不断被探索的课题。本文将主要介绍一个基于 OpenCV 的手势识别项目&#xff0c;通过手势…

Qt程序设计-导出PDF

本文讲解如何实现导出PDF,包含如何使用HTML格式和添加图片。 实例如下: 创建项目,添加两个按钮,并在D盘提前准备好图片。 窗体的头文件 #ifndef MAINWINDOW_H #define MAINWINDOW_H#include <QMainWindow>#include <QPrinter> #include <QPainter> #i…

Oracle systemstate、gdb、dbx介绍

当数据库出现严重的性能问题或者hang了的时候&#xff0c; 可能最常用的办法就是重启数据库&#xff0c;简单有效解决问题&#xff1b;但是重启后如何追踪问题的根本原因成了难题&#xff0c;很多信息随着重启也消失不见了&#xff0c;让追查问题变的十分棘手&#xff0c;这时就…

ElementUI鼠标拖动没列宽度

其实 element ui 表格Table有提供给我们一个resizable属性 按官方文档上描述 它就是控制是否允许拖拽表格列大小的属性 而且 它的默认值就是 true 但是依旧很多人会反应拖拽不了 首先 表格要有边框 如果没有变宽 确实是拖拽不了 给 el-table加上 border属性 运行结果如下 但…

Android用setRectToRect实现Bitmap基于Matrix矩阵scale缩放RectF动画,Kotlin(二)

Android用setRectToRect实现Bitmap基于Matrix矩阵scale缩放RectF动画&#xff0c;Kotlin&#xff08;二&#xff09; 文章 https://zhangphil.blog.csdn.net/article/details/135980821 实现了基于Matrix缩放Bitmap的动画&#xff0c;但是从左上角&#xff08;0,0&#xff09;位…

cesium-相机的使用

直接上代码 <template><div id"cesiumContainer" style"height: 100vh;"></div><div id"toolbar" style"position: fixed;top:20px;left:220px;"><el-breadcrumb><el-breadcrumb-item>场景设置实…

基于Springboot的考编论坛网站的设计与实现(有报告)。Javaee项目,springboot项目。

演示视频&#xff1a; 基于Springboot的考编论坛网站的设计与实现&#xff08;有报告&#xff09;。Javaee项目&#xff0c;springboot项目。 项目介绍&#xff1a; 采用M&#xff08;model&#xff09;V&#xff08;view&#xff09;C&#xff08;controller&#xff09;三层…