通俗易懂讲解CPU、GPU、FPGA的特点

这篇具有很好参考价值的文章主要介绍了通俗易懂讲解CPU、GPU、FPGA的特点。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1. CPU vs GPU

  大家可以简单的将CPU理解为学识渊博的教授,什么都精通;而GPU则是一堆小学生,只会简单的算数运算。可即使教授再神通广大,也不能一秒钟内计算出500次加减法。因此,对简单重复的计算来说,单单一个教授敌不过数量众多的小学生。在进行简单的算数运算这件事上,500个小学生(并发)可以轻而易举打败教授。
通俗易懂讲解CPU、GPU、FPGA的特点
  可以看到,CPU和GPU的最大不同在于架构。CPU适用于广泛的应用场景(学识渊博),可以执行任意程序;而GPU则专为多任务而生,并发能力强。
  具体来讲,就是多核,一般的CPU有2核、4核、8核等;而GPU则可能会有成百上千核
通俗易懂讲解CPU、GPU、FPGA的特点
  GPU构造与CPU相似,包含控制单元(control unit)、算术逻辑单元(ALU)、快取(cache)及动态随机存取记忆体(DRAM)等元件。差别在于,GPU的控制单元、ALU及快取设计较为简易,且数量较多,导致GPU擅于处理大量简单的工作(例如渲染图像)
  可以看到,CPU内部cache以及控制部分占据了很大一部分片上面积,因此计算单元占比很少。GPU只有很简单的控制单元,剩下的大部分都被计算单元占据,因此CPU的核数有限,而GPU则轻松堆出上千核。只不过CPU中每个核的能力好比教授,而GPU的每个核的能力好比一个小学生。
  为什么GPU需要这么多核心?
  想一想计算机上的一张图是怎么表示的?无非就是屏幕上的一个个像素:
通俗易懂讲解CPU、GPU、FPGA的特点
  我们需要为每个像素进行计算,而且是相同的运算,就好比刚才例子中的小学生计算计加法一样。
  对于屏幕来说一般会有上百万个像素,如果我们要串行的为每一个像素进行运算效率就太低了。因此可以让GPU中的每一个核心去为相应的像素进行计算。由于GPU中有很多核心,因此并行计算可以大幅提高速度。除了GPU的核心数比较多之外,GPU的工作方式也比较奇怪。
  GPU的工作方式:
  对于CPU来说,不同的核心可以执行不同的机器指令,coreA在运行word线程的同时coreB上可以运行浏览器线程,这就是所谓的多指令多数据,MIMD(Multiple Instruction, Multiple Data)
  而GPU则不同,GPU上的这些核心必须整齐划一的运行相同的机器指令,只是可以操作不同的数据,这就好比这些小学生在某个时刻必须都进行加法计算,不同的地方在于有的小学生可能需要计算1+1,有的要计算2+6等等,变化的地方仅在于操作数,这就是所谓的单指令多数据,SIMD(Single Instruction, Multiple Data)
  因此,我们可以看到GPU的工作方式和CPU是截然不同的。
  除了这种工作方式之外,GPU的指令集还非常简单,不像CPU这种复杂的处理器。如果你去看CPU的编程手册就会发现CPU负责的事情非常多,如中断处理、内存管理、IO等。这些对于GPU来说都是不存在的,可以看到GPU的定位非常简单,就是纯计算,GPU绝不是用来取代CPU的,CPU只是把一些GPU非常擅长的事情交给它,GPU仅仅是用来分担CPU工作的配角。

  GPU擅长什么?
  比较适合GPU的计算场景是这样的:计算简单、重复计算,因此如果你的计算场景和这里的图像渲染相似那么使用GPU就很合理了。因此对于图形图像计算、天气预报以及神经网络等都适用于GPU
  难倒CPU的问题,就是当它被交付大量的琐碎工作,虽然它能够处理,却会浪费太多宝贵时间;大材小用,就像米其林主厨被派去夜市炸鸡排,耽搁了高档餐厅的业务。相较下,GPU的控制单元与ALU设计简单、快取空间较小,拥有大量核心数及比较高的吞吐量,适合快速处理简单的运算,而GPU除了渲染图像之外,GPU在需要密集资料运算的领域也崭露头角,比如在大数据分析、机器学习、AI人工智慧发展等方面,GPU已成为推动电脑科学向前迈进的重要功臣。

