用于桌面打算机的GPU和数据中央打算机的GPU(图片来源:Amazon)
那时候的GPU,在大家印象里便是用来打游戏的。然而8年后的本日,随着ChatGPT等大措辞模型(LLM)横空出世,能够处理人工智能高性能打算的GPU溘然引来各大科技公司抢购。自称为“人工智能打算领域的领导者”的GPU生产商英伟达(NVIDIA)在一年内股价飙升,6月19日更是一跃成为环球市值最高的公司。刚刚高考完的同学们假如想买台带GPU的电脑,申请“爸妈轮天使投资”的情由也变成了“我想学人工智能”。
GPU生产商英伟达(图片来源:英伟达)
8年之间,GPU如何从“游戏处理单元”蜕变成“人工智能处理平台”?带着这个问题,本日和大家一起聊聊,GPU到底是怎么回事。
比起GPU,大家可能更熟习的还是打算机的CPU,全称为中心处理单元(Central Processing Unit)。CPU是打算机的“大脑”,它支配打算机中的其他部件,协同完成网页浏览、游戏渲染、视频播放等等统统“打算任务”。CPU决定了打算机的运行速率,有一句网络用语是“把我CPU干烧了”,便是用CPU事情温度过高失落灵,来比喻脑筋里的事情太多太繁芜,脑筋转不过来了。
左为CPU是打算机的“大脑”(图片来源:veer);右为英特尔(Intel)i9-12900KS CPU(图源:hothardware)
而GPU也是被CPU支配掌握的部件之一。GPU全称为图形处理单元(Graphic Processing Unit),紧张功能是完成图形处理干系任务,以GPU为核心的主板扩展卡便是大家在买电脑时常常听说的显卡。
英伟达Geforce 6600 GT GPU(图片来源:wiki)
安装在台式机箱里的CPU和GPU,这是英伟达网站上一个搭载RTX40系列GPU的机箱观点图(图片来源:英伟达)
理论上,所有能由GPU完成的打算任务,都能由CPU完成。一台电脑没有独立GPU仍旧能够正常开机,但若是没了CPU就“臣妾不能够了”。既然如此,我们为什么还要花大价钱去买GPU呢?由于,就像我们不能抛开剂量谈毒性,打算机也不能抛开“性能”谈“功能”。
CPU和GPU各有善于的打算任务(图片来源:IBE)
对付游戏渲染、人工智能这些打算任务,CPU并不善于,虽然也能从功能层面上完成,但性能表现十分有限。对付游戏渲染而言,性能的局限性表示在更低的帧率,更粗糙的画质上,大概无伤大雅。但在人工智能的运用上,以大措辞模型GPT为案例剖析,如果仅利用CPU的话,其演习韶光将长达数百年,这样的速率显然不能知足我们对付人工智能技能打破的渴望。
而GPU恰好善于这些“热门且艰巨”的任务。在配置了GPU的打算机系统中,CPU不再孤独地承担统统,而是将这些自己不善于的任务卸载(offload)到GPU上加速实行。得益于分外的并行架构设计,GPU在处理这些任务时游刃有余,可以轻松地为我们供应细腻入微的3D画质,让OpenAI公司每隔几个月就能推陈出新。
GPU是如何实现加速的?从并行架构的角度看GPU与CPU的差异在开始谈论之前,我们须要进行一个类比:打算机中的一个程序,可以类比成由持续串运算题组成的试卷——打算机科学家们的祖师爷艾伦·图灵便是这么构想打算机程序的。当然,这些运算题有难有易,有小学生就能轻松应对的四则运算,也有高中生可以玩转的三角函数,还有大学生才能完备节制的微积分。
打算机科学家曾希望CPU可以像一位履历老道的“数学家”,发挥他的打算能力(打算指令)、敏锐的决策力(掌握指令)快速地完成试卷(程序),得到用户想要的结果。而随着打算机的程序越来越繁芜,“老数学家”的能力逐渐不能知足哀求了,他紧张的缺陷是:纵然每道题都能算的很快,但任何韶光都只能齐心专心一意地算一道题。
单核CPU打算机的事情框架,黑线为数据流,红线为掌握流,均由单个CPU处理(图片来源:wiki)
于是,英特尔、IBM、AMD等公司开始意识到,可以在一个CPU内“聘请”多位数学家,也就构成了目前常见的多核CPU。当然受限于芯片散热、良率的约束,多位数学家中的每一位都不像的从前的那么强,可能更像是多位准备参加高档数学考试的“大学生”。——为什么是准备参加呢?由于考完试就忘了(扎心)。
第四代AMD EPYC处理器架构,EPYC是AMD的高性能做事器处理器系列,图中的Z4便是我们所说的“大学生”核心,一个CPU中可包含16-96个核心(图片来源:AMD官网)
GPU则可以类比成约由几千到上万个“小学生”核心组成的大型打算团队。比较于大学生核心,单个小学生核心只能打算更大略的运算,且打算速率也仅有大学生的1/4~1/3。下图展示了英伟达H100 GPU的架构,“小学生”核心对应图中的绿色小格子,一共有18432个。一万多名小学生核心先被层层划分成为上百个“班级”,在班级内部再动态划分成32-64人一组的“值日小组”。
英伟达H100 GPU架构图,GPU中包含了浩瀚小核心,按照层次构造进行组织(图片来源:英伟达H100架构白皮书)
该如何让这么多小学生核心高效协作呢?像CPU一样让每个小学生都独立完成试卷,显然不是一个理智的方案。为理解决协同问题,英伟达GPU增加了一条规则限定:每个“值日小组”内的所有核心(线程)在同一韶光只能实行一种运算操作(指令),而一个或多个值日小组(可以超过班级)可以被组织起来共同完成一张程序试卷,这种协同事情模式被称为单指令多线程并行(Single instruction, multiple threads,简称为SIMT),是英伟达GPU运作的核心模式。我们用一张示意图比拟CPU和GPU的并走运作方法。
多核与SIMT并行办法差异的示意图(作者低廉甜头)
聪明的你该当已经意识到,这种奇妙的组织办法会让CPU和GPU所能做答的试卷产生明显的差异。如果CPU(单个核心)的试卷长这样:
那么 GPU 的试卷将会是这样的(假设一个值日小组有三个核心):
这也太奇怪了!
怎么会有人出这样的试卷呢?事实情形是:图形渲染和人工智能运用恰好符合这样的特点。对付图形渲染而言,输入的3D图形是由浩瀚离散的点坐标组成的,在渲染过程中须要并行地对多个点进行相同的位置转换、光照运算;在人工智能运用中,现实天下输入的图像、笔墨被表达成了大规模的矩阵和向量,而矩阵和向量之间的运算操作也可以抽象成多个数值并行实行相同的运算,正中SIMT并行的下怀!
既然,GPU的并行模式这么精良,我们为什么不干脆把CPU也设计成这样呢?答案是:SIMT并行比较多核并行丢失了一定的“通用性”。在我们的类比中,更直不雅观的表达是:我们不一定能把试卷组织成适宜GPU的样子。一个案例便是我们每天都在访问的微信、淘宝等互联网运用,由于每个用户都在发送不一样的、查看不一样的商品,很难让GPU的值日小组高效协同。
如何乘上AI的“东风:从GPU到GPGPU1999年,英伟达发布了天下上第一款GPU——GeForce 256,它集成了变换、裁剪及渲染等图形打算的硬件加速,也因此被命名为图形处理单元。
GeForce 256 GPU(图片来源:wiki)
早期GPU的可编程性很弱,大多数用户只能调用固定的编程接口进行固定的图形操作。但是一些具有前瞻视野的打算机科学家意识到了GPU可挖掘的并行打算潜力,他们考试测验将洋流仿照、大气仿照等科学打算问题映射转换成GPU可支持的图形操作,并得到了性能收益。
搭载GeForce 256 芯片的GPU板卡(图片来源:VGA Museum)
大概是受到了这种“歪打正着”的运用处景启示,2007年英伟达推出了CUDA(Compute Unified Device Architecture)编程框架,向开拓者全面放开了GPU的可编程能力。借助CUDA,用户可以用类似C/C++的编程办法编写适用于GPU的并行程序。从此,GPU的名字变成了GPGPU(General-purpose computing on graphics processing units),多出来的GP表达了对通用性的支持。
在比CUDA推出稍早一点的2006年,人工智能泰斗Hinton及其团队改进了深度神经网络的演习方法,属于“连接主义学派”的深度学习方法开始回暖。到了2012年,图像分类模型 AlexNet 赢得了 ImageNet 竞赛,引发了深度学习研究的激情亲切,借助GPGPU进行演习的方法开始被广泛采纳。2014年,NVIDIA推出了cuDNN深度学习加速库,让基于GPU的深度学习演习变得更加随意马虎。
之后的故事我们逐渐熟习,2016年谷歌的人工智能围棋软件AlphaGo击败韩国棋手李世石,在AlphaGo的早期版本中,谷歌利用了176块GPU支撑其运行。
由上百块GPU演习的AlphaGo击败了韩国棋手李世石(图片来源:Deepmind)
2022年末,谈天机器人ChatGPT惊艳登场,引发了人门对付人工智能技能新一轮的憧憬。ChatGPT是一种大措辞模型,能够基于海量文本数据的演习,通过机器学习理解并天生人类措辞。只管缺少公开数据支持,但是干系领域研究者普遍认为OpenAI公司采取了数千到数万块当时顶级的NVIDIA A100 GPU以支持演习。
谈天机器人ChatGPT掀起了人工智能新一轮的研究热潮(图片来源:pexel)
在此背景下,支撑大模型算力需求的GPU正成为各大科技企业争夺的“紧俏货”。作为具有垄断地位的厂商,英伟达在这场人工智能的狂潮中,凭借十余年的技能积累,成功捉住了机遇,完成了从“游戏处理器”到“人工智能打算平台”的华美转身,可谓是“好风凭借力,送我上青云”。
英伟达在GPU领域处于环球垄断地位,然而受限于美国政府的出口限定,高端GPU型号对我国处于禁售状态。开拓设计具有独立自主知识产权的人工智能打算平台,是我国打算机科研职员当前发力的重点问题之一。那么,刚刚高考完“想要学人工智能”的你,愿不愿意参与到这一开启未来的征程中来呢?
作者:高睿昊
作者单位:中国科学院打算技能研究所