GPU要超越CPU挤身一线主角还得靠AI
GPU应用因AI开始有了截然不同的新转变,不只让一些支援高度平行运算应用的高阶GPU相继问世,现在连整套GPU深度学习专用服务器也抢滩登陆,要助企业加快AI应用。
AI人工智慧、虚拟/扩增实境(VR/AR)与自动驾驶技术,在过去一年引起很高的市场关注,而一举跃升成为当前最火红的热门话题,特别是以深度学习(Deep Learning)为首的AI应用,过去几个月来,因为Google的AI电脑AlphaGo接连大败欧洲和南韩国围棋棋王,更在全世界吹起一股AI风潮,使得现在不只有大型科技或网路公司要大力投资AI,就连各国*也都要砸重金扶植AI产业。
目前一些大型科技或网路业者,例如Google、Facebook、亚马逊AWS、IBM、微软与百度等,都陆续已在云端服务中融入AI服务,做为电脑视觉、语音辨识和机器人等服务用途,甚至,也开始有越来越多规模较小的新创或网路公司,如Api.ai、Drive. ai、Clarifai与MetaMind等,打算将AI开始应用在各行各业的领域上。
GPU开始在AI应用逐渐崭露头角
然而,决定这些AI服务能不能获得更好发挥的关键,不只得靠机器学习的帮忙,甚至得借助深度学习的类神经演算法,才能加深AI未来的应用。这也使得近年来,GPU开始在一些AI应用当中逐渐崭露头角。这是因为不论是AI、VR/AR,还是自动驾驶技术的应用,虽然各有不同用途,但他们普遍都有一个共同的特色,都是需要大量平行运算(Parallel Computing)的能力,才能当作深度学习训练模型使用,或者是将图形绘制更贴近真实呈现。
所谓的平行运算泛指的是将大量且密集的运算问题,切割成一个个小的运算公式,而在同时间内并行完成计算的一种运算类型。而GPU则是最能够将平行运算发挥到极致的一大关键,这是因为GPU在晶片架构上,原本就被设计成适合以分散式运算的方式,来加速完成大量且单调式的计算工作,例如图形渲染等。所以,过去像是高细腻电玩画面所需的大量图形运算,就成为了GPU最先被广为运用的领域,现在,VR/AR则是进一步打算将原本就擅于绘图运算的GPU发挥得更淋漓尽致,来呈现出高临场感的3D虚拟实境体验。
当然在游戏绘图运算外,后来GPU也被拿来运用在需要大量同质计算的科学研究中使用。甚至近年来,GPU也开始因为深度学习的关系,而在一些AI应用当中担任重要角色。
深度学习其实是机器学习类神经网路的其中一个分支,深度学习本身是由很多小的数学元件组合成一个复杂模型,就像是脑神经网路一般,可以建构出多层次的神经网路模型,来分别处理不同层次的运算工作,这些神经网路本身并不做判断,只重覆相同计算工作,使得GPU在深度学习方面可以获得很好的发挥,而随着网路、云端和硬体技术成熟所带来巨量的资料,也造就了现在所需完成训练的深度学习模型,比起以前更需要大量高阶GPU的平行运算能力,才足以应付得了。
GPU平行运算性价比赢过CPU
因为AI、VR/AR与自驾车应用需求提高后,也促使GPU重要性与日俱增,甚至为了因应深度学习与AI应用趋势,新世代GPU反而希望尽可能在晶片中装入了更多电晶体和核心数,来提高大量同性质的资料计算能力。若是以Nvidia新的Tesla P100系列的GPU加速器产品来举例说明的话,在这个GPU加速器内总共装有3,584个CUDA核心数(单精度条件下),其内含的电晶体数更一举超过了150亿颗,数量几乎是前一代Tesla M40 GPU的翻倍,在双精度条件下的浮点运算能力,更高达有5.3 TFLOPs。
当然GPU之外,CPU本身也具有计算处理的能力,不过在处理平行运算时,*大学资工系副教授洪士灏认为,GPU的CP值(性价比)比CPU还要高。这是因为GPU原本就擅长处理大量高同质性的资料计算工作,而CPU则擅于通用型任务的资料处理,所以对于一些需要大量单调式运算工作的应用,就很适合使用GPU来执行,例如利用深度学习神经网路训练模型来实现AI应用,或者是用绘图运算呈现VR/AR所需的高细腻画面,都很适合用GPU的方式来进行计算。
另外从Nvidia官方所公布的一份CUDA C Programming Guide设计指南中也揭露了在2013年前的过去10年间,GPU与CPU两者在单精度与双精度浮点运算(Floating-Point Operations Per Second,FLOPS)发展的比较差异。整体来看,GPU与CPU发展越到后期,两者在浮点运算处理能力的差距,有逐渐被拉大的趋势,这是因为越到后面才推出的新款GPU,更加强调浮点运算的重要性,而尽可能要提高GPU浮点运算的处理能力。所以,现在许多超级电脑内都有使用GPU,来大幅提高浮点运算的实力。
从Nvidia官方所公布的一份CUDA C Programming Guide设计指南中也部分揭露了在2013年前的过去10年间,GPU与CPU两者在单精度与双精度浮点运算发展的比较差异。
整体来看,GPU与CPU发展越到后期,两者在浮点运算处理能力的差距,有逐渐被拉大的趋势,这是因为越到后面才推出的新款GPU,更加强了浮点运算的能力。