2. FPGA

  FPGA是什么呢?
  FPGA(Field Programmable Gate Array),即现场可编程门阵列,它可以通过硬件描述语言(Verilog或VHDL)描述一个电路设计,通过配套的EDA工具综合与布局,并烧录至 FPGA来实现设计需要
  目前所有的FPGA或eFPGA都包含大量的可编程逻辑单元和可编程布线单元。逻辑单元可以实现一小部分数字逻辑,而布线则连接这些逻辑单元来组成更大的数字电路。
通俗易懂讲解CPU、GPU、FPGA的特点

  FPGA的基本原理:按照门电路的组合逻辑和时序逻辑,利用查找表(Look-Up-Table,简称LUT),实现快速的数据计算。
  可编程逻辑单元:
  数字电路可以细分为组合逻辑和时序逻辑。 FPGA中实现组合逻辑的部分就是查找表(LUT),时许逻辑则依靠寄存器。若干个LUT和寄存器相互连接则构成了一个逻辑簇。不同的FPGA公司所定义的逻辑簇的结构也是不同的。 逻辑簇结构有2大好处,第一逻辑簇中的互联速度要快,可以提高FPGA速度; 第二, 逻辑簇的应用可以简化排版布线的复杂度,缩短综合时间。
通俗易懂讲解CPU、GPU、FPGA的特点

  可编程布线单元:
  与定制电路不同, FPGA的布线资源都是预制好的, 因此预制的布线资源能够连接绝大多数的逻辑单元(簇)。 对于用户设计好的项目,通过控制一系列的开关来满足特定单元间的互联。 这也就使得布线资源占据了FPGA的绝大部分面积, 而且复杂的布线网络中控制开关过多的话会大大降低FPGA的运行频率。如果减少布线资源, 则会加大EDA软件算法的难度,而且会导致电路布局布线失败。
  因此如何设计逻辑簇和与之配合的布线资源,使其达到速度和面积的均衡,而且还要考虑到EDA软件算法的难度,执行时间以及内存占用, 这是每个FPGA厂商的核心中的核心

CPU的难点是其硬件结构,软件指令集则不是厂家的主要难点。 而FPGA的硬件结构原理并不是主要技术壁垒,但是其EDA软件的核心算法则是每个公司的长期积累的成果

通俗易懂讲解CPU、GPU、FPGA的特点

  CPU vs GPU vs FPGA:
通俗易懂讲解CPU、GPU、FPGA的特点文章来源地址https://www.toymoban.com/news/detail-504411.html

