• 一文搞懂GPU的概念、工作原理,以及与CPU的区别


    中午好,我的网工朋友。

    最近GPTs热度很高啊,你们都用上了吗?

    ChatGPT到现在热度仍不减,人工智能还在快速发展,这都离不开高性能、高算力的硬件支持。

    如果以英伟达A100GPU的处理能力计算,运行ChatGPT将需要使用到30000块英伟达GPU,这些都将用做AI推理和图形计算。

    那GPU到底是啥?跟CPU又有什么不一样?今天就给你来篇技术科普文。

    今日文章阅读福利:《全国网络工程师交流群(进群名额限时开放)》

    想学习更多技术?又或是和大佬交流讨论吗,俱乐部的全国网工交流群限时开放。私信发送暗号“进群”,前30名朋友可获得进群资格。

    01 GPU是什么?

    图形处理器(Graphics Processing Unit,缩写:GPU),又称显示核心、视觉处理器、显示芯片;

    是一种专门在个人电脑、工作站、游戏机和一些移动设备(如平板电脑、智能手机等)上图像运算工作的微处理,是显卡或GPU卡的“心脏”。

    01 GPU的工作原理

    GPU的工作通俗的来说就是完成3D图形的生成,将图形映射到相应的像素点上,对每个像素进行计算确定最终颜色并完成输出。

    GPU的工作原理流程如下:

    1. GPU包含多个核心,每个核心都可以独立执行命令。

    2. 每个核心具有自己的存储器,用于存储指令和数据。

    3. GPU会接收来自CPU的指令,并把它们分发到多个核心中进行处理。

    4. GPU会把处理后的数据传输回 CPU,以便CPU可以使用它。

    5. GPU的性能取决于其内部的核心数量、时钟频率以及RAM容量。

    02 GPU和CPU之间的区别

    理解 GPU 和 CPU 之间区别的一种简单方式是比较它们如何处理任务。

    CPU 由专为顺序串行处理而优化的几个核心组成,而 GPU 则拥有一个由数以千计的更小、更高效的核心(专为同时处理多重任务而设计)组成的大规模并行计算架构。

    CPU是一个有多种功能的优秀领导者。它的优点在于调度、管理、协调能力强,计算能力则位于其次。

    而GPU相当于一个接受CPU调度的“拥有大量计算能力”的员工。

    GPU可以利用多个CUDA核心来做并行计算,而CPU只能按照顺序进行串行计算,同样运行3000次的简单运算,CPU需要3000个时钟周期,而配有3000个CUDA核心的GPU运行只需要1个时钟周期。

    简而言之,CPU擅长统领全局等复杂操作,GPU擅长对大数据进行简单重复操作。CPU是从事复杂脑力劳动的教援,而GPU是进行大量并行计算的体力劳动者。

    那么,GPU和CPU的具体区别有哪些呢?网络工程师俱乐部分享

    01 计算量比较

    CPU:

    计算量小,原理:只有4个运算单元;

    GPU:

    计算量大,原理:有1000个运算单元。

    02 计算复杂度比较

    CPU:

    可计算复杂的运算,比如积分微分,4个运算单元都属于专家级别;

    GPU:

    只可以计算简单的1+1算术题,不能计算复杂的微分积分,1000个运算单元属于小学生水平。

    03 对于单个积分微分的计算速度比较

    CPU:

    较快。原理:单线程计算(比如机器人运动控制),单个芯片性能强劲,计算能力强,能计算出来。

    GPU:

    较慢,甚至可能计算不了;原理:单个芯片性能弱,计算能力弱,可能算不出来,或速度很慢。

    04 对于多个1+1算术题的计算速度比较

    CPU:

    速度较慢。因为计算原理是:先算第1题, 再算第2题,总时间为【T1+T2+T3>>>+T1000(也就是1000个算术题消耗时间的累加])】

    GPU:

    速度很快。因为计算原理是:可同时计算1000道算术题,总时间为【max(T1,T2,T3...T1000)(也就是1000个算术题消耗时间中的最大值)】

    05 形象比喻

    CPU:

    像老教授,积分微分都会算,就是工资高,一个老教授资顶二十个小学生,你要是富士康你雇哪个?GPU就是这样,用很多简单的计算单元去完成大量的计算任务,纯粹的人海战术。

    GPU:

    计算量大,但没什么技术含量,而且要重复很多很多次。就像你有个工作需要算几亿次一百以内加减乘除一样,最好的办法就是雇上几十个小学生一起算,一人算一部分,反正这些计算也没什么技术含量,纯粹体力活而已。

    06 适用场景

    GPU:

    适合前后计算步骤无依赖性,相互独立的计算场景。很多涉及到大量计算的问题基本都有这种特性,比如你说的破解密码,挖矿和很多图形学的计算。

    这些计算可以分解为多个相同的简单小任务,每个任务就可以分给一个小学生去做。网络工程师俱乐部分享

    CPU:

    适合需要前后计算步骤严密关联的计算场景。这些任务涉及到“流”的问题,必须先计算完第一步,再去计算第二步;

    比如你去相亲,双方看着顺眼才能继续发展。总不能你这边还没见面呢,那边找人把证都给领了。

    这种比较复杂的问题都是CPU来做的,生活中大部分用的都是CPU,例如武器装备运动控制、个人电脑使用等。

    03 全球GPU厂商 Top 30

    整理:老杨丨10年资深网络工程师,更多网工提升干货,请关注公众号:网络工程师俱乐部

  • 相关阅读:
    用尽可能简单易懂的代码做个时间轴(时间线)
    Java面向对象——接口
    JSP自定义标签(foreach标签与select标签的自定义方式)
    LeetCode-779. 第K个语法符号【递归,绝对好理解】
    数据结构-其他
    typescript真的有学习的必要吗?
    JS基础:for...in、for...of、forEach(详解)
    关于 a (链接)标签 里面包含图片会被撑大的解决方法、a标签会撑大的解决方法
    试用了多款报表工具,终于找到了基于.Net 6开发的一个了
    第二十三章 javascript请求方式Ajax
  • 原文地址:https://blog.csdn.net/SPOTO2021/article/details/134439706