当今科学技能的飞速开展,社会现已迈入了信息年代的智能化阶段。人脸辨认、智能客服、个性化推荐等使用现已深入到日常生活的各个方面。这些看得见的使用背面,是看不见的算力在默默地支撑着。在满意这些高算力需求的进程中,CPU 和 GPU 作为核算机的中心组件发挥着重要的承载作用。那么,CPU 和 GPU 究竟是什么?它们又有什么区别?

跟着数据成为五大出产要素之一,算力的作用变得愈发重要。算力即核算才干(Computing Power),更具体来说,算力是指数据中心的服务器经过对数据进行处理后完结成果输出的一种才干。

算力的概念起源于核算机的发明初期。最早的核算机是由机械设备完结核算使命,而算力指的便是这些机械设备的核算才干。随后,半导体技能的出现和开展,集成电路问世,开启了芯片年代。核算机在芯片的加持下,功用越来越强壮,体积也越来越小,终究诞生了个人核算机(PC),成为人类最重要的算力东西。

然后人工智能和大数据技能的迅猛开展也带动了算力需求的飞速添加。无论是训练杂乱的神经网络模型,仍是进行大规模数据剖析和处理,算力都扮演着至关重要的人物。现在,芯片现已成为算力的首要载体。当咱们谈论算力时,实际上是在讨论 CPU 和 GPU 等芯片的核算才干。在核算机科学范畴,CPU 和 GPU 作为核算机的中心组件,虽然名字只要“一字之差”,但其结构和功用却大不相同。

1 CPU vs GPU: 概念

CPU(Central Processing Unit),即中央处理器,是电脑、手机等众多电子产品的“心脏”。在咱们日常生活的许多场景中,如观看视频、玩游戏、谈天互动等,CPU 发挥着一致指挥和调度的关键作用。它首要担任履行程序指令、进行算术和逻辑运算以及操控和和谐核算机各个部件。

为了满意处理各种不同数据的强壮通用功用,CPU 的内部结构规划十分杂乱。CPU 由多个中心组成,每个中心又包含算术逻辑单元、操控单元和高速缓存等组件,而且能够独登时履行使命。至今停止,所有的 CPU 都遵从冯诺依曼体系结构的根本作业流程:取指令,指令译码,履行指令,数据回写,然后再取下一个指令、译码、履行、回写,重复进行直到程序完毕。经过这种作业流程,CPU 能够有效地履行程序,并操控整个系统的运转。

CPU vs GPU:不只仅是一字之差

CPU 作业流程

然而,跟着核算机的遍及,人们对图形显现的要求不断进步,例如在进行杂乱的三维建模时,需求处理很多的图形数据以出现传神的作用;在玩大型游戏时,要求系统能够处理高分辨率的画面和杂乱的游戏场景。虽然 CPU 内部采用了各种方法来加快指令履行,但跟着使命的增多,CPU 的功用显得有些力不从心。

面对这个问题,能否考虑添加更多的 CPU 来处理呢?这固然是一种思路,但这涉及到适当高的本钱,而且堆叠数量也不能确保完全处理核算才干缺乏的问题。这时分聪明的开发者就提出了一个更巧妙的处理方案:既然 CPU 的核算才干有限,为什么不将核算单元堆叠在同一块芯片上,让它们处理很多运算的使命呢?所以,GPU 诞生了。

GPU(Graphics Processing Unit),即图形处理器, 顾名思义,一种专门用来处理图形和图像核算的处理器。GPU 最初是为图形渲染和显现而规划的,用于加快核算机中图像的处理,例如在视频游戏、电影渲染、图形规划等方面。它只要少数的操控单元弛缓存单元,绝大部分的空间用来堆积运算单元,首要担任完结许多核算密集型使命。

2 CPU vs GPU: “差”在哪里?

经过引进 GPU,核算机系统能够充分使用其强壮的并行核算才干,加快图形和图像相关的核算使命。CPU 担任逻辑使命,而 GPU 来处理很多简略重复的核算使命,这种不同类型的使命分配给不同类型的处理器的模式,大大进步了系统功用。那么,CPU 和 GPU 究竟“差”在哪里呢?

2.1 架构组成

CPU 和 GPU 之间存在明显差异,是因为它们各自针对不同的方针和需求来规划,具体体现在:

  • CPU 需求有强壮的通用性,以处理各种不同类型的数据,一起需求进行逻辑判别,包括很多的分支跳转和中断处理,这导致内部结构异常杂乱。

  • GPU 首要面向类型高度一致、相互无依靠的大规模数据,并在纯洁的核算环境中履行,因而不需求处理杂乱的逻辑操作。

这就导致了 CPU 和 GPU 出现出十分不同的架构:

CPU vs GPU:不只仅是一字之差

CPU 根本架构

CPU vs GPU:不只仅是一字之差

GPU 根本架构