到了这里,关于通俗易懂讲解CPU、GPU、FPGA的特点的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 七大排序算法——冒泡排序,通俗易懂的思路讲解与图解(完整Java代码)

    排序:所谓排序,就是使一串记录,按照其中的某个或某些的大小,递增或递减的排列起来的操作。 上述待排序的数中,有两个5。 将 前面 的5标记一个a, 将 后面 的5标记一个b。 通过算法进行排序后,这一组数就有序了, 但是要看两个相同的5的位置是否有改变。

    2024年02月16日
    浏览(36)
  • 七大排序算法——堆排序,通俗易懂的思路讲解与图解(完整Java代码)

    排序:所谓排序,就是使一串记录,按照其中的某个或某些的大小,递增或递减的排列起来的操作。 上述待排序的数中,有两个5。 将 前面 的5标记一个a, 将 后面 的5标记一个b。 通过算法进行排序后,这一组数就有序了, 但是要看两个相同的5的位置是否有改变。

    2024年02月16日
    浏览(31)
  • 七大排序算法——希尔排序,通俗易懂的思路讲解与图解(完整Java代码)

    排序:所谓排序,就是使一串记录,按照其中的某个或某些的大小,递增或递减的排列起来的操作。 上述待排序的数中,有两个5。 将 前面 的5标记一个a, 将 后面 的5标记一个b。 通过算法进行排序后,这一组数就有序了, 但是要看两个相同的5的位置是否有改变。

    2024年02月03日
    浏览(49)
  • 七大排序算法——归并排序,通俗易懂的思路讲解与图解(完整Java代码)

    排序:所谓排序,就是使一串记录,按照其中的某个或某些的大小,递增或递减的排列起来的操作。 上述待排序的数中,有两个5。 将 前面 的5标记一个a, 将 后面 的5标记一个b。 通过算法进行排序后,这一组数就有序了, 但是要看两个相同的5的位置是否有改变。

    2024年02月15日
    浏览(45)
  • 用通俗易懂的方式讲解大模型分布式训练并行技术:MOE并行

    前面的文章中讲述了数据并行、流水线并行、张量并行、序列并行、自动并行等多种并行技术。但现在的模型越来越大,训练样本越来越多,每个样本都需要经过模型的全部计算,这就导致了训练成本的平方级增长。 而当我们希望在牺牲极少的计算效率的情况下,把模型规模

    2024年02月02日
    浏览(63)
  • 用通俗易懂的方式讲解:数据预处理归一化(附Python代码)

    本文来自技术群小伙伴的分享,想加入按照如下方式 目前开通了技术交流群,群友已超过3000人,添加时最好的备注方式为:来源+兴趣方向,方便找到志同道合的朋友 方式①、添加微信号:dkl88191,备注:来自CSDN+技术交流 方式②、微信搜索公众号:Python学习与数据挖掘,后

    2023年04月10日
    浏览(38)
  • 用通俗易懂的方式讲解:十分钟读懂 Stable Diffusion 运行原理

    AIGC 热潮正猛烈地席卷开来,可以说 Stable Diffusion 开源发布把 AI 图像生成提高了全新高度,特别是 ControlNet 和 T2I-Adapter 控制模块的提出进一步提高生成可控性,也在逐渐改变一部分行业的生产模式。惊艳其出色表现,也不禁好奇其背后技术。 之前写过一篇实战类的文章一文

    2024年01月21日
    浏览(56)
  • 用通俗易懂的方式讲解:Stable Diffusion WebUI 从零基础到入门

    本文主要介绍 Stable Diffusion WebUI 的实际操作方法,涵盖prompt推导、lora模型、vae模型和controlNet应用等内容,并给出了可操作的文生图、图生图实战示例。适合对Stable Diffusion感兴趣,但又对Stable Diffusion WebUI使用感到困惑的同学。 前面分享了两篇文章:十分钟读懂 Stable Diffusio

    2024年01月17日
    浏览(44)
  • 用通俗易懂的方式讲解:一文讲透主流大语言模型的技术原理细节

    大家好,今天的文章分享三个方面的内容: 1、比较 LLaMA、ChatGLM、Falcon 等大语言模型的细节:tokenizer、位置编码、Layer Normalization、激活函数等。 2、大语言模型的分布式训练技术:数据并行、张量模型并行、流水线并行、3D 并行、零冗余优化器 ZeRO、CPU 卸载技术 ZeRo-offload、

    2024年01月16日
    浏览(55)
  • 用通俗易懂的方式讲解:一文教会你学会 AI 绘画利器 Stable Diffusion

    随着 stable-diffusion 的开源,让更多人有机会直接参与到 AI 绘画的创作中,相关的教程也如雨后春笋般的出现。可是目前我看到的教程同质性较高,通常只能称作为\\\"使用流程讲解\\\",但是通常没有对其原理和逻辑进行深入说明。 所以本文的目的,是用尽可能少的废话,给大家补

    2024年01月18日
    浏览(47)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包