中午好,我的网工朋友。
最近GPTs热度很高啊,你们都用上了吗?
ChatGPT到现在热度仍不减,人工智能还在快速发展,这都离不开高性能、高算力的硬件支持。
如果以英伟达A100GPU的处理能力计算,运行ChatGPT将需要使用到30000块英伟达GPU,这些都将用做AI推理和图形计算。
那GPU到底是啥?跟CPU又有什么不一样?今天就给你来篇技术科普文。
今日文章阅读福利:《全国网络工程师交流群(进群名额限时开放)》
想学习更多技术?又或是和大佬交流讨论吗,俱乐部的全国网工交流群限时开放。私信发送暗号“进群”,前30名朋友可获得进群资格。
图形处理器(Graphics Processing Unit,缩写:GPU),又称显示核心、视觉处理器、显示芯片;
是一种专门在个人电脑、工作站、游戏机和一些移动设备(如平板电脑、智能手机等)上图像运算工作的微处理,是显卡或GPU卡的“心脏”。
GPU的工作通俗的来说就是完成3D图形的生成,将图形映射到相应的像素点上,对每个像素进行计算确定最终颜色并完成输出。
GPU的工作原理流程如下:
1. GPU包含多个核心,每个核心都可以独立执行命令。
2. 每个核心具有自己的存储器,用于存储指令和数据。
3. GPU会接收来自CPU的指令,并把它们分发到多个核心中进行处理。
4. GPU会把处理后的数据传输回 CPU,以便CPU可以使用它。
5. GPU的性能取决于其内部的核心数量、时钟频率以及RAM容量。
理解 GPU 和 CPU 之间区别的一种简单方式是比较它们如何处理任务。
CPU 由专为顺序串行处理而优化的几个核心组成,而 GPU 则拥有一个由数以千计的更小、更高效的核心(专为同时处理多重任务而设计)组成的大规模并行计算架构。
CPU是一个有多种功能的优秀领导者。它的优点在于调度、管理、协调能力强,计算能力则位于其次。
而GPU相当于一个接受CPU调度的“拥有大量计算能力”的员工。
GPU可以利用多个CUDA核心来做并行计算,而CPU只能按照顺序进行串行计算,同样运行3000次的简单运算,CPU需要3000个时钟周期,而配有3000个CUDA核心的GPU运行只需要1个时钟周期。
简而言之,CPU擅长统领全局等复杂操作,GPU擅长对大数据进行简单重复操作。CPU是从事复杂脑力劳动的教援,而GPU是进行大量并行计算的体力劳动者。
那么,GPU和CPU的具体区别有哪些呢?网络工程师俱乐部分享
CPU:
计算量小,原理:只有4个运算单元;
GPU:
计算量大,原理:有1000个运算单元。
CPU:
可计算复杂的运算,比如积分微分,4个运算单元都属于专家级别;
GPU:
只可以计算简单的1+1算术题,不能计算复杂的微分积分,1000个运算单元属于小学生水平。
CPU:
较快。原理:单线程计算(比如机器人运动控制),单个芯片性能强劲,计算能力强,能计算出来。
GPU:
较慢,甚至可能计算不了;原理:单个芯片性能弱,计算能力弱,可能算不出来,或速度很慢。
CPU:
速度较慢。因为计算原理是:先算第1题, 再算第2题,总时间为【T1+T2+T3>>>+T1000(也就是1000个算术题消耗时间的累加])】
GPU:
速度很快。因为计算原理是:可同时计算1000道算术题,总时间为【max(T1,T2,T3...T1000)(也就是1000个算术题消耗时间中的最大值)】
CPU:
像老教授,积分微分都会算,就是工资高,一个老教授资顶二十个小学生,你要是富士康你雇哪个?GPU就是这样,用很多简单的计算单元去完成大量的计算任务,纯粹的人海战术。
GPU:
计算量大,但没什么技术含量,而且要重复很多很多次。就像你有个工作需要算几亿次一百以内加减乘除一样,最好的办法就是雇上几十个小学生一起算,一人算一部分,反正这些计算也没什么技术含量,纯粹体力活而已。
GPU:
适合前后计算步骤无依赖性,相互独立的计算场景。很多涉及到大量计算的问题基本都有这种特性,比如你说的破解密码,挖矿和很多图形学的计算。
这些计算可以分解为多个相同的简单小任务,每个任务就可以分给一个小学生去做。网络工程师俱乐部分享
CPU:
适合需要前后计算步骤严密关联的计算场景。这些任务涉及到“流”的问题,必须先计算完第一步,再去计算第二步;
比如你去相亲,双方看着顺眼才能继续发展。总不能你这边还没见面呢,那边找人把证都给领了。
这种比较复杂的问题都是CPU来做的,生活中大部分用的都是CPU,例如武器装备运动控制、个人电脑使用等。
整理:老杨丨10年资深网络工程师,更多网工提升干货,请关注公众号:网络工程师俱乐部