导 读

AI模型运转在核算机上,除了需求耗费许多的核算资源外,还需求许多的内存以及带宽用来存储和搬运数据。

在现在一个模型动辄几千亿个参数的情况下,模型运转的功能变得越来越重要,对核算机硬件的需求也水涨船高。

而不论是工业界,仍是产业界,针对AI模型的优化从未停止过!优化手段也从算法上的优化,扩展到了专用硬件上。

本文首要从硬件加速王者GPU的科普讲起,说一说GPU在神经网络推理中,为什么这么牛,更多细节,欢迎重视本专栏其他文章。

王者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包含了游戏所有的代码、图形和音乐!

神经网络推理加速入门—— 番外:GPU为什么这么牛

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

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

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

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

GPU正是如此。

虽然英伟达的GPU一开始便是为显示服务的,但是跟着游戏的不断迭代,不但关于GPU的显示技能有了更高的要求,而且关于与显示相关的核算使命也有了更高的要求。

最典型的便是光追技能。

所谓光追,便是光线追踪,游戏场景中针对光影的处理,尤其是进行实时的光影转化,如河面的倒影、阳光打在窗户上的模糊感等,一直是核算图形学的难点。

该技能需求许多的实时核算,依据游戏中的实时场景,随时核算光线的折射,反射,漫反射等。

自从英伟达在自家芯片上支撑了光追技能之后,GPU便成了一些游戏的标配。

一部分游戏发烧友们,玩游戏,必上显卡。

第二个范畴是:比特币挖矿

神经网络推理加速入门—— 番外:GPU为什么这么牛

信任许多人记住英伟达被黑客组织 LAPSUS$ 勒索的事件。

神经网络推理加速入门—— 番外:GPU为什么这么牛
神经网络推理加速入门—— 番外:GPU为什么这么牛

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

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

之所以这么做,是因为显卡挖矿太有优势了!

许多的显卡被买来去挖矿,这不是英伟达希望看到的,英伟达更希望自家的芯片,用来进行科学核算或许做对人类更含义的事。

第三个范畴:AI核算

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

神经网络推理加速入门—— 番外:GPU为什么这么牛
深度学习的练习范畴,GPU是当之无愧的王者,至今,插手练习的硬件厂商也寥寥无几,而且练习的功能和精度与GPU比较,仍是差一些。

许多ASIC芯片(专用芯片)公司,都拿GPU的核算结果作为精度和功能的标杆,以此来鼓吹自己的芯片功能,大做广告。

游戏、挖矿和深度学习这三个范畴,就能够让英伟达的GPU立于芯片不败之林了,更别提一般显卡、科学核算甚至数据中心等范畴了。

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

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

平常咱们电脑上所用的CPU,是一种多核架构,看看你的电脑,可能是4核或许8核的处理器。在执行核算使命时,经过程序的控制,比方多线程,能够让8个核一起作业,此时的核算并行度是8。

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

GPU是众核!

举个比如,如果核算5000个数组相加。

int a[5000];
int b[5000];
int c[5000];
for (int i = 0; i < 5000; i++) {
  c[i] = a[i] + b[i];
 }

即使咱们运用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傲视群雄的王牌。

好啦,本篇文章就提到这,敬请重视本专栏其他文章。

本文原创,请勿转载,转载请联络作者