• AI加速(一)| 游戏光追!比特币挖矿!AI计算!GPU为什么这么牛?


    目录

    王者GPU

    GPU涉及到的领域

    第一个领域是:游戏

    第二个领域是:比特币挖矿

    第三个领域:AI计算

    说了这些,那为什么GPU这么牛呢

    总结一下


    AI模型运行在计算机上,除了需要消耗大量的计算资源外,还需要大量的内存以及带宽用来存储和搬运数据。

    在如今一个模型动辄几千亿个参数的情况下,模型运行的性能变得越来越重要,对计算机硬件的需求也水涨船高。而不论是工业界,还是产业界,针对AI模型的优化从未停止过!优化手段也从算法上的优化,扩展到了专用硬件上。

    本系列,针对AI模型的优化问题,从算法以及硬件两个方面来一起聊一聊。

    其中一些内容会和https://blog.csdn.net/dongtuoc/category_11863193.htmlicon-default.png?t=M5H6https://blog.csdn.net/dongtuoc/category_11863193.html有交叉,欢迎阅读和关注。

    那么,就先从硬件加速的王者GPU说起。

    王者GPU

    GPU(Graphic Processing Unit),图形处理器,是英伟达在很早就推出的处理器,专门用来进行图形学的计算,用来显示游戏视频画面等,又称为显卡。

    ​2006年,英伟达推出CUDA,这是一种专门针对GPU的编程模型,或者说软件库,它直接定义了异构编程的软件架构,为英伟达进入AI计算领域埋下了种子。

    2012年,图像识别大赛,很多参赛队伍采用GPU完成AI加速,让英伟达乘上了人工智能的东风,从此,一跃成为人工智能硬件领域的绝对霸主,一直到今天。

    这期间,国内外很多家公司都试图推出了自己的AI芯片,希望可以在人工智能硬件这一领域上分得一杯羹,但却始终无法撼动英伟达AI芯片老大的位置。

    国外强如Google 的TPU,AMD以及ARM,国内如华为昇腾、百度昆仑、阿里平头哥等一线互联网企业,以及地平线、寒武纪、比特大陆等自研ASIC芯片的厂家,甚至近几年大火的存算一体芯片,都在一次次的冲击着英伟达。但它却至今屹立不倒。

    GPU的神之地位,被英伟达捍卫的死死的。

    其实,早在GPU被用来做AI计算之前,GPU就已经涉及到了多个领域。其涉及的领域之多,再加上CUDA的软件栈生态之普及,社区活跃度之高,才使得GPU屹立不倒。

    GPU涉及到的领域

    说三个领域,就足以让英伟达赚的盆满钵满,让GPU有价无市,让GPU有黄牛囤货...

    第一个领域是:游戏

    游戏一直是新科技新技术的试验场地,同时也是一个赚钱的暴利行业。

    为什么这么说。

    因为新的硬件研发出来,基本上都会在游戏行业找到落地点,比如国内某手机厂商,以王者荣耀运行流畅为卖点,大打广告。

    而实际上,软件与硬件的关系,存在着一个著名的安迪比尔定律。

    硬件提高的性能,很快会软件消耗掉。

    这个定律的意思是说,硬件迭代升级带来的性能提升,很快就会被新一代的软件所消耗掉,从而使得人们不得不更换新一代的硬件产品。

    这下,你知道为什么去年才买的手机,今年很多软件就带不起来了吧。

    软件更新,正在一步步蚕食掉你的新手机!举个不太恰当但是很生动的例子。

    超级玛丽这款游戏,我们玩了很多年,游戏中那么多关卡,那么丰富的剧情,丰富的配图,丰富的配乐,但是你能想象,这款游戏的总大小才64KB么?

    64KB包含了游戏所有的代码、图形和音乐!

    ​这主要是因为,在超级玛丽那个年代,芯片上所连接的硬件资源少的可怜,游戏开发者为了节省内存,进行了大量的代码优化和图片复用优化。

    而现在,一个王者荣耀的更新包,就好几个GB,运行起来占用的内存更是高的离谱。

    1年前买的手机,今天很可能就带不动最新的王者荣耀了!

    游戏的升级,迫使人们更换新的手机。但也正是因为有安迪比尔定律的存在,才使得硬件被迫不断地迭代升级。GPU正是如此。

    虽然英伟达的GPU一开始就是为显示服务的,但是随着游戏的不断迭代,不光对于GPU的显示技术有了更高的要求,而且对于与显示相关的计算任务也有了更高的要求。

    最典型的便是光追技术。

    所谓光追,就是光线追踪,游戏场景中针对光影的处理,尤其是进行实时的光影转换,如河面的倒影、阳光打在窗户上的朦胧感等,一直是计算图形学的难点。该技术需要大量的实时计算,依据游戏中的实时场景,随时计算光线的折射,反射,漫反射等。

    自从英伟达在自家芯片上支持了光追技术之后,GPU便成了一些游戏的标配。一部分游戏发烧友们,玩游戏,必上显卡。

    第二个领域是:比特币挖矿

    相信很多人记得英伟达被黑客组织 LAPSUS$ 勒索的事件。

    原因是英伟达为了限制人们使用显卡挖矿,在显卡的驱动程序中添加了一把软件锁,用来限制挖矿时的带宽,从而降低显卡的性能。

    正常游戏时,显卡可以用到100%的带宽,而挖矿时,显卡却只能发挥50%的带宽性能,这让买了显卡的挖矿矿工们很不爽。

    之所以这么做,是因为显卡挖矿太有优势了!大量的显卡被买来去挖矿,这不是英伟达希望看到的,英伟达更希望自家的芯片,用来进行科学计算或者做对人类更意义的事。

    第三个领域:AI计算

    就像文章开头说的,自从英伟达的GPU乘上了深度学习的东风,不管是出货量,股价还是公司影响力,都大幅飙升,直接造就了一个硬件王国。

    深度学习的训练领域,GPU是当之无愧的王者,至今,染指训练的硬件厂商也寥寥无几,并且训练的性能和精度与GPU相比,还是差一些。很多ASIC芯片(专用芯片)公司,都拿GPU的计算结果作为精度和性能的标杆,以此来鼓吹自己的芯片性能,大做广告。

    游戏、挖矿和深度学习这三个领域,就可以让英伟达的GPU立于芯片不败之林了,更别提普通显卡、科学计算甚至数据中心等领域了。

    说了这些,那为什么GPU这么牛呢

    这要从GPU的硬件架构说起。

    平常我们电脑上所用的CPU,是一种多核架构,看看你的电脑,可能是4核或者8核的处理器。在执行计算任务时,通过程序的控制,比如多线程,可以让8个核同时工作,此时的计算并行度是8。

    而GPU的恐怖之处在于,它远远不止8个核心这么简单,它把计算核心做到了成千上万个甚至更多,通过多线程,可以使得计算并行度成千上万倍的提升。

    GPU是众核!

    举个例子,如果计算5000个数组相加。

    1. int a[5000];
    2. int b[5000];
    3. int c[5000];
    4. for (int i = 0; i < 5000; i++) {
    5. c[i] = a[i] + b[i];
    6. }

    即使我们使用8核CPU计算,那么每个核还需要计算5000 / 8 = 625个数,而单个核心的计算是串行的,需要排队,也就是算完一个,再算另一个。

    假设计算一个数需要1s,那么即使8个核同时运行,也需要625s。这里暂时不考虑支持向量指令的CPU。

    而由于GPU有成千上万个核,计算5000个数字,使用5000个核同时计算,每个核计算一个数就搞定了!总共需要1s!

    这就是GPU!

    有个比喻。

    CPU是指挥部,每个核是一个将军,除了需要指挥军队完成调度这种劳神费心的工作外,如果让它杀敌,它也只能一个一个杀,杀死1w敌军不得把将军累死了?

    而GPU是军队,只负责杀敌,1w个士兵杀1w个敌军,一对一,不分分钟的事?

    正是由于GPU这种独有的硬件架构,加上图形专用硬件单元或者深度学习专用硬件单元(如TensorCore)的加持,再加上多层级的存储架构,使得GPU的硬件,计算性能和访存性能都如王者般,傲视其他ASIC小弟。

    总结一下

    游戏,挖矿,深度学习,这三个领域足以让英伟达的GPU傲视群雄!

    安迪比尔定律,软件会吃掉硬件的性能,反过来会迫使硬件更新迭代!GPU也是如此。

    GPU独有的多核硬件架构以及专用硬件单元和多层级存储,是GPU傲视群雄的王牌。

    下一篇,从异构编程的角度,说说异构编程为AI软件栈带来的性能提升!

    欢迎关注AI加速专栏。


    码字不易,如果你喜欢,请关注 董董灿是个攻城狮的博客_CSDN博客-C语言,图像识别 and Resnet 网络拆解,闲谈互联网领域博主 或点赞关注。

    近期开通个人微信公众号: 董董灿自述 | 我是一个攻城狮 分享人工智能科技文章,欢迎关注。

  • 相关阅读:
    vue3中reactive对比ref watch watchEffect函数
    Web前端不挂科:深入探索与实战指南
    【uniapp】uniapp开发app在线预览pdf文件
    DPDK-A3: KVM使用SRIOV和虚机使用DPDK
    系统架构师笔记——嵌入式系统
    oracle linux8.8上安装oracle 19c集群
    C#中各种循环遍历的功能与应用
    点云从入门到精通技术详解100篇-点云表面几何特征检测及其应用(续)
    2022/7/20
    一键解决Win10 LTSC 2021官方镜像存在的问题
  • 原文地址:https://blog.csdn.net/dongtuoc/article/details/125571475