AI大模型时代GPU比CPU更重要

OpenAI 在2022年底推出了 ChatGPT, AI 发展正式进入到了大模型时代。大模型表现出完美的知识连贯性,并拥有优秀的逻辑推理能力。而实现这一切的基础,来自于 OpenAI 使用大量互联网信息进行模型训练。

ChatGPT 的成功具备天时地利。云计算经过十多年发展累积了大量富余算力,千亿乃至万亿的智能模型依赖云技术对大规模数据"消化"来实现模型的生成。而巨量算力的基础离不开位于云底层的,经过数十年发展、十分强大的 GPU 能力。

为什么是 GPU?

抽象地看,计算方式有限(比如加减乘除等),但数据很多,即每种计算方式要处理大量数据 。CPU 能实现一次算一个,而 GPU 能实现一次算一组,这正是大算力的基础。

一、向量计算

如果把一组数据合成一个逻辑上的输入,就是向量,即:

标量(scalar):单个数值

向量(vector):一维数组,多个数值

在空间上来看,向量是一条线,数值是一个点。GPU 能实现一个指令对一组数据并行计算,是构建 AI 底层计算的基座。

熟悉编程的读者可能会想到一个问题,多线程也能同时执行,CPU使用多线程能替换GPU吗?

不能 。这两种在底层本质上不同,如果CPU有多个核心,CPU 的同时执行是把这些核心尽可能的利用起来。而 GPU 则是实现了让单个命令并行,一个命令多个输入,即向量计算

二、向量计算的实现

SIMD(Single instruction, multiple data) 可实现向量计算,根据 Flynn 1972分类法,SIMD 可分为三类。

阵列处理器 (Array processor):接收一条相同的指令,但每个并行处理单元都有自己独立且不同的内存和寄存器文件,它也叫 SIMT(Single instruction, multiple threads)。SIMT适合大规模数据计算,也是 GPU 的基本结构。

流水线处理器 (Pipelined processor):接收一条相同的指令,然后从中央资源读取数据,每个处理器处理该数据的片段,然后将结果写回到同一中央资源。在 Flynn 1972 年的论文中,资源是主内存,对于现代 CPU,该资源应是寄存器。流水线处理器在现代 CPU 结构中应用广泛,它实现了不同指令的不同阶段的并行。

关联处理器 (Associative processor):接收一条相同的指令,但在每个并行处理单元中,根据单元本地数据做出独立决策 ,决定是否执行执行或是否跳过执行。在现代术语中,这称为"谓词SIMD"。"谓词SIMD"可以让每个处理单元独立进行判断,比较适合在大规模数据库查询时进行数据过滤。

下面通过一个例子来理解并行计算:

一个指令的执行在逻辑上可分为五大阶段:

  1. IF = Instruction Fetch,拉取指令
  2. ID = Instruction Decode,解码指令
  3. EX = Execute,执行
  4. MEM = Memory access,拉取数据
  5. WB = Register write back,写回结果

下图左边依次执行 的指令:指令1、指令2......指令5。上边逐个完成的时钟周期,周期1、周期2......周期7。

在时钟周期4,指令1、2、3、4同时在执行,这就是 SIMD 分类中的流水线处理器。如果把这样的单个处理核心的执行流程,扩展到大量多个处理核心一起执行,就实现了 SIMT。

三、未来还需要CPU吗?

GPU 在大规模数据的计算上表现出很大的优越性,既然 GPU 这么强,我们还需要 CPU 吗?

答案是我们需要 CPU 。GPU 能对大量数据并行执行相同的操作,让上千个核心同时工作来快速完成工作,但 CPU 不能被取代。把计算机硬件抽象为一个工作团队,CPU 是大脑,是 "Leader",它能协调各组件,GPU只被指挥来负责大数据计算的"员工",工作的指示还是要 CPU 下达。

四、参考资料

相关推荐
foggyprojects6 分钟前
一个企业查询问题,如何从自然语言走到 DSL 再走到 SQL
后端
掘金者阿豪8 分钟前
PDO连金仓数据库(下篇):预处理语句、大对象和批量操作
后端
RealPluto11 分钟前
Rancher证书轮换过期导致不能访问UI问题处理
后端
Asize12 分钟前
Bun + TypeScript 实战:从接口约束到 RESTful 路由设计
后端·typescript·代码规范
鱼人27 分钟前
Go 操作 MySQL:常用写法与最佳实践
后端
挖坑的张师傅30 分钟前
方便 Mac 本机运行 e2b 的沙箱方案 e2b-local
人工智能·后端
开心猴爷32 分钟前
Flutter 如何自动上传 可以 IPA 把构建和上传分开处理
后端·ios
二月龙33 分钟前
defer 执行顺序与底层原理,90% 的人都理解不全
后端
长大198833 分钟前
新手常犯的 Go 语法错误,一次性帮你避坑
后端
小强198834 分钟前
深入理解 Go 协程 Goroutine:并发编程的核心精髓
后端