首页 > 其他分享 >CPU能否用于推理

CPU能否用于推理

时间:2023-12-16 10:32:31浏览次数:33  
标签:可以 AMX 能否 GPU 推理 CPU 单元

大家也看到了最近发生的新闻,A800和H800都不让在国内卖了,甚至4090都有可能被禁(看趋势应该会被放开,对于纯消费卡的限制也确实无厘头,虽然4090用来训练,调整好超参是真不错)

       晚上和朋友吃饭,席间一个朋友问起,为什么不能用CPU来跑大模型呢,如果训练不行的话,难道推理也不可以吗?其实这是一个很好的问题,但是和训练和推理其实没啥关系,这问题如果延伸下去是要触及到CPU和GPU计算的本质

        直接上图

CPU能否用于推理_数据

       然后说结论:

  •        CPU中缓存单元大概占50%,控制单元25%,运算单元25%
  •         GPU中缓存单元大概占5%,控制单元5%,运算单元90%
          其实是需求决定了架构,CPU为了完成复杂的任务调度,多进程/线程协同所以它必须要有更大的缓存和控制单元来追求上下文,GPU不需要,一个字就是"算", 超强的并行能力数千甚至数万核,别的其实它也干不了
          那深度学习为什么需要GPU,先说结论,目前所有的深度学习求解,并不是数学问题(完美解),而是一个近似值的求解过程,通过梯度下降和反向传播不断的优化整个模型特征的权重值来得到近乎完美的模型(永远也不可能完美)。
           所有的深度学习模型表达其实都可以用简单的线性回归来表示,无论RNN还是Transformer,其实都是变体,我们看一个简单的式子:
            
  • CPU能否用于推理_深度学习_02

      相当于左右的这一层的每个要和右边的这一层的所有节点全部进行一次乘法,可以写成:

CPU能否用于推理_缓存_03

       实际上深度学习的计算就这么简单,说白了就是矩阵之间乘法,每次一个矩阵乘法实际上等价于input向量和parameter之间就完成了一次加法一次乘法,记作一次MAC, 也可以记作2次FLOPs操作。

       其实看到这里细心的读者就会发现,在matmul(A,B)的情况下,所有的操作是独立的,每个计算都不互相干预,也不需要什么上下文,所以我们可以用GPU的超多核的并行能力,来对矩阵计算进行加速,当然开启TensorCore和其他一些feature,计算会更加的迅速。

        回到这篇文章问题的本身,CPU适不适合做推理,其实早期CPU的并行能力上无法和GPU相比,目前我理解的CPU最大的core数量,是Intel Sierra Forest 可以288core(没上市),但是如果开启了AMX的能力(单AMX单元与单AVX单元的每时钟周期的算力提高了16倍),这个问题就出现了变化;一个cycle里开启AMX指令集的CPU可以进行2048次int8的计算,假设 boost能到3Ghz左右,也就是1秒钟它可以操作3*10^9次运算,他的一个核可以实现1秒钟理论上可以 计算6144*10^9 FLOPs, 等于6TFOPs, 那么288核可以实现1728TFLOPs 的int8能力, 那么一个普通的推理卡A10大概得int8算力是多少呢?



CPU能否用于推理_数据_04

      Tesnor Core的情况下是500,开启TensorRT会更快,从简单的对比数据来看,1728>500, 我们的前提是288核可以实现支持每核3Ghz boost,且开启AMX的情况下,目前市面上大多数的Cloud IaaS不支持开启AMX的指令集,那么这个每cycle处理矩阵的数值就要从2048变成512(AVX512的SIMD),就剩下432TFLOPs了,但是Cloud PaaS的AI服务,我了解到很多PaaS推理是用了AMX的能力的。

      除了算力我们也需要考虑一下性价比,目前市面上没有Sierra Forest的机型可以参考,这里找了一个96core的机型(价格仅供参考就是看个比例而已)一小时6美金,288core的话简单乘以3,大概18美金一小时。

CPU能否用于推理_缓存_05

       A10 需要多少钱呢?一小时要4美金

CPU能否用于推理_数据_06

      如果纯从数值上来看TFLOPs能力3.5倍,价格上是4.5倍, 但是别忘了内存,A10只有24G内存,而即便不乘以3,CPU的对照组也有将近700G的内存,我们知道在推理中加速的一个最简单的方法就是cacheKV对,你的内存越大,越可以cache住更多的KV对,相对来讲快速命中的几率也就越大,典型的空间换算力业务, 此外我内存大意味着有更大batchsize,可以通过调整超参获得更好的吞吐和性能的最优比。

      所以结论是什么?

      光看字面的TLOPs数据似乎即使用CPU来进行推理也不是很有优势,是不是可以说在深度学习的情况下,CPU就没用了呢?这个当然不是,因为GPU所需要的训练和推理数据和GPU所在的节点的调度逻辑都要由CPU来执行,另外很多GPU服务器,尤其是云服务器,是配置了很多的CPU资源的,如果不涉及到训练数据进GPU之前的预处理,其实在很多时间里是空载状态,在这个场景下为了提升整体服务器的算力水平,把它榨干,是可以考虑有些推理任务放置在CPU上运行,做混合推理的,增加并行度也意味着提升整体的处理速度;另外一个很重要的应用就是Agent,我们知道当模型尤其小型模型在本来就容易产生幻觉的情况下,quantized以后,比如int8,就更容易产生幻觉和无法很好的驾驭下游任务,这个时候我们会采用RAG和Agent等操作,通过外部tools和内部逻辑去解决这些问题,进而精确的匹配下游任务,这些复杂的任务调度,就是GPU无法胜任的了,全部需要CPU来进行处理;本文着力点其实在推理,实际上GPU训练的领域CPU的大内存有很大的作用,这个先卖个关子,以后讲。

       从事务发展的角度上,可以预见CPU的厂商一定会更加重视CPU在AI方面的能力,甚至消费级的CPU都要和NPU有整合,大家可以搜一下Meteor Lake,其实Apple的A17已经在这么做了,所以不远的将来,云端和消费端的AI CPU或者CPU携NPU会对GPU的市场发出强有力的挑战。

       觉得写的还行的读者大爷请别吝惜你的赞和转发,谢谢!

