首页 > 其他分享 >GPU-笔记

GPU-笔记

时间:2023-10-17 16:25:59浏览次数:51  
标签:运算 笔记 神经网络 内存 计算 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. 大模型所需算力笔记

标签:运算,笔记,神经网络,内存,计算,GPU,算力
From: https://www.cnblogs.com/pam-sh/p/17769998.html

相关文章

  • 记录TritonServer部署多模型到多GPU踩坑 | 京东云技术团队
    一、问题是怎么发现的部署chatglm2和llama2到一个4*V100的GPU机器上遇到问题config.pbtxt中设置模型分别在指定gpu上部署实例配置不生效如以下配置为在gpu0上部署本模型,部署count=1个实例,在gpu1上部署本模型,部署count=2个实例instance_group[{count:1kind:KIND_GPU......
  • 2023/10/17 学习笔记
    传输层协议tcp/udp协议TCP/IP协议族的传输层协议tcp特性1.工作在传输层2.面向连接协议3.全双工协议4.半关闭(四次挥手)5.错误检查6.将数据打包成段,排序(分片)7.确认机制8.数据恢复,重传9.流量控制,滑动窗口udp特性工作在传输层提供不可靠的网络访问非面向连接协......
  • javaweb-jsp脚本总结笔记
    1什么是JSPjsp又叫JavaserveltPage这门技术最大的特点就是,写jsp就像是再写html但是不仅可以写静态页面,而且可以内置Java代码写出动态页面,也就是说可以为用户提供动态数据。总的来说jsp=java+HTML2.JSP快速入门2.1提供对应的驱动包2.1创建对应jsp文件2.2写对应代码......
  • [学习笔记] 浏览器F12检查中应该如何判断margin的上下左右?
    如下图所示,margin上下左右四个方向分别是1px,2px,3px,4px。 而在浏览器F12检查时,margin显示如下图所示:即浏览器检查时显示的margin值,是按照上、右、下、左的顺序来的。该规律在padding也同样适用。 ......
  • EPLAN 电气设计入门学习笔记
     1.EPLAN中的结构描述符号功能面结构=功能面结构符号“=”,译为高层代号,表示系统根据功能被分为若干组成项目。产品面结构-符号“-”,表示根据产品分类,例如“-Q”表示空气开关。位置面结构+符号“+”,描述部件在系统中的位置,译为“位置代号”。器件引脚标识:例如“-H1:......
  • [学习笔记] 有关CSS响应式设计的单位
    em和rem单位:em和rem是相对于元素的字体大小计算的单位。em单位是相对于父元素的字体大小,而rem单位是相对于根元素(通常是 <html> 元素)的字体大小。em和rem单位可以用于实现相对于字体大小的自适应布局。vw和vh单位:vw和vh是视口宽度和视口高度的百分比单位......
  • 记录TritonServer部署多模型到多GPU踩坑 | 京东云技术团队
    一、问题是怎么发现的部署chatglm2和llama2到一个4*V100的GPU机器上遇到问题config.pbtxt中设置模型分别在指定gpu上部署实例配置不生效如以下配置为在gpu0上部署本模型,部署count=1个实例,在gpu1上部署本模型,部署count=2个实例instance\_group\[{count:1kind:KIND\_GPUgpu......
  • 记录TritonServer部署多模型到多GPU踩坑 | 京东云技术团队
    一、问题是怎么发现的部署chatglm2和llama2到一个4*V100的GPU机器上遇到问题config.pbtxt中设置模型分别在指定gpu上部署实例配置不生效如以下配置为在gpu0上部署本模型,部署count=1个实例,在gpu1上部署本模型,部署count=2个实例instance\_group\[{count:1kind:KIND\_GPUgpu......
  • React学习笔记04-JSX语法
    1.JSX语法JSX将HTML语法直接加入到JavaScript代码中,再通过翻译器转换到纯JavaScript后由浏览器执行。在实际开发中,JSX在产品打包阶段都已经编译成纯JavaScript,不会带来任何副作用,反而会让代码更加直观并易于维护。编译过程由Babel的JSX编译器实现。 2.JSX语法的......
  • Linux学习笔记2
    Linux学习笔记1.文件重定向1.尝试在命令行输人ifconfig.找到自己电脑的IP地址.zzh@ubuntu:~/Desktop$ifconfigens33:flags=4163<UP,BROADCAST,RUNNING,MULTICAST>mtu1500   inet192.168.216.128netmask255.255.255.0broadcast192.168.216.255   in......