CPU 具有较大的缓存单元以及杂乱的逻辑操控单元,比较之下核算才干仅仅 CPU 很小的一部分。而 GPU 则具有数量众多的核算单元和超长的流水线,但只要十分简略的逻辑操控以及较小的缓存单元。

2.2 规划理念

CPU 和 GPU 的规划理念也天壤之别。首要,CPU 是根据低推迟(Low Latency)规划的

  • 强壮的运算单元: CPU 具有数量较少可是单个核算功用更强的运算单元,能够削减操作延时,更快地呼应。

  • 大容量缓存: 将一部分数据存储到高速缓存当中,使得高推迟的内存拜访转换为低推迟的缓存拜访。

  • 杂乱的操控单元: 分支猜测(Branch Prediction)机制能够下降分支延时;数据转发(Data Forwarding)机制下降数据延时。

GPU 则是根据高通量(High Throughput)规划的

  • 精简的运算单元: GPU 具有很多的运算单元,虽然单个单元的功用比不上 CPU,但能够支撑十分多的线程(Thread)从而达到十分大的吞吐量。

  • 小容量缓存: 与 CPU 不同,GPU 缓存的目的并不是用来存储后边需求拜访的数据,而是为线程提供服务,如果有很多线程需求拜访同一个相同的数据,缓存会兼并这些拜访,然后再去拜访内存。

  • 简略的操控单元: GPU 的操控单元没有分支猜测和数据转发机制。

总的来说,CPU 具有数量相对少(一般不超越两位数)但才干更强的中心,能够更快地处理单个使命,因而它尤其合适处理串行使命和逻辑操控等类型的作业。比较之下,GPU 具有成百上千核,虽然每个中心运算才干较低,但能够将杂乱使命分解成十分多的子使命再并行处理。

CPU vs GPU:不只仅是一字之差

串行处理进程

CPU vs GPU:不只仅是一字之差

并行处理进程

2.3 适用场景

CPU 与 GPU 二者的规划目的并不相同,因而适用的场景也天壤之别。CPU 更擅长一次处理一项使命,而 GPU 则能够一起处理多项使命。

用一个形象的比喻来解说。CPU 就像是一架高速飞机,而 GPU 则适当于一队货柜船。它们的使命是将很多货品从 A 位置敏捷运送到 B 位置。虽然 CPU(飞机)速度十分快,但每次只能带着少数的货品,需求多次往复才干完结使命。比较之下,GPU(货柜船)虽然单次履行速度相对较慢,但经过协同作业,每艘都能一起带着一部分货品,终究以团体的力气高效完结运输使命。

CPU vs GPU:不只仅是一字之差

CPU 与 GPU 处理使命对比

因而,虽然 CPU 单次履行使命的时刻更快,可是在需求很多重复作业负载时,GPU 优势就越明显。而当遇到前后核算过程严密关联的核算场景,这些使命涉及到“流”的问题,必须先核算完第一步,再去核算第二步。或是需求进行很多逻辑判别和杂乱核算的使命,比如运转操作系统、处理日常办公使命、进行单线程编程等。这种时分,运用 GPU 的效率反而没有 CPU 高。

综上所述,CPU 是个集各种运算才干的大成者。它的长处在于调度、办理、和谐才干强,而且能够做杂乱的逻辑运算,但由于运算单元和内核较少,只合适做相对少数的运算。GPU 无法单独作业,它适当于一大群承受 CPU 调度的流水线职工,合适做很多的简略运算。CPU 和 GPU 在功用上各有所长,互补缺乏,经过相互配合运用,完结最佳的核算功用

因而,虽然 CPU 单次履行使命的时刻更快,可是在需求很多重复作业负载时,GPU 优势就越明显。而当遇到前后核算过程严密关联的核算场景,这些使命涉及到“流”的问题,必须先核算完第一步,再去核算第二步。或是需求进行很多逻辑判别和杂乱核算的使命,比如运转操作系统、处理日常办公使命、进行单线程编程等。这种时分,运用 GPU 的效率反而没有 CPU 高。

综上所述,CPU 是个集各种运算才干的大成者。它的长处在于调度、办理、和谐才干强,而且能够做杂乱的逻辑运算,但由于运算单元和内核较少,只合适做相对少数的运算。GPU 无法单独作业,它适当于一大群承受 CPU 调度的流水线职工,合适做很多的简略运算。CPU 和 GPU 在功用上各有所长,互补缺乏,经过相互配合运用,完结最佳的核算功用

3 CPU vs GPU: 演进与开展

技能的不断更新推动着核算机范畴的快速开展,而在这个不断演进的进程中,CPU 和 GPU 也在持续开展。在过去的几十年里它们在各自的范畴取得了明显的突破,为核算机使用提供了更高的功用和效率。这不只推动了数字化年代信息技能的开展,也为各个范畴带来了新的可能性。