标签:可以,AMX,能否,GPU,推理,CPU,单元
From: https://blog.51cto.com/u_16432251/8850138

相关文章

  • helloword执行过程,cpu从内存中读取数据
    1.cpu通过地址总线发出指令告诉内存控制器,我要操作哪块内存2.cpu通过控制总线向内存控制器发出读/写指令3.cpu通过数据总线,操作内存鼠标点击HelloWorld运行过程:1.点击鼠标,鼠标会发一个机器变更号---->usb控制器把信号传给---->系统总线---->南桥----->北桥---->cpu......
  • 判断推理-逻辑推理(推出类)
    推出类一、逻辑基础知识点1、一个符号两种条件记住一句话“一个推出符号代表两个含义”就是说对于A→B,A是B的充分条件,B是A的必要条件。可记为“谁是必要条件,谁在箭头后”。常见的可表示“必要条件”的词语有:基础、前提、关键、必须、需要、离不开、必不可少、不可......
  • TI 新一代明星CPU
    说到TI(德州仪器),想必大家都不陌生,它在模拟器件领域处于世界领先水平,特别是我们熟知的DSP,更是超越了各大同行。同样,在CPU领域,TI也拥有不错的技术功底,当年凭借MSP430超低功耗,走红了全球。今天给大家分享的是TI新一代明星CPU——AM62x,它相比上一代AM335x在工艺、外设、性能等多......
  • 判断推理-逻辑推理(论证类-比例类论证与解释说明)
    比例类论证与解释说明比例类论证一种“数学+逻辑”的一般质疑题,此类问题常犯的逻辑错误是用“分子”代替“分子/分母”得出结论,题干往往包含数字(分子部分),我们需要在选项中找到带“数字”的分母部分,识别题型,可以秒杀。解释说明常见问法为“以下哪项为真,最能解释这一情况?......
  • 改进了编排控制并增强了推理的可视性,Agents for Amazon Bedrock 现已上市
    七月份的时候,我们推出了AgentsforAmazonBedrock 预览版。如今,AgentsforAmazonBedrock 全面上市。AgentsforAmazonBedrock通过编排多步任务,有助于您加速生成人工智能(AI)应用程序的开发。代理使用基础模型(FM)的推理功能将用户请求的任务分解为多个步骤。他们使用开......
  • HarmonyOS:使用MindSpore Lite引擎进行模型推理
     场景介绍MindSpore Lite是一款AI引擎,它提供了面向不同硬件设备AI模型推理的功能,目前已经在图像分类、目标识别、人脸识别、文字识别等应用中广泛使用。本文介绍使用MindSpore Lite推理引擎进行模型推理的通用开发流程。基本概念在进行开发前,请先了解以下概念。张量:它......
  • 判断推理-逻辑判断(论证类-支持类论证与前提假设)
    支持类论证与前提假设常规问法支持论证类“以下哪项如果为真,最能加强上述论证?”、“以下哪项如果为真,最能支持上述发现:”;前提假设类“上述论证最可能基于的潜在假设是:”、“上述推测还需要隐含哪一项假设:”。支持类常见支持方式解释说明、增加(补充)论据、断点搭桥、必要条......
  • 当单节点的CPU使用率低于50%且内存使用率低于80%时,会触发本节点资源收缩。
     Serverless资源弹性扩缩触发条件资源弹性扩展触发条件纵向扩展触发条件PolarDB主要监控主节点和只读节点的CPU使用率、内存使用率和其他内核层面指标。在监控周期内,出现如下三种情况中的任意一种时,通常会触发Serverless资源纵向扩展:当单节点的CPU使用率高于80%,会触发本......
  • CPU 受限率(CPU throttling rate)解释和计算方式
    目录什么是CPU受限率CPU受限率相关指标如何计算cpu受限率参考资料什么是CPU受限率CPU受限率用于衡量在特定时间段内,CPU被限制运行的程度(即毛刺)。0%表示CPU没有受到限制,100%表示容器的CPU受限率达到100%。CPU受限率相关指标CPU受限率可以通过计算在给定时间段内,CPU被限制的......
  • spec cpu 2017
    官网: https://www.spec.org/cpu2017/  参考:Speccpu2017介绍  https://blog.csdn.net/admking/article/details/109069465 spec2017安装和使用 https://blog.csdn.net/admking/article/details/109069465https://www.jianshu.com/p/5c085f295cff SPECCPU简介和......