英伟达的“核武器”:实习生拯救GPU帝国,黄仁勋的强迫症也功不可没
对于人工智能的兴奋情绪,让已经24岁的英伟达成为科技界最热门的企业之一,股价直线飙升,过去两年内涨幅超过七倍,市值达到1000亿美元,最近一个季度的收入暴增了56%。
势如破竹的背后,你或许会好奇,曾经一个只是负责在屏幕上绘制图像的“图形处理单元”,如今为何能够肩负起解决复杂计算问题的重任?GPU全面崛起,英伟达的答案很明确,一个有“强迫症”的老板和十多年前的一次关键押注。
皮衣霸道总裁的“强迫症”
这家强势增长的公司背后的掌舵者是创始人兼CEO黄仁勋(Jen-Hsun Huang)。他拥有敏锐的战略直觉,个性出了名的严苛,常常穿深色的衣服,因此有人拿他来跟苹果已故CEO史蒂夫·乔布斯(Steve Jobs)比较。
▲ 英伟达创始人兼CEO 黄仁勋
黄仁勋今年已经54岁,总是一身全黑,还经常披件皮外套,在办公室里走路风风火火,员工一般很难跟上他的步伐。他出生在台湾,从小和家人一起生活在美国。青少年时期他特别喜欢打乒乓球,后来还成了当地闻名的顶尖快攻球员。Paddle Palace乒乓球公司的CEO也说:“他行动敏捷,打球流畅且有力量,要不是从商了,本来或许可以成为全国顶尖的乒乓球运动员。”
从斯坦福毕业后,第二年他就开始学习电子工程专业知识,与前Sun Microsystems工程师Chris Malachowsky和Curtis Priem共同创建了显卡制造公司英伟达。
不久,英伟达迅速在市场上辟出了一席之地。经过与47家显卡生产商的激烈争夺后于1999年上市,而其他公司要不就是被收购了,要不就是倒闭了,只留下AMD还在和英伟达两强相争。
为了存活下来,黄仁勋告诫员工必须保持专注。他总是说如果不努力,公司可能一个月内就会破产,这让每个员工都感受到了压迫和紧张感。
黄仁勋的竞争“强迫症”还反映在他总是向员工宣布好消息上。1997年的一次全体大会上,他向全体员工宣布英伟达银行留存资金100万美元左右。同时,公司已经将芯片RIVA 128投入量产。这种消息总是搞得员工的心情十分忐忑。接着他从自己口袋里拿出一张纸,向大家解释这是STB系统下的3000万美元显卡订单。那是英伟达第一次接到这么大笔单子,也标志着英伟达显卡芯片已经成功打开了HP和DELL这类计算机制造商的市场,当时公司上下一片欢呼。
1998年,英伟达首次补上了季度利润不足,当时黄仁勋还在办公室给70个员工每人都发了一张1美元钞票庆祝。
黄仁勋的“强迫症”还是非常有效的。上市前后,英伟达经过了多次“濒死”体验。每次将芯片发给计算机制造商,员工总是面临不立即行动会死人的截止期限。有时在台湾生产的芯片被检测出来有问题,宁愿损失一大笔钱也要全部回收残次品。
黄仁勋的危机管理能力为他赢得了员工的敬重。1998年,英特尔推出了一款与英伟达竞争的显卡,黄仁勋组织了一系列全体会议,指示员工写出能提高玩游戏时的显卡性能的软件。后来还是保住了竞争优势。英特尔制造的威胁在英伟达看来其实从未实现。
同年,Silicon Graphics起诉英伟达专利侵权。黄仁勋再次迅速掌控了有利局势,两家公司最终同意授权对方专利。SGI后来还让英伟达成为了自家计算机系统显卡芯片的优先选择。黄仁勋的努力也帮助英伟达在首轮融资中吸引了众多潜在投资者。
黄仁勋已经证明了他的“能屈能伸”。公司创建以来的24年时间里,英伟达数次面临生存困境,包括新芯片出问题,和竞争对手打官司等,黄仁勋都带领员工渡过了危机。
▲ 在施工中的英伟达圣克拉拉新总部
多年来,为了让英伟达拓展新的市场领域,黄仁勋一直都会事先做好风险预估工作。就在10多年前,他下了一次关键性的赌注:押注一系列的改动和软件开发,来使得GPU能够处理在电脑屏幕上绘画以外的、更为复杂的任务。
然而,“此举给公司带来了极大的成本压力。”黄仁勋说。他估计,该名为CUDA(统一计算设备架构)的项目每年需要花费5亿美元,而当时公司的总营收规模在30亿美元左右。自从CUDA推出以来,英伟达所有的支出都围绕着将GPU转化为更为通用计算工具,总额接近100亿美元。
实习生杰作“CUDA”拯救GPU帝国
如此执拗的霸道总裁真怀疑他是“处女座”。不过,CUDA取得今天所有成绩,除了黄仁勋的坚持,还有一个人功不可没,他就是伊恩·布克(Ian Buck),现任英伟达 GPU 计算软件总经理。
▲ Ian Buck于2004年加盟英伟达并创造了CUDA
Ian Buck对于GPU计算的研究最早起始于2000年。当时,Buck及其在斯坦福大学的一个小团队敏锐观察到了图形处理器在性能方面的优势和发展趋势。他表示,将GPU用于通用计算的想法是从GPU支持可编程开始的。
在最初几年,他们遇到了非常大的困难。尽管初步试验可以证实GPU用于通用计算的巨大潜力,推广这个想法却十分不易。 终于在2003年,由Ian Buck领导的研究团队发布了Brook,这是第一个广泛采用的使用数据并行架构扩展C的编程模型。同时,Brook也是GPU 通用计算方面先驱项目。
▲ 英伟达 GPU 计算软件总经理 Ian Buck(最右)
2004年,斯坦福大学博士生Ian Buck进入英伟达实习,开始集合相关的硬件和软件工程师创造GPGPU模型,这是CUDA研发的开端。当时,Buck曾参与一项涉及简化利用GPU的众多计算引擎过程的编程挑战赛。
不久后,英伟达便对它的芯片作出改动,开发出软件辅助工具,其中包括支持标准的编程语言,而非用于向图形芯片发出指令的神秘工具。在Ian Buck率领下,于2006年正式推出——CUDA,这是全球首款GPU上的通用计算解决方案。
CUDA是由英伟达开发的用于图形处理单元(GPU)上的通用计算的并行计算平台和编程模型。利用CUDA,开发人员可以通过利用GPU的功能大大加快计算应用。事实上,在英伟达内部,CUDA是作为所有GPU系列的通用平台。
▲ 英伟达Tesla P100的性能表现
在GPU加速的应用程序中,工作负载的顺序部分在CPU上运行,针对单线程性能进行了优化,而应用程序的计算密集型部分则并行运行在数千个GPU内核上。使用CUDA时,开发人员使用C、C ++、Fortran、Python和MATLAB等流行语言进行程序设计,并以几个基本关键字的形式通过扩展表达并行性。CUDA工具包包括GPU加速库、编译器、开发工具和CUDA运行时。
CUDA的核心设计理念就是计算机中的线程。与传统CPU中的4、8和16个线程不同,GPU中的线程可以多达几万个。
Buck表示,看起来这些线程的管理是一件十分复杂的事情。但实际上,编程人员主要的困难在于如何发挥这些线程的优势,而不是管理这些线程。早期,CUDA的性能主要依赖编程人员人工发现代码中可并行计算的部分。
目前,随着CUDA库的发展,这方面的工作开始越来越自动化。CUDA团队已经开发了很多石油、天然气和国防等相关产业所使用的科学计算方面的库。最终,2012年发布的Titan超级计算机使用了18688个英伟达Tesla K20 GPU作为协处理器,标志着GPGPU在高性能计算方面的成功推广和应用。从2011年开始,Top 500的超级计算机中至少有50台会使用GPU进行加速。而这些机器基本上也都出现在Green 500(全球节能超级计算机榜单)的列表中。
英伟达AI“杀伤性武器” CUDA平台瓜熟蒂落
CUDA开始受到越来越多的关注,CUDA的应用也“百花齐放”。但Buck表示,其中最让其影响深刻的就是,乳腺癌检测和诊断的系统。与传统方法相比,采用支持CUDA编程的Tesla GPU后,医生能够更早、更精确地发现乳腺癌。而美国国家癌症研究所数据显示,基于CUDA的系统在运行蛋白质配体运算(用于研发治疗癌症和老年痴呆症的新药)时只需要原来1/12的时间。
▲ 英伟达的新图形芯片Volta,据估计开发成本高达30亿美元
Buck还介绍说,他之前和来自很多工业界的人士交流发现,他们宁愿牺牲性能,也不愿接受一门新的语言。为了能够给相关编程人员提供很好的入门体验,从而便于CUDA的推广,CUDA采用了已经流行的C语言作为基础。
这样,编程人员就不需要去学习特定的显示芯片的指令或是特殊的结构,即可编写GPU上运行的程序,这毫无疑问促进了CUDA在程序员之间的流行。
▲ 英伟达加州圣克拉拉园区里的演示室
此外,英伟达当年做出的一个决定也极为关键。现在已是负责针对 GPU 计算的所有工程、第三方支持以及开发者营销活动的 lan Buck 回忆说,英伟达让自家消费级GPU和高端产品都支持CUDA。这就意味着只要研究人员、学生有笔记本电脑或者台式机,就能在学校实验室和宿舍里开发软件。
英伟达还说服了许多大学开设课程,教学生用他们公司的最新编程技术。程序员们逐渐把GPU应用于气候建模、勘探石油和天然气等很多领域。
Buck表示,CUDA在超级计算领域的成功应用也迎来了很好的使用反馈。目前,Buck在英伟达的团队就根据用户反馈开始探索GPU内存的管理方式。CUDA6就推出了一个新的软件内存管理特性,支持数据在CPU内存和GPU内存之间的自动转移。计划于2016年面世的英伟达 Pascal GPU 架构则将配备 NVLink,使 GPU 和 CPU 之间的数据传输速度较现有的 PCI-Express 标准加快5至12倍。
此外,为了进一步减少编程工作,Cray、PGI以及英伟达等领先的HPC供应商在2011年推出了OpenACC编程标准。该标准定义了一组标准化的、高层次的代码注释,使C/C++和Fortran编程人员可以利用GPU加速代码运行。英伟达在2015年7月更是发布了全新OpenACC免费工具套件,让相关研究人员能够更多的关注科学本身。Buck也一再强调,OpenACC的初衷就是让用户“首先是个科学家,然后才是一个程序员”。
英伟达花了好几年才让CUDA牵住了客户,不过CUDA也帮英伟达在高性能运算市场索回了相应的回报。2012年,CUDA和GPU与深度学习的神经网络结合在一起,震惊了学术界。 当时,加拿大多伦多大学的Geoffrey Hinton带着两个学生,用GPU训练深度神经网络拿下了ImageNet图像识别大赛的冠军。
Buck表示,在此之前,要通过程序员制定的规则训练系统在数百万图像中识别出一张面孔,需要耗费整整一个学期,而通过GPU,研究人员在短短几周、几天甚至几个小时之内就能完成训练过程。
▲ GTC CHINA 2017现场
这一幕,在不久前的GTC CHINA 2017大会上,黄仁勋便用 TensorRT (一款适用于CUDA GPU的优化神经网络编译器 )进行了演示,搭配 Tesla V100 GPU 加速器的 TensorRT 每秒能够识别多达 5700 张图片,而如今所用的 CPU 则每秒仅能识别 140 张图片。
企业数据中心是黄仁勋慧眼预见到的另一CUDA应用领域。 目前,Tesla V100 AI 平台目前已经被诸多包括BAT、华为、浪潮、联想在内的中国领军IT企业采用,用以升级自身数据中心与云服务基础设施。
不过,黄仁勋下的赌注也不是次次都能获得回报。Tegra芯片本来是为智能手机和平板电脑研发,但在这两个市场并未奏效,后来只能转移战略目标。
现在,这位霸道总裁又将目光转向了汽车制造行业。