英伟达 - GPU - CUDA并行计算架构 (Compute Unified Device Architecture, 统一计算设备架构)
欢迎关注“创事记”的微信订阅号:sinachuangshiji
文/颜萌 李林(编译)
量子位 出品 | 公众号 QbitAI
所到之处,英伟达CEO黄仁勋例行强调:我们是一家AI公司。
谁又能说不是?
市值两年上涨7倍,芯片供不应求,屡战英特尔,坚持怼谷歌,是当前AI大红大紫中的实力玩家,也是AI大潮中最闪亮耀眼的明星缩影。
创立24年来,从游戏芯片供应商,到AI芯片垄断者,英伟达俨然历史钦定。
不过,回溯英伟达的风云际会,历史进程纵然功不可没,个人奋斗更是不容忽视——没有濒临破产时的豪赌,没有在CUDA上百亿美元的押注,又怎会有如今风光无限的英伟达和黄教主。
《纽约时报》记者Don Clark,决定揭秘英伟达“奇幻漂流”背后的关键时刻。
这不止是一个豪赌出奇迹的案例。
英伟达转折点
转折点是“CUDA”。
CUDA,英伟达的并行计算平台和编程模型。在它出现之前,英伟达的主要芯片GPU只是一个负责在屏幕上绘制图像的“图形处理单元”。
但CUDA的出现,让GPU拥有解决复杂计算问题的能力,可以帮助客户为不同的任务对处理器进行编程。
比如远在波兰的图像识别公司CTA.ai,可以用它帮助筛查肠道图像——仅需要病患咽下一个药丸大小的传感器,就能让医生检测肠道功能紊乱的速度能够比视频检查快速70%,不仅检查成本降低,而且诊断结果更精确。
对于类似的GPU应用,CTA.ai并不孤单。
GPU也正出现在越来越多出现在新兴设备上,比如无人车、机器人、自动驾驶汽车、服务器、超级计算机和虚拟现实设备。
它几乎是AI市场最为核心的需求品类,因为当前只有英伟达的GPU,才能快速处理各种复杂的人工智能任务,如图像识别、脸部识别和语音识别,甚至深度学习加速、气候建模,石油勘探都必须标配GPU。、
实际上,这样的应用,远超老黄的最初预期。
黄仁勋生于台湾,在俄勒冈州立大学和斯坦福大学学习电子工程,后来在硅谷的芯片制造商工作。
1993年,他和Chris Malachowsky、Curtis Priem一起创办了英伟达,最初,他们给游戏PC提供视觉特效,帮它们和那些专业的电子游戏机竞争。
Malachowsky说,公司最初的产品并不成功,而图形市场对手众多。后来,英伟达重组了它的产品和战略,逐渐与对手拉开距离,最终成就了在游戏PC中GPU加速器卡的绝对的领导地位。
GPU生成三角形以形成框架结构,模拟对象,为显示屏上的像素赋予颜色。要做到这一点,必须并行执行许多简单的指令,这就是图形芯片随着微型处理器数量的增加,性能优化的原因。
如何最大化利用这些微处理器的并行计算能力,始终是英伟达核心关心的问题。
也是CUDA诞生的原因。
实习生杰作
2004年,斯坦福大学博士生Ian Buck进入英伟达实习,这是CUDA研发的开端。当时,Buck参与过一项编程竞赛,任务是让能更容易地管理GPU的众多计算引擎。
CUDA的核心设计理念就是计算机中的线程。与传统CPU中的4、8和16个线程不同,GPU中的线程可以多达几万个。
Buck表示,看起来这些线程的管理是一件十分复杂的事情。但实际上,编程人员主要的困难在于如何发挥这些线程的优势,而不是管理这些线程。早期,CUDA的性能主要依赖编程人员人工发现代码中可并行计算的部分。
目前,随着CUDA库的发展,这方面的工作开始越来越自动化。CUDA团队已经开发了很多石油、天然气和国防等相关产业所使用的科学计算方面的库。最终,2012年发布的Titan超级计算机使用了18688个NVIDIA Tesla K20 GPU作为协处理器,标志着GPGPU在高性能计算方面的成功推广和应用。从2011年开始,Top 500的超级计算机中至少有50台会使用GPU进行加速。而这些机器基本上也都出现在Green 500(全球节能超级计算机榜单)的列表中。
Buck曾表示,在CUDA的应用当中,最让其影响深刻的就是,乳腺癌检测和诊断的系统。与传统方法相比,采用支持CUDA编程的Tesla GPU后,医生能够更早、更精确地发现乳腺癌。而美国国家癌症研究所数据显示,基于CUDA的系统在运行蛋白质配体运算(用于研发治疗癌症和老年痴呆症的新药)时只需要原来1/12的时间。
此后,CUDA开始受到越来越多的关注。
Buck还介绍说,他之前和来自很多工业界的人士交流发现,他们宁愿牺牲性能,也不愿接受一门新的语言。为了能够给相关编程人员提供很好的入门体验,从而便于CUDA的推广,CUDA采用了已经流行的C语言作为基础。
这样,编程人员就不需要去学习特定的显示芯片的指令或是特殊的结构,即可编写GPU上运行的程序,这毫无疑问促进了CUDA在程序员之间的流行。
此外,英伟达当年做出的一个决定也极为关键。现在已是英伟达负责加速计算的副总裁lan Buck回忆说,英伟达让自家消费级GPU和高端产品都支持CUDA。这就意味着只要研究人员、学生有笔记本电脑或者台式机,就能在学校实验室和宿舍里开发软件。
英伟达还说服了许多大学开设课程,教学生用他们公司的最新编程技术。程序员们逐渐把GPU应用于气候建模、勘探石油和天然气等很多领域。
2012年,GPU的强大能力和深度学习一起,震惊了学术界。当时,加拿大多伦多大学的Geoffrey Hinton带着两个学生,用GPU训练深度神经网络拿下了ImageNet图像识别大赛的冠军。
Buck表示,在GPU出现之前,训练这样一个系统可能需要整整一个学期。而有了这项技术,研究人员现在可以在很短的时间内完成这一过程。
“我无法想象要是没有GPU该怎么做。”斯坦福大学的副教授Silvio Savarese说。
而对于GPU和英伟达来说,最好的时间已经来到。只是同样让人难以想象的是这场从无到有背后的押注。
百亿美元押注
这绝对是一场赌上全部身家的押注。而最关键的拍板者是英伟达创始人:黄仁勋。
黄仁勋总被国内网友称为“老黄”,甚至被安上了“核武狂魔、两弹元勋”的名号,但本质上,他有着像乔教主一样严苛的个性、战略上的直觉。
也有人习惯把他和乔布斯相提并论,除了个性和才能之外,他们同样喜欢穿一身深色衣服,甚至同样为公司建了一栋引人注目的大楼。当然,改变英伟达命运的CUDA,和改变苹果命运的iPhone,也有不少相似之处——至少它们都诞生在同一年,都堪称孤胆押注。
当时是,老黄宣布要通过一些列软件开发和修改工作,让GPU胜任各种任务,不再只是负责在屏幕上绘制图像。
但最大的问题是钱、钱、钱!他说:“成本对公司来说奇高无比。”
一旦项目启动,每年砸到CUDA上的研发成本估算就有5亿美元,而当时公司全年的总收入才大约30亿美元。也就是说,老黄把整个整个公司的1/6,押注在了和公司核心业务似乎没什么关系的一个软件平台上。
最后来看,自CUDA推出以来,英伟达在将GPU转化为更通用的计算工具上投入了将近100亿美元。
说巧不巧,正当黄仁勋大举押注CUDA之时,计算行业也正在发生广泛变革,摩尔定律带来的计算提升速度正在放缓,这也让当初借此统治芯片市场的英特尔,地位发生动摇,即便诸多芯片设计公司试图从无到有打造更专业芯片,并让该类芯片与英特尔处理器一同运行,利用芯片电路的微型化提供更多的好处。
但又怎挡得住英伟达的势能优势。在英特尔和其他芯片厂商转型途中,英伟达不需要从头做起,只要重新定位已有的芯片,利用在CUDA项目中开发的芯片和软件,就能逐渐打造出一个广受程序员和企业欢迎的技术平台。
现在,这样的平台已然展现在世人面前,但不意味着战场就此风平浪静。
芯片战争还在继续
英伟达的竞争对手们说,在AI领域,芯片制造商之间的斗争才刚开始。
首先是英特尔,这家传统芯片巨头在这场战争中不甘落后,接连重金收购了可编程芯片制造商Altera、专注于研究深度学习和机器视觉的其他创业公司、还有为汽车生产驾驶辅助设备的以色列公司Mobileye。
还有Google,其中最醒目的莫过于最近则发布的第二代TPU,这是该公司内部开发的人工智能芯片,在它的助力下,谷歌在围棋比赛中击败了世界冠军柯洁。谷歌声称,这种芯片在某些应用程序中比GPU有更明显的优势。
当然,诸如Wave Computing之类的初创公司也这么说。
但击败英伟达并不容易。
一个很重要的原因是,这家公司有来自游戏市场的,源源不断的收入,他们能投入到芯片研发上,比大多数人工智能竞争对手都要多。
比如说前不久发布的Volta架构,就投入了30亿美元研发费用,创下了行业记录。
英伟达表示,目前有50多万开发人员使用GPU。此外,这家公司还打算开源一种芯片架构,免费供其他芯片厂商用在灯泡、摄像头等低端深度学习应用上,借此在这些自己不打算涉足的领域,扩大粉丝基础。
老黄说,“人工智能终将影响到世界上的每一家公司,但我们不会什么都做。”
不了解黄仁勋的人以为这是谦虚,熟悉他的人就知道,这是杀伐征战24年后,老黄敢赌敢赢背后的专注力。