GPU-笔记

GPU发展

​ PC时代随着图形操作系统的出现,大量需要 3D 图形运算的工具软件和游戏对于浮点运算的要求急剧升高,传统的 X86 CPU 处理器并不擅长这类任务,于是诞生了更擅长浮点运算的 GPU。在这类应用中,系统会把图形渲染等任务 offload 到 GPU 上去。

​ 随着神经网络研究和应用的发展,GPU 中的浮点运算能力在这些领域的应用逐渐发展起来,英伟达敏感地抓住了市场机会,将其 GPU 在保留传统渲染能力的同时增加了对于通用计算和神经网络运算的能力,并称之为 GPGPU。

​ 英伟达的 GPGPU 包含渲染以及神经网络(“NN”)运算。这种架构在同时需要两个能力的应用上会有一定的优势,但很显然对于技术积累要求也非常高。目前一些 AI 芯片初创公司所自称的 GPGPU 架构是指没有渲染的 NN 运算,而有一些声称做 GPU 的公司则是狭义的渲染 GPU,二者都不是通常英伟达所指的 GPGPU。英伟达由于有长年渲染 GPU 的技术积累,同时基于先发优势通过 CUDA 积累了生态优势,因此选择了 GPGPU 路线。而其他公司在这条路线上与其正面竞争是胜算很小的,即使国际知名公司(像英特尔和 AMD)在 GPGPU 市场与其竞争都有相当的难度。

​ 然而,没有一个技术是完美的,由于 GPGPU 保留了大量神经网络运算所不需要的单元(即传统渲染), 在单纯的神经网络运算上并不是最高效的,因此谷歌基于特定域架构(DSA)为自己的特 定应用做了 TPU。DSA 架构给其他芯片公司带来了希望,包括 Intel、特斯拉等知名公司都开始在这条路线上发力。

  • 集显和独显

在注重算力的服务器和注重便携性的移动端分别采用独立和集成GPU,而汽车、游戏主机、PC等主要采用独立+集成的GPU接入方式。

  • GPU发展模式

  • 国内外CPU生产线产商
    • 设计:Nvidia、AMD几乎垄断
    • 设备、材料和EDA/IP:国内外差距较大
    • 制造:只有台积电和三星有5nm制程工艺,且需要美国设备
    • 封测:中国大陆、美国、中国台湾三分天下

基础

GPU 性能

GPU 的性能需要综合考虑两个指标:算力、通信带宽。

  • 算力

​ 算力的单位是 Flops,即每秒所执行的浮点数运算次数。浮点数运算次数就是小数的四则运算,可以简单理解为机器每秒可以做多少次小数的加减乘除。

  • 通信带宽

​ 因为 GPU 的内存大小是固定的, 而训练使用的内存要超过单个 GPU 内存,所以就需要多个 GPU 并行计算,但并行计算就需要考虑数据交换带来的通信开销,通信开销越大,GPU 之间的数据交换速度就越快, 模型训练就越快,这就是通信带宽。

​ 下面是 H100、A100 和 4090 卡的性能对比:

神经网络算力计算

神经网络一般分为:前向计算和反向计算两个步骤。

  • 前向计算

​ 以提足球为例,前向传播可以理解为球员站在任意位置踢球,然后观察足球离球框的距离,前向传播就是这个观察过程,记录球员在将足球踢向球框时的各个参数。

  • 反向传播

​ 反向传播就是根据前向传播记录的参数,再回头来改进球员的踢球的位置、踢法等参数,确保下一次踢球能命中的概率大些。

权重更新就是球员改进踢足球的方式。

​ 总结,一次前向传播需要 1 次计算(观察记录),一次反向传播需要 2 次计算(观察记录+权重更新),则完成一次神经网络的迭代需要对所有输入数据和模型参数进行 3 次计算。由于每次计算都是矩阵运算,每次矩阵运算需要 1 次乘法和加法,共计 2 次浮点运算,所以对于每个 token、每个模型参数,需要 3 * 2 flops = 6 次浮点数运算。*

​ 则总计需要 6 * token 数 * 模型参数量 flops,这就是完成一个神经网络模型需要的算力资源的大致估计,从而可以计算出所需的 GPU 数量。

大模型算力计算

​ 以上图为例,GPT3 的参数规模为 175B,训练 300B,采用稠密(Dense)模型,按照公式计算:6 * 175B * 300B = 3.15e23 flops,公开的 GPT3 的运算量为:3.1e23 flops,基本一致。

  • 所需 GPU 卡数/时

​ 已知 GPT3 的运算量为 3.1e23 flops ,再除以 312 flops (一张 A100 fp16 精度下的算力) * 46.2%(利用率) * 3600(一个小时对应的秒数) = 60.67 w 张 A100 /小时 = 2.53 w 张 A100 /天,若是 1000 张 A100 ,则训练需要大约一个月。

其他影响

​ 除了算力,还需考虑计算时的内存和通信带宽,若是单卡,只需考虑训练总内存 = 模型内存 + 优化器内存 + 激活内存 + 梯度内存。

fp32 对应 4 个字节,fp16 对应 2 个字节,精度越大,所需内存越多。

​ 通信带宽决定张量并行计算的速度,因为要多卡计算,卡之间要传递张量计算时的中间数值。

市场现状

最新最强算力芯片: H100,性能超过谷歌的 TPU。

image.png

H100 产能受限的原因:

H100芯片需要使用SK海力士的HBM内存,以及台积电的CoWoS封装,两者都因过于昂贵,此前并没能大规模市场化,预备产能并不多。

GPU操作

这是电脑上的显卡,就2G,我说显示很不清晰。

参考

  1. GPU研究框架 ——行业深度报告(方正证券)
  2. 大模型所需算力笔记
posted @ 2023-10-17 16:13  PamShao  阅读(109)  评论(0编辑  收藏  举报