大家好,我是猫头鹰的猫老毛。
随着普及,GPU成为了当下最火的单品,一块顶级GPU可以卖到数万美元。 由于其产品需求激增,英伟达的市场估值已飙升至超过2万亿美元。
你是否好奇过:为什么 AI 会让 GPU 着火? AI计算需要GPU吗?
今天我们就来说说GPU到底是什么?
▉什么是 GPU?它与 CPU 有何不同?
在GPU流行之前,提到最多的就是CPU。 那么两者有什么区别呢? CPU会被GPU取代吗?
我们来看看两者的具体区别:
CPU 是 Unit 的拼写错误。 CPU通常被称为计算机的“大脑”。 它主要负责计算处理功能。 操作系统、应用程序等运行都必须依赖它。 CPU还决定了计算机的整体速度。
GPU是Unit的缩写。 它最初是为了辅助 3D 渲染而设计的,可以同时并行化更多指令。 它非常适合动画渲染、图像处理、人工智能等流行的工作负载。
简而言之,CPU 针对延迟进行了优化,而 GPU 针对带宽进行了优化。 CPU 更擅长一次处理一项任务,而 GPU 可以同时处理多个任务。 就像有些人擅长按顺序一项一项地执行任务一样,有些人可以同时执行多项任务。
为了展示CPU和GPU之间的区别,曾邀请亚当·萨维奇(Adam )和杰米·海涅曼(Jamie )使用机器人和彩弹来重现一幅著名的艺术作品——《蒙娜丽莎》。 微笑。 该视频充分展示了CPU和GPU的工作过程。 比如下面的视频:
可以用一个类比来简单地解释两者之间的区别。 CPU就像跑车,GPU就像卡车。 两者的任务都是将100从位置A运输到位置B。CPU(跑车)可以快速获取RAM中的一些内存数据(货物),GPU(货车)执行速度较慢(延迟较高)。 但CPU(跑车)一次只能运输2个,而且需要50次才能完成运输。
然而,GPU(卡车)可以一次获取更多内存数据并进行传输。
也就是说,CPU更倾向于快速处理少量数据(如算术运算:5*6*7),而GPU则更擅长处理大量重复数据(如矩阵运算:(A*公元前)。 因此,虽然CPU的单次交付时间更快,但在处理图像处理、动画渲染、深度学习等需要大量重复工作负载的情况下,GPU的优势更为显着。
当前AI计算的数据类型与图像处理和深度学习的数据类型更加相似,这也是GPU供不应求的重要原因。
那么CPU和GPU有什么区别呢? 我们来详细看看。
▉GPU和CPU有什么区别?
首先,两者的核心架构不同。
下面两张图可以帮助我们理解CPU和GPU工作原理的区别。 上面我们提到CPU是为顺序串行处理而设计的,GPU是为数据并行而设计的。 GPU有成百上千个更小更简单的内容,而CPU有几个大而复杂的核心。
GPU 内核经过优化,可以同时对多个数据元素执行类似的简单处理操作。 而且CPU针对顺序指令处理进行了优化,这也导致了两者核心处理能力的差异。
网上有一个比喻用来比较GPU和CPU核心的区别。 我认为这是非常合适的。 CPU的核心就像一位知识渊博的教授,而GPU的核心则更像是一群只会做简单算术运算的小学生。 教授再厉害,也无法在一秒内算出500次加减法,所以对于简单的重复计算,一个教授根本不是大量小学生的对手。 在进行简单的算术运算时,500名小学生(并发)可以轻松击败教授。
其次,内存架构不同
除了计算差异之外,GPU 还利用专门的高带宽内存架构将数据发送到所有核心。 目前,GPU 通常使用 GDDR 或 HBM 内存,它们提供的带宽比 CPU 中的标准 DDR 内存带宽更高。
GPU 处理的数据被传输到该专用内存中,以最大限度地减少并行计算期间的访问延迟。 GPU 的内存被分段,以便可以执行来自不同内核的并发访问以获得最大吞吐量。
相比之下,CPU 内存系统针对缓存数据的低延迟访问进行了高度优化。 不太重视总带宽,这会降低数据并行工作负载的效率。
三、是并行性
专用核心和内存的组合使 GPU 能够比 CPU 更大程度地利用数据并行性。 对于图形、渲染等任务,相同的着色器程序可以在许多顶点或像素上并行运行。
现代 GPU 包含数千个核心,而高端 CPU 最多只有不到 100 个核心。 有了更多的核心,GPU 可以以更高的算术强度、更广泛的并行性处理数据。 对于并行工作负载,GPU 核心可以实现比 CPU 高 100 倍或更高的吞吐量。
相比之下,阿姆达尔定律意味着 CPU 可以为算法实现的并行加速是有限的。 即使有 100 个内部核心,由于串行部分和通信的原因,实际速度也限制在 10 倍或更低。 由于其大规模并行架构,GPU可以实现近乎完美的并行加速。
第四,它是即时(JIT)编译。
GPU 的另一个优势是即时 (JIT) 编译,它可以减少调度并行工作负载的开销。 GPU 驱动程序和运行时具有 JIT 编译功能,可在执行前将高级着色器代码转换为优化的设备指令。
这为程序员提供了灵活性,同时避免了 CPU 所需的传统离线编译步骤。 JIT还支持基于运行时信息的优化,综合效果将GPU开销降低到几乎为零。
相比之下,CPU必须坚持预编译的机器代码,无法根据运行时行为自适应地重新编译,因此CPU的调度开销较高,灵活性较差。
五、在编程模型方面
与CPU相比,GPU还提供了更好的并行编程模型CUDA,开发人员可以更快地编写并行代码,而不必担心低级线程、同步和通信问题。
提供了CUDA和C/C++编程语言,其中代码专注于跨抽象线程的并行计算,杂乱的协调细节在幕后隐形处理。
相比之下,CPU 并行性需要使用诸如此类的库直接处理线程。在线程管理、锁定和避免竞争条件方面,存在显着的额外复杂性。 这使得从高层次思考并行性变得更加困难。
六、两者应对方式不同
CPU基本都是实时响应,对单个任务的速度要求很高,所以采用多层缓存来保证单个任务的速度。
GPU经常使用批处理机制,即任务排队并逐个处理。
七、两者的应用方向不同
CPU 擅长的操作系统等应用程序需要快速响应实时信息,并且需要针对延迟进行优化。 因此,晶体管数量和能耗需要用在分支预测、乱序执行、低延迟缓存等控制部分。
GPU适合可预测性极高、相似操作数量较多、以及高延迟和高吞吐量的架构操作。 目前广泛应用于游戏、虚拟现实和人工智能三大应用市场。
此外,GPU还可应用于自动驾驶、医学图像分析、金融风控等领域。 然而,由于不同的应用场景对GPU性能的要求不同,因此在选择GPU时需要考虑其计算能力、功耗、应用领域等因素。 需要根据任务类型选择最合适的 GPU 并进行优化以利用其性能。
▉ GPU 的下一步是什么?
由于核心数量和运行速度的增加,GPU 的数字处理能力正在稳步提高。 但这些改进主要是由台积电 (TSMC) 等公司芯片制造的改进推动的。
目前,单个晶体管(任何计算机芯片的基本构建模块)的尺寸正在减小,从而允许在相同大小的物理空间中放置更多晶体管。 但这并不意味着传统GPU最适合人工智能相关的计算任务。
正如 GPU 最初旨在通过提供专门的图形处理来加速计算机一样,各种加速器也旨在加速机器学习任务。 AMD、AMD等公司正在为传统GPU制造各种加速器,以提供人工智能等场景的计算需求。 例如,CUDA和AMD的ROCm可以为开发人员提供创建、优化和部署GPU加速应用程序的综合环境,以确保跨各种平台的高性能和可扩展性。
此外,例如谷歌的张量处理单元和Cores芯片都是从头开始设计的,用于加速深度神经网络。
通常,数据中心 GPU 和其他 AI 加速器通常比传统 GPU 附加卡配备更多内存,这对于训练大型 AI 模型至关重要。 人工智能模型越大,GPU能力越强,准确率越高。
为了进一步加快训练和处理更大的人工智能模型(例如),开发人员可以将许多数据中心 GPU 聚集在一起形成超级计算机。 这需要更复杂的软件来正确利用可用的数字处理能力。 另一种方法是创建超大规模的加速器,例如芯片初创公司生产的“晶圆级”处理器。
与此同时,CPU的发展也没有停止。 AMD 和 Intel 的最新 CPU 内置了低级指令,可以加速深度神经网络所需的数字运算。 这一附加功能主要有助于“推理”任务,即利用其他已开发的人工智能模型。
但目前,要训练人工智能模型,首先需要GPU或类似GPU的大型加速器。
可以为特定的机器学习算法创建更专业的加速器。 例如,一家名为 Groq 的公司最近生产了一种“语言处理单元”(LPU),专门设计用于沿着 .
但历史表明,任何热门的机器学习算法都会很快达到顶峰,然后就会消失——因此昂贵的 GPU 或加速器硬件很快就会过时。
目前,我国GPU芯片仍占据较小比例的市场份额,但越来越多的国产GPU芯片正在进入市场,越来越多的国内企业正在向图形处理领域转型,如芯动科技、晶嘉微、等,国产GPU芯片也有更好的发展机会。 随着美国实施更多出口管制措施,可能为“中国芯片”的崛起创造机会窗口,这可能导致英伟达在中国市场面临更大的竞争压力。
彩蛋时间:如果您喜欢公众号的内容,可以动动手指点击关注公众号。 如果您想参与更多ICT技术群讨论,可以搜索“添加微信”,“注明公司名称”,让助手将您加进群。
结尾
➤ 过往精彩回顾
◆
◆
阅读一篇文章:
◆
◆
◆
“喜欢”和“看着”也是美德!