可编程逻辑
NVIDIA 在 GeForce 256 芯片中增加了包括 Vertex Shader 以及 Pixel Shader 等可编程计算能力,并以 GPU 为相关绘图芯片产品定名,顾名思义,GPU 是 Graphics Processor Unit,不像前代 RIVA 架构只能单纯进行绘图工作,GeForce256 的推出可说是重新定义其绘图芯片产品,绘图变成是其芯片功能的一部份,可编程的算力才是未来让 NVIDIA 发光发热的核心。
不过往后数年,虽然具备了程序设计能力,但实际上于计算领域有所发挥也是 10 年后的事情。这是因为当时 NVIDIA 借由成功的绘图架构取得市场领先,且和 ATI 的市场大战正火热,流处理计算还没有很好的应用之故,NVIDIA 也没有意会 GPU 的算力未来会有如此庞大的潜力。2004 年,由 Bill Dally 带领的斯坦福大学团队针对 GPU 的可编程部分设计了许多流处理技术的计算架构,这些研究成果后来成为 CUDA 的基础。
后来 NVIDIA 也以相关研究为基础,推出通用并行计算架构 CUDA,以及针对计算应用的 Tesla 产品线。Bill Dally 对此可说是背后的重要推手之一。在 2009 年,Bill Dally 加入 NVIDIA 后,NVIDIA 在 GPU 计算的脚步更是飞快发展。
GPU 从原本在各大学中单纯用来进行基础科学研究的辅助角色,迅速成为各大超算、数据中心的计算核心,每年全球前五百大超算榜单之中采用 NVIDA 计算方案的几乎都名列前茅。而配合 CUDA 生态的成熟,更从 2016 年大热的AI 议题中,带起了机器学习与深度学习的应用热潮。
TensorCore 是个营销代号,其架构的真相就是增加一些相对应的指令集,借由这些指令,让 GPU 可做半精度 (Half- precision) 的矩阵乘积累积,而这是许多深度学习算法所使用的的内部循环基础逻辑。而且它实际上并没有改变 GPU 的基本概念。Volta 仍然是一个货真价实的 GPU,它在渲染图形方面的性能表现仍是一流水平,加入 TensorCore 并没有牺牲 GPU 本身的任何特性,反而是创造了双赢。现在 Volta 可以更好的针对深度学习应用,同时也能发挥百之百的绘图性能表现。
其实很多都是关于数据类型的选择和指令的选择。GPU 架构实际上是一个框架,你可以在其中放入不同的数据类型和不同的指令来完成不同的应用程序。比如说,开普勒架构对推理工作不能很好的支持,它也不具备半精度浮点计算能力。
当初数据型态的支持是深度学习的关键,而开普勒会使用 FP32,导致计算成本非常昂贵。从Pascal 我们开始支持推理计算以及 FP16 数据训练计算能力,但你不会说 Pascal 因此就不是GPU 了。Volta 加入 TensorCore 也是类似的情形。Volta 仍然是 GPU,可以做图形计算。我认为GPU 是非常高效的并行计算架构。而我们并没有牺牲任何其他的事情来做到这一点。
深度学习和图形学之间有很大的协同作用,我们的发现是,通过深度学习,我们可以使图形更好。然后进行视频研究,开发图像抗锯齿和去噪的新算法,并提供图像的时间稳定性,这些都是基于深度学习。因此,通过拥有深厚的学习推理能力,芯片现在实际上在图形表现方面会比没有 TensorCore 更好。
所以对于实际上你必须用随机门工作的东西,FPGA 比 ASIC 要明显更弱。FPGA 只能在 FPGA中使用大量硬件模块的问题上做得很好。所以,如果你已经硬连接一些 FPGA 有 18 个 beta 算术单元来进行 DSP 操作,其他的有 14 个点单元。
当你不得不使用 FPGA 上的栅极时,它的表现会变得差强人意。也因此我们不认为它们是非常有竞争力的。有很多创业公司正在建立专门的深度学习芯片,我们当然也很关注这些发展。但是我的哲学总是“我们应该做我们认为可以做到最好的工作”,而他们的选择基本限制了他们的发展空间,以致于不能做得更好,因为我们正在尽力做到最好。
如果我们以三个细分类别的方式细分深度学习的话,分别是训练、推理和 IoT 设备的推理。对于训练,我们一直在做的是专注于深度学习的 GPU。所以如果你光是单纯为了深度学习而建立一个芯片,那应用可能会过于狭窄,无法兼顾到其他可能的应用。而在我们的架构中,由于 HMMA 的操作,Volta 架构所集成的 TensorCore 可以做到很庞大的数学计算,它只需要一条指令即可完成 128 个浮点计算步骤,可以兼顾更多应用。
我们确实有一些对深度学习帮助不是那么大的额外的芯片区块,比如说针对图形绘制工作的光栅化 (rasterization) 和纹理映射和合成 (texture mapping and compositing) 部分,但是这个部分并不大,若是构建一个专用芯片,他们的确可以摆脱一小部分芯片上的非计算必要区块,理论上芯片成本会更有优势。
虽然我们也可以这样做,只是没有任何商业意义,我们的想法是,最好是做一个芯片,并能够做很多事情。不论是绘图或者是用在数据中心,我们想要使用该芯片来尽量做到更多的事情。
近来人们已经取得了很大的进步,现在人们已经超过了 50 量子比特,并且维持量子态的时间可以做到更长。但是,对于一个可行的商业应用程序来说,仍然有数量级的需求。量子优势在于,在量子计算机上运行的算法,没有办法在传统计算机上以相同的性能运行。
所以算法的过程就是模拟量子计算机。但那并不重要。人们关心的是能够运行模拟量子化学这样的算法,或者运行诸如将复合数字分解成两个部落的算法来破解编码。这两者所需的量子比特都是数千以上。所以我们离这个问题还有很远的距离。
虽然我们认为量子计算还没有到实用的地步,但我们仍非常仔细地关注相关技术的发展脚步,藉此避免发生我们无法掌握的变化。最重要的是,作为 Drive PX 系统的一部分,我们有一个完整的软件平台,包括用于感知的神经网络,相机和激光雷达以及雷达,然后是用于路径规划和控制的软件车辆。
我们自己测试车队的自动驾驶汽车已经完全运行 NVIDIA 软件。我们也向汽车厂商提供该硬件和该软件。我们在车里也有一个以前叫做 Co-Pilot 的软件,现在重新命名为 Drive IX,它的主要功能就是监视着司机,它有眼睛跟踪和头部跟踪,它要是看到司机心不在焉,或过度劳累就可要求汽车做出适度警示。它有手势识别,所以你可以用手势来控制汽车。我们同时也为汽车制造商提供完整的自动驾驶解决方案。我认为这是业界目前能获得最具竞争力的解决方案。
全部0条评论
快来发表一下你的评论吧 !