NVIDIA在GeForce256芯片中增加了包括VertexShader以及PixelShader等可编程计算能力,并以GPU为相关绘图芯片产品定名,顾名思义,GPU是GraphicsProcessorUnit,不像前代RIVA架构只能单纯进行绘图工作,GeForce256的推出可说是重新定义其绘图芯片产品,绘图变成是其芯片功能的一部份,可编程的算力才是未来让NVIDIA发光发热的核心。

图丨BillDally的简介

不过往后数年,虽然具备了程序设计能力,但实际上于计算领域有所发挥也是10年后的事情。这是因为当时NVIDIA借由成功的绘图架构取得市场领先,且和ATI的市场大战正火热,流处理计算还没有很好的应用之故,NVIDIA也没有意会GPU的算力未来会有如此庞大的潜力。2004年,由BillDally带领的斯坦福大学团队针对GPU的可编程部分设计了许多流处理技术的计算架构,这些研究成果后来成为CUDA的基础。

后来NVIDIA也以相关研究为基础,推出通用并行计算架构CUDA,以及针对计算应用的Tesla产品线。BillDally对此可说是背后的重要推手之一。

在2009年,BillDally加入NVIDIA后,NVIDIA在GPU计算的脚步更是飞快发展。

图丨BillDally在EmTechChina上的演讲

GPU从原本在各大学中单纯用来进行基础科学研究的辅助角色,迅速成为各大超算、数据中心的计算核心,每年全球前五百大超算榜单之中采用NVIDA计算方案的几乎都名列前茅。而配合CUDA生态的成熟,更从2016年大热的AI议题中,带起了机器学习与深度学习的应用热潮。

但是GPU在面对如此庞大的计算市场,以及此起彼落的挑战者,是否还能维持荣景?BillDally为深科技读者带来独家的观点。

DT君:您可以简单介绍目前NVIDIA的主力产品线吗?

BillDally:我们实际上有四个方向同时进行,有四条产品线。其中包含了GeForce、Quadro、Tesla以及Tegra。分别针对消费性图形计算、专业图形计算、专业高效能计算、以及嵌入式计算平台,基本上都是以GPU为共通的架构基础,但针对不同应用进行微调,使之更适合不同的应用情境。

DT君:针对Volta针对AI计算所做出的架构变革,比如说增加了TensorCore,这会改变GPU的定位吗?

图丨TesorCore架构

BillDally:TensorCore是个营销代号,其架构的真相就是增加一些相对应的指令集,借由这些指令,让GPU可做半精度(Half-precision)的矩阵乘积累积,而这是许多深度学习算法所使用的的内部循环基础逻辑。而且它实际上并没有改变GPU的基本概念。Volta仍然是一个货真价实的GPU,它在渲染图形方面的性能表现仍是一流水平,加入TensorCore并没有牺牲GPU本身的任何特性,反而是创造了双赢。现在Volta可以更好的针对深度学习应用,同时也能发挥百之百的绘图性能表现。

其实很多都是关于数据类型的选择和指令的选择。GPU架构实际上是一个框架,你可以在其中放入不同的数据类型和不同的指令来完成不同的应用程序。比如说,开普勒架构对推理工作不能很好的支持,它也不具备半精度浮点计算能力。

当初数据型态的支持是深度学习的关键,而开普勒会使用FP32,导致计算成本非常昂贵。从Pascal我们开始支持推理计算以及FP16数据训练计算能力,但你不会说Pascal因此就不是GPU了。Volta加入TensorCore也是类似的情形。

Volta仍然是GPU,可以做图形计算。我认为GPU是非常高效的并行计算架构。而我们并没有牺牲任何其他的事情来做到这一点。

图丨英伟达Volta

DT君:所以我们仍然可以期待TensorCore可以在图形任务中发挥功能吗?

DT君:您如何看待在深度学习领域的挑战者,比如说FPGA?

BillDally:我不是很担心FPGA。如果你想解决某个问题,并且你愿意投入大量的工程时间,那么干脆直接开发ASIC就好了。我是这么看FPGA的,如果你在ASIC上设计了一个门,那么把同一个门放在一个FPGA上,占用的芯片面积和功耗都会是相差很多。