3.1 扬长避短,稳步前进

CPU 具有强壮的指令处理和核算才干(这儿强壮的核算才干是指 CPU 能够担任更杂乱的核算使命),一般用于处理核算机的中心作业,包括解说核算机指令和处理核算机软件中的数据。例如咱们在运用个人核算机时,用户和各种软件会不断地产生指令流,CPU 要完结的一个重要作业便是担任处理这些指令,确保它们按照规则的次序履行。此外,CPU 还要担任处理核算机软件所产生的类型多样且逻辑杂乱的数据。

距离第一块 CPU 4004 的诞生现已过去了五十多年,虽然与前期比较,CPU 在物理形状、规划制造和具体使命的履行上有了极大的开展,可是其根本的操作原理一向没有改动。换句话来说 ,CPU 的功用和运用场景并没有产生较大的改动,无非是在能耗、功用以及可靠性上面不断地优化。

3.2 GPU 加快使用遍地开花

3.2.1 从 GPU 到 GPGPU

GPU 的概念在 1999 年 NVIDIA 公司发布 GeForce 256 时被初次提出, 在前期,GPU 首要用于 3D 图形渲染。但与 CPU 不同,跟着 GPU 的功用和运算才干越来越强壮,开发者开端探究除了图形处理之外,GPU 还能做什么?

在 2003 年,NVIDIA 推出新产品 GeForce 8800 GTX 时,初次提出了 GPGPU(General-purpose computing on Graphics Processing Unit)的概念,即通用图形处理器,意指使用 GPU 的核算才干,在非图形处理范畴进行更通用、更广泛的核算。

到了 2007 年,NVIDIA 进一步提出了名为 CUDA(Compute Unified Device Architecture,核算一致设备架构)的全新技能,使用该技能能够经过 NVIDIA 的 GPU 进行图像处理之外的核算使命,它揭开了 GPU 核算革命前奏。随后,AMD 也推出了类似的技能:OpenCL(Open Computing Language)。OpenCL 是一个敞开的、跨渠道的并行核算框架,允许开发人员在不同的硬件渠道(CPU、GPU、FPAG 等)上进行开发。

自此以后,GPU 不再以图形的 3D 加快为仅有目的,而是能够广泛使用于各范畴的通用核算加快,尤其是科学核算、大数据剖析以及人工智能等范畴。

3.2.2 大模型与向量数据库

当今互联网国际所需的核算才干远远超出任何人的想象,而且只会跟着人工智能的鼓起而添加。以现在爆火的生成式 AI ChatGPT 为代表,巨细为 175B 的 GPT-3 运用了 1024 张 A100 GPU 训练了约 34 天,跟着参数数量的添加,往后 AI 需求的算力资源更是天文数字。

大模型同样引发了数据库范畴的革命,此前不温不火的向量数据库搭上了这辆顺风车,一举成为 AI 年代的新宠。在 2023 英伟达 GTC AI 开发者大会中,NVIDIA CEO 黄仁勋初次提及向量数据库,并着重对于构建专有大模型的组织而言,向量数据库至关重要。

对于 AI 来说,向量是它理解国际的通用数据形式,不管是图片、视频、音频,都能够经过转换成向量来让 AI 辨认,向量数据库作为专门对向量进行检索和存储的东西,能为大模型的使用落地处理比如“没有长时间回忆”、“错觉”、“常识更新不及时”等问题。

可是,向量数据库本身的功用也是一个问题,说究竟与大模型的结合仅仅其使用的一部分,它本质上仍是一个数据搜索和剖析的东西,如果功用满意不了用户需求,同样也会被淘汰。所以乎,开发者们又想起了 GPU。

在向量数据库中,最中心的功用在于向量类似性搜索,即在一个海量的数据中找到和某个向量最类似的向量,它的核算量十分巨大,而这恰好是 GPU 所擅长的,使用 GPU 的并行核算才干能够加快向量类似性搜索,明显进步查询速度,下降推迟。

4 云原生向量数据库 PieCloudVector 支撑 GPU 加快

拓数派大模型数据核算系统 DataCS 三大数据核算引擎之一:向量数据库 PieCloudVector,是大模型年代的剖析型数据库升维,方针是助力多模态大模型 AI 使用,进一步完结海量向量数据存储与高效查询。PieCloudVector 支撑和配合大模型的 Embeddings,帮助根底模型在场景 AI 的快速适配和二次开发,是大模型必备使用。

PieCloudVector 充分使用现代化硬件才干,支撑 GPU 加快功用。 这一特性让 PieCloudVector 能够使用 GPU 的并行核算才干来加快向量核算和数据处理使命,明显缩短使命的履行时刻,进步核算效率,帮助用户更高效地进行数据核算。特别是在需求处理大规模数据集或进行杂乱的数值运算时,GPU 加快能够大幅提升核算功用。