3:0完胜!在乌镇举办的人机围棋大战上,AlphaGo将人类最后的希望世界棋王柯洁彻底击溃。除了掀起新一轮人工智能与人谁更强这个话题之外,助力AlphaGo 2.0超强实力背后谷歌重新设计的算法和TPU芯片格外引人关注。在性能超越AlphaGo 1.0 50%的同时,只用了相比1.0(50块TPU)不到1/10的4块TPU,让人不得不感叹谷歌在AI这个领域确实有两把刷子。TPU云计划也让谷歌成为自IBM沃森,英伟达NGC后第三家同时拥有云计算平台和芯片设计制造技术的云服务商,而这也成为了人工智能云计算大战的导火索。在介绍谷歌TPU云之前先看看IBM和英伟达的动作。
AlphaGo能力深不可测
人工智能探路者IBM
1997年在被誉为世界之战的人机对战中,采用IBM Power 2芯片的IBM深蓝一举击败国际象棋世界冠军卡斯帕罗夫。在震惊世界的同时展现了IBM在人工智能领域的实力。14年后深蓝的接班人--采用Power7芯片的沃森在美国智力问答节目《危险边缘》中险胜最高奖金得主布拉德·鲁特尔和连胜纪录保持者肯·詹宁斯。IBM在人工智能方面的出色表现得益于其强大的软硬实力。
尽管今天的Power芯片已不如往日风光,但其实力依然不容小觑,除此之外IBM与2014年推出的TrueNorth类脑芯片更是人工智能领域的一个潜力选手。抛弃冯诺依曼架构,转而模仿人类大脑神经元结构的类脑芯片在功耗和执行效率上都远超同期的其他芯片。而芯片只是人工智能领域的一部分,更为重要的则是算法。以参加《危险边缘》节目的沃森为例,内嵌的100多套算法可以在3秒内解析问题,检索数百万条信息然后再筛选还原成"答案"输出成人类语言。每一种算法都有其专门的功能。
因为沉浸人工智能领域多年,当IBM沃森开始进军商用市场推出沃森医疗,沃森金融等一系列商业应用时,几乎没人会怀疑IBM的实力。进入云计算时代之后,尽管IBM一开始相对其他对手起步晚了一些,但由于将沃森与其大量的商用产品相融合,因此成为了IBM的一张王牌。在这其中,向公众免费开放的云服务-沃森分析"(Watson Analytics)收到了广泛的好评和关注。而另一方面为了吸引开发者,IBM也发布了沃森开发包和API以巩固自身在AI市场的地位。
人工智能意见领袖英伟达
在很长一段时间里,人工智能所需的海量计算力都是由CPU来提供,而这一切随着GPU制造商英伟达提出的CUDA(Compute Unified Device Architecture,通用计算架构)宣告终结。尽管可能一些人会好奇为何GPU会取代CPU成为目前人工智能市场的主角,但如果了解GPU的工作原理相信就会明白原因。GPU的主要任务就是负责图像的计算。而像渲染一个画面中因为各个区域之间没有关联,因此可被拆解成若干个独立的任务同时进行并行计算。
尽管GPU在并行计算能力上远胜传统CPU,但如果没有合适的开发工具和平台也依然是白搭。就像小说里常见的一个大侠横空出世开辟了另一个时代一样,英伟达敏锐的发现了GPU在高性能计算领域的巨大商用价值,并快速推出了从编译器、分析器、开发手册、函数库等完整一套工具包,使得GPU在不到10年时间内就成为了高性能计算市场的主角,并在云计算时代成为各家云计算厂商所使用的服务器中不可或缺的一部分。
可以这么说,如果没有GPU的加入就没有现在的人工智能。由于人工智能神经网络其实就是一种并行计算,因此英伟达在人工智能时代不断推出大量针对人工智能需求的新品。就像在4月举办的GPU大会上发布的使用Volta架构的Tesla V100,号称史上最强的GPU加速器。由于应用场景剑指人工智能,因此英伟达重新设计了SM(Streaming Multi-Processor,流式多处理器),让能效相比上一代架构提升了50%。在同样的功率范围内可以大幅提升 FP32(单精度浮点)和 FP64(双精度浮点)的运算性能。而专为深度学习设计的全新 Tensor Core (张量核心,后文会解释张量)在模型训练场景中,最高可以达到 12 倍速的 TFLOP(每秒万亿次浮点运算),更为可怕的是,由于搭载了640个Tensor Cores,Tesla成为了世界上第一款突破100 TFLOPS算力大关的深度学习GPU产品。
也许是因为自身在GPU市场的优势地位,也许是认定GPU将是未来人工智能的基石,也许是看到了云计算的广阔前景,英伟达决定自己也去干一票云计算--推出了NGC(Nvidia GPU Cloud,英伟达GPU云)。
在深度学习中有两个挑战,一个是需要把所需软件,包括优化后的深度学习框架、库、操作系统和驱动程序等装入一个堆栈之中,二是利用最新的GPU计算资源来训练神经网络。因此NGC的目标很清楚,就是为了解决目前很多中小型创业公司或个人开发者在为深度学习创建和配置开发环境时遇到的重重困难。只需下载英伟达优化整理好的的深度学习开发工具包,短短几分钟就可以设置好本地的开发环境,而云端后台充沛的GPU将保证开发者所需的计算能力。NGC让开发者不论是在搭载消费级显卡的个人电脑,还是企业级的GPU服务器DGX系统或是云端,都可以运行NGC软件堆栈并与云进行同步。可以说NGC将帮助英伟达在细分人工智能云计算市场中切下一块不小的蛋糕。
人工智能革命者谷歌
了解完IBM与英伟达的动作后,再来看看谷歌。今年半导体行业最热门的话题莫过于谷歌在4月发表的TPU论文,揭开了AlphaGo所用大杀器的神秘面纱。TPU全称:Tensor Processing Unit,中文译名张量处理单元。相信大部分人看到张量这两个字的第一反应就是这到底什么鬼。张量是指一个量在不同的参考体系下按照某种特定的法则进行变换就是张量。估计看完这个解释的你一定是一脸懵逼,笔者用不太OK的高数基础勉强再解释一下,比如矢量就是一阶张量,矩阵算是二阶张量。总之只要记住张量是一种特别复杂的量而这个量会广泛应用在人工智能的算法中就可以了。
既然TPU是专门为处理张量而生的,那么自然同常见的CPU/GPU/FPGA(Field-Programmable Gate Array,现场可编程列阵)有所不同。TPU属于ASIC(Application Specific Integrated Circuit,专用集成电路)架构和 DSP(Digital Signal Processing,数字信号处理)一样一般是针对特殊需求,因此可以在优化层面上做到极致,这也是其与GPU的最大区别。英伟达的CUDA尽管非常适合人工智能,但是既然叫通用计算,实际上其还有别的计算用途。TPU则不同,除了人工智能以外它什么也干不了。
TPU的诞生掀起了一场GPU vs TPU的舆论大战。由于此前发布TPU论文中,谷歌提到TPU时目前常见的CPU/GPU AI架构的15~30倍性能让英伟达老大黄仁勋亲自撰文摆数据怼了回去,由于文章中对标的CPU和GPU都是几年前的老产品,因此笔者认为这种对比确实缺乏信服力。但不可否认的是,谷歌自研的TPU必将成为未来AI芯片的一个新方向。
同IBM和英伟达都推出了AI云服务一样,既然TPU这么彪悍,那么自然也得第一时间上云啊,于是乎在I/O大会上谷歌正式宣布了全新的云服务Cloud TPU。部署在GCE(Google Compute Engine,谷歌云计算服务)上的Cloud TPU可以与英特尔Skylake CPU,NVIDIA GPU以及所有其他基础设施和服务相结合,以构建和优化一个完美的机器学习系统,从而满足开发者的需求。可以说Cloud TPU的诞生让AI云计算市场风起云涌,一场大戏即将上演。