所以对于实际上你必须用随机门工作的东西,FPGA比ASIC要明显更弱。FPGA只能在FPGA中使用大量硬件模块的问题上做得很好。所以,如果你已经硬连接一些FPGA有18个beta算术单元来进行DSP操作,其他的有14个点单元。

当你不得不使用FPGA上的栅极时,它的表现会变得差强人意。也因此我们不认为它们是非常有竞争力的。

图丨TeslaV100

DT君:若FPGA并不是个值得担忧的对手。那么您会担心什么?

如果我们以三个细分类别的方式细分深度学习的话,分别是训练、推理和IoT设备的推理。

对于训练,我们一直在做的是专注于深度学习的GPU。所以如果你光是单纯为了深度学习而建立一个芯片,那应用可能会过于狭窄,无法兼顾到其他可能的应用。而在我们的架构中,由于HMMA的操作,Volta架构所集成的TensorCore可以做到很庞大的数学计算,它只需要一条指令即可完成128个浮点计算步骤,可以兼顾更多应用。

我们确实有一些对深度学习帮助不是那么大的额外的芯片区块,比如说针对图形绘制工作的光栅化(rasterization)和纹理映射和合成(texturemappingandcompositing)部分,但是这个部分并不大,若是构建一个专用芯片,他们的确可以摆脱一小部分芯片上的非计算必要区块,理论上芯片成本会更有优势。

虽然我们也可以这样做,只是没有任何商业意义,我们的想法是,最好是做一个芯片,并能够做很多事情。不论是绘图或者是用在数据中心,我们想要使用该芯片来尽量做到更多的事情。

图丨正在参加EmTech圆桌的BillDally

DT君:Emtech大会上量子计算成为另一个热点,那您怎么看这件事?NVIDIA有计划进行相关领域的开发计划吗?

BillDally:我们成立了一个研究小组,研究量子计算的进展观察。从科学的角度来看,这是一个很有意思的领域。

近来人们已经取得了很大的进步,现在人们已经超过了50量子比特,并且维持量子态的时间可以做到更长。但是,对于一个可行的商业应用程序来说,仍然有数量级的需求。量子优势在于,在量子计算机上运行的算法,没有办法在传统计算机上以相同的性能运行。

所以算法的过程就是模拟量子计算机。但那并不重要。人们关心的是能够运行模拟量子化学这样的算法,或者运行诸如将复合数字分解成两个部落的算法来破解编码。这两者所需的量子比特都是数千以上。所以我们离这个问题还有很远的距离。

DT君:目前NVIDIA正积极打造自动驾驶平台,但汽车对功耗的控制其实相当重视,业界也都提出不少竞争产品,您怎么看现有的方案?

BillDally:我们实际上提供的不仅仅是架构,也同时为自动驾驶汽车提供完整的解决方案。比如说基于Xavier架构的DrivePX。这是最有效的计算平台,我的意思是,其30TeraOps的深度学习性能仅需要10瓦左右的功耗,所以每瓦计算能力超过3Teraflops。而DLA中的部分是每瓦特超过4Teraflops。所以这是一个效率非常高的平台。

最重要的是,作为DrivePX系统的一部分,我们有一个完整的软件平台,包括用于感知的神经网络,相机和激光雷达以及雷达,然后是用于路径规划和控制的软件车辆。

我们自己测试车队的自动驾驶汽车已经完全运行NVIDIA软件。我们也向汽车厂商提供该硬件和该软件。我们在车里也有一个以前叫做Co-Pilot的软件,现在重新命名为DriveIX,它的主要功能就是监视着司机,它有眼睛跟踪和头部跟踪,它要是看到司机心不在焉,或过度劳累就可要求汽车做出适度警示。它有手势识别,所以你可以用手势来控制汽车。我们同时也为汽车制造商提供完整的自动驾驶解决方案。我认为这是业界目前能获得最具竞争力的解决方案。

DT君:您看来不是很担心来自业界的竞争?

BillDally:我总是担心我们的竞争对手。但是我们的理念是向前看,而不是频频回头,所以我们是领先的,我们想要做的就是弄清楚我们如何能够尽可能高效地运行,不论是市场策略或产品架构。