联系
我们
投稿
反馈
评论 返回
顶部

内容字号: 默认 大号超大号

段落设置: 段首缩进取消段首缩进

字体设置:切换到微软雅黑切换到宋体

从CPU到GPGPU,云端服务器“芯”战场

2020-01-02 12:26 出处:互联网 人气: 评论(
情商高的聊天语句900句 腹黑妹妹控兄记 三人行必有我妹 吉林化纤 save me 女恶魔人 对学生会长的忠告

图集

  2019年毫无疑问是国产AI芯片的爆发年,大大小小的芯片发布会可谓你方唱罢我登场。纵观今年发布的AI芯片,它们都各具特色,各有千秋。尤其在它们所擅长的特定任务上,其效能与算力,甚至能够大幅领先部分GPU,谷歌的张量计算单元(TPU)、特斯拉的自动驾驶计算单元(FSD)以及国内外各类AI芯片新品,而这也是为什么自家产品在在发布会上都号称性能及能效比上可以吊打英伟达的某款GPU明星产品。

  然而,它们确实超越英伟达了吗?显然没有,尤其是撼动不了围绕英伟达而生的生态系统。背后的因素有很多,但其中一条重要的原因是:相比TPU等产品,GPU能做的事情更多。而那些AI芯片只擅长做一件事、只在那个应用场景下比GPU强。换言之,GPU的通用性或可用性更好。

  通用就那么重要?对于数据中心和云端应用,是的。

  首先是成本问题。芯片当通用性足够强、可用性足够广的时候,它的销量才能撑得起研发设计、最新的制程工艺成本不断攀升的需求。在“量”这个维度上,AI专用芯片几乎没有现象级的市场。

  其次是灵活性问题。现在的AI算法迭代的速度非常快,长则几个月短则数周就会发生变化;芯片以18个月为开发周期计,当芯片问世的时候,AI芯片可能就已经落后了。

  所以,我们现在看到的是GPU在计算力经济大潮中叱咤风云,英伟达股价一涨再涨。

  “通用”王者——GPGPU兴起

  说起来,GPU起初也是一款专用芯片——与CPU相比,早年的GPU专用于图形计算加速,且在GPU诞生之时还是以ASIC芯片的形态面世。不过,GPU在不断的发展和演进之中,逐渐进化出越来越多的通用属性,也即可编程性。

  特别是,自从英伟达在2006年左右推出了CUDA。CUDA是英伟达在GPU应用于高性能异构计算领域在编程方面的一大创举,无疑也是走得极为正确的一步棋——CUDA可以基于C语言、C++和Fortran、Python等语言直接开发应用程序,并构建起极为庞大的开发用户群,这奠定了GPU可以广泛应用的技术基础和生态力量。

  当然,这也得益于大数据时代,各行各业都需要更加强劲的算力。CUDA的推出,开启了英伟达的GPGPU(通用GPU)战略——在大部分人对GPU的认识还局限在游戏图形加速之时,GPGPU的时代,就从那时启幕。

  GPGPU,也有人称之为GP2U(GP的两次方U)。两个GP代表着不同的含义:后边的GP表示图形处理(Graphic Process),和U组合一起是我们熟知的GPU(图形处理器);前一个GP则表示“通用目的”(General Purpose)。GPGPU不是一款具体的芯片,而是一种概念,即利用图形处理器进行一些非图形渲染的高性能计算。

  从狭义上来讲,GPGPU在GPU的基础上进行了优化设计,使之更适合高性能并行计算,并能使用更高级别的编程语言,在性能、易用性和通用性上更加强大。

  应用领域方面,GPGPU将应用扩展到了图形之外,在科学计算、区块链、大数据处理、工程计算、金融、基因等方面,GPGPU都得到了广泛的使用,关于它的科研成果和新应用模式也层出不穷。

image.png

  从上图可以看出,GPU应用于 AI计算,无论是云端训练还是终端推理,其本质都是 GPU通用属性的一个方向。或者说,AI计算在 GPGPU世界里,只是其中一个组成部分。只是 AI计算这个方向潜力巨大,因此 GPU厂商才将 AI计算作为着重发展和宣传的方向。

  如果将CPU比作是一名数学家,GPU是一名艺术家,那么,GPGPU或许应该是……莱昂纳多·达·芬奇。

  “兵家必争之地”

  目前全球范围内在GPGPU领域的玩家,英伟达似乎已是控场之姿。

  其实早在2006年左右,AMD就发布过一款“流处理器”,算是AMD最早的GPGPU的尝试。但当时那款“流处理器”只是GPGPU的一个“雏形”,远未发挥出GPGPU的真正威力。

  此后,AMD在GPGPU方面并没有太多动作,甚至于后来出现的开放计算语言(OpenCL)都是苹果公司开发推出的。这也让AMD丧失了在GPGPU方面与英伟达对垒的机会,以至于处于追赶者的象限内。

  而英特尔,也在加紧布局通用GPU。英特尔眼馋GPU路人皆知,其背后是一段辛酸史——从开始对GPU的不屑,到基于自家的x86架构开发独立显卡,英特尔折腾了十年之久仍然没做出来一款像样的GPU。近两年传出消息英特尔将在2020年推出首款独立GPU,这恐怕要得益于英特尔的重金挖人——原AMD RTG显卡部门负责人Raja、Zen架构的功勋领袖Jim Keller、显卡技术市场总监Damien Triolet这几位大神都在2018年被英特尔招入麾下。

  可以想象,对于英特尔而言,都2020年了,英特尔再做传统显卡的意义显然不大,在异构计算时代,英特尔只有瞄准数据中心,才下定决心搂响GPU这个扳机。

  再多说一句,英特尔最强的生态在x86架构CPU这块,英特尔的策略,可能更趋从CPU生态这端探索一条将CPU和GPU结合更紧密的路子。

  笔者采访了相关行业技术人员,了解到研发GPGPU的难点在于以下几个方面。

  从硬件角度看,最核心的是指令集。指令集的覆盖面、颗粒度、效率等决定一款芯片能否覆盖到足够宽的应用市场领域,并对软件开发和产品迭代足够友好。无论是英伟达还是AMD的GPGPU,指令集都在千条量级,而目前国内的AI芯片指令集大多数都在百条以内。类型与数量的差别映射到硬件高效实现的复杂程度,差距是巨大的,在这方面国内的团队还存在着一定的差距。另一个重要方面就是基于硬件层的任务管理和智能调度,这可以让芯片从硬件层即提高算力的利用率,也就是大家常说的实际算力。大多数AI芯片的做法是完全依赖于软件层的调度实现,但这种方式第一增加了软件开发的复杂度,第二降低了硬件算力的利用率,第三减缓了软件栈迭代更新的速度,这在AI领域,面向算法模型、开发环境、应用场景加速更新的大背景下无疑大大增加了产品落地与工程化的难度。

  在软件方面,毫无疑问,最重要的必然是开发生态,GPGPU通过英伟达十多年的耕耘,已经建立起了一个超过160万开发用户的庞大而成熟的生态-CUDA。AI芯片则需要搭建全新的生态,它会带来两个维度显著的问题,第一个维度是客户端,客户需要冗长的适配期,从原有的开发环境切换到新的软件生态,这不仅带来了资源投入,推迟了业务部署时间窗口,增加了业务的不确定性,更严重的是不利于保护已有的软件投资,软件的很多部分都要重新来写并适配,这对企业级用户来讲恰恰是非常敏感与慎重的事情。另一个维度是产品开发端,从底层芯片与系统软件,跳过CUDA层去直接支持开发框架,必然带来巨大的软件投入,不停得追赶现有框架的新版本,以及生态巨头的新框架,这在底层软件人员缺乏的背景下矛盾显得尤其突出。

  而以上两点说到底都是需要人来解决的,恰恰在这方面的人才是目前中国企业最缺少的。目前只有英伟达和AMD拥有丰富的团队,这也侧面证明了为什么Intel自己折腾几年,最后还是请了AMD的几位大神。

分享给小伙伴们:
本文标签:

更多文章

相关文章

评论

发表评论愿您的每句评论,都能给大家的生活添色彩,带来共鸣,带来思索,带来快乐。

  • 蛮便宜
  • 抠门网
  • Copyright © 2002-2014 版权所有