何谓迄今最复杂的处理器芯片——IPU处理器?
2019-07-02
总部位于英国布里斯托的Graphcore公司日前推出了一款称为智能处理单元(IPU)的新型AI加速处理器。该公司于2016年启动风险投资计划,并在2018年12月的最后一轮融资中募集了2亿美元。基于其17亿美元的公司估值,Graphcore已成为西方半导体界的唯一“独角兽”。它的投资者们包括戴尔、博世、宝马、微软和三星。
近日,Graphcore首席执行官Nigel Toon在接受EETimes采访时介绍了其公司愿景、AI加速器市场以及AI的未来。
Graphcore的IPU芯片已经在生产、发货并产生收入,目前正与极少数早期客户合作。
Graphcore目前的主要产品是一款可插入服务器的双宽、全高300 W PCI Express卡。卡顶部的连接器可以实现卡间互连。每张Graphcore C2卡都配有两个Colossus IPU处理器芯片。芯片本身,即IPU处理器,是迄今为止最复杂的处理器芯片:它在一个16纳米芯片上有几乎240亿个晶体管,每个芯片提供125 teraFLOPS运算能力。一个标准4U机箱中可以插入8张卡,卡间通过IPU链路互连。8张卡上的IPU可以作为一个处理器元件工作,提供两个petaFLOPS的运算能力。与芯片在CPU和GPU中的存在形式不同,它为机器智能提供了更高效的处理平台。这个产品将用于云计算服务器,也极有可能用于自动驾驶汽车。
Graphcore如何应对运行深度学习软件堆栈的挑战?
在过去的三四年中出现的深度学习标准框架(如TensorFlow和PyTorch)与图形描述符(如ONNX)一样,可以在其中一些框架之间进行数据交换。开发人员可以根据框架快速设计神经网络,但这些设计基本上是图形框架,也就是说,它们描述了操作符和图形内部元素之间连接的数学图形。
而Graphcore从这些高级框架中获取输出并将其输入到我们称之为Poplar的软件层,Poplar作为我们的映射和编译工具,它采用高级框架图形并将它们映射成为在IPU处理器上运行的完整计算图形。每个IPU处理器都有1200个独立的专用内核,以及机器学习所需的所有控制操作和超越函数。每个IPU内核可运行多达六个程序线程。因此,如果您有16个处理器,那么在一个4U机箱中可以运行超过100,000个独立的并行程序。
正是这种并行处理能力实现了快速训练模型并进行实时操控,这也使的Graphcore能够在自然语言处理以及在理解自动驾驶视频方面取得重大进展。因此,强大的并行处理能力非常重要。
有了Graphcore的IPU,一个完整的机器学习模型可以在处理器内部生成。而且IPU处理器具有数百兆字节的RAM,可在处理器上以超过1.6 GHz的速率全速运行,因为其中的延迟已被线程隐藏。具有高带宽内存(HBM)等技术的GPU可以提供每秒900 GB的内存带宽,而Graphcore的单个IPU处理器提供大约45 TB内存带宽,因此,Graphcore可以更快地操纵模型。一个4U机箱中有16个IPU,它将使你拥有无可比拟的内存带宽,其上运行了成千上万的线程,而且是同时运行,而这也是Graphcore得以加速机器智能工作的部分原因。
Graphcore IPU与领先的GPU性能相比如何?
Graphcore IPU的性能与市场上领先的GPU相比如何?这取决于它完成的任务。如果用于静态图像分类的前馈卷积神经网络,GPU已经可以做得很好,但IPU可以提供两到三倍的性能优势,有时甚至是五倍。
对于更复杂的模型,比如那些数据通过后再反馈以尝试理解上下文(例如,对话)的模型,由于数据被传递多次,所以需要非常高的速率。对于这样的应用,因为所有的模型都保存在Graphcore的处理器中,IPU可以比GPU快很多,可能快十倍、二十倍或者五十倍。
目前,Graphcore专注于与早期介入客户合作,帮助他们解决实际问题,但会回过头来做一些基准测试,并且将测试结果提交给MLPerf。
基准测试的问题在于它们的保守,它们通常专注于标准的卷积神经网络,而这个行业已经发生了很大的变化。尽管基准测试也是一种有用的相对衡量标准,但看到产品在实际应用中的真正性能也很重要。
在日新月异的发展速度之下,很难讲还有什么可比性。如果采用了标准框架,那么为了进行比较在不同的系统上进行尝试也非常容易。
Graphcore IPU芯片可以用于推理或培训。从架构的角度来看这对Graphcore非常重要,因为随着机器学习的发展,系统将能够从经验中学习。
推理性能的关键点包括:低延迟、适用于小型模型、小批量,以及可能会尝试引入稀疏性的训练模型。IPU可以有效地完成所有这些事情。在一个4U机箱中,16个IPU共同协作进行培训,每个IPU可以运行单独的推理任务,并由一个CPU上运行的虚拟机控制,最终得到的是一个可用于培训的硬件。因此,一旦模型被训练,就可以部署它,但随着模型的发展,开始想要从经验中学习时,就可以采用这个硬件来实现这个功能。
映射和编译工具Poplar与CUDA有何异同?
Graphcore的映射和编译工具Poplar虽然与CUDA处于同等地位,但它实际上是一种编程语言,而不是在较低级别描述图形的框架。
在Poplar中,可以描述一种新型的卷积函数或一种新型的递归神经网络层,然后将其作为高级框架中的库元素。Graphcore提供完整的所有高级操作符和库元素;同时还提供许多低级操作符,你可以简单地将之互连以创建新的库元素。或者,如果您想做一些完全创新的事情,那么可以使用Poplar C ++环境创建自己的东西。
Graphcore希望大家分享他们的创新,而其他人则乐于接受。如果仔细看一下Google的TPU或NVIDIA的GPU,你会发现很多库元素都是关闭的,它们是黑盒子,您无法看到它们是如何构建的。而Graphcore是开放的,人们可以修改它并扩展它。我们希望建立的是这样一个开放的社区。
相比谷歌、百度及FB等公司,Graphcore的竞争优势?
Graphcore正日益面临这个领域的一些强大对手,如谷歌、百度、Nvidia、英特尔以及数据中心巨头Facebook和阿里巴巴,据传他们也正在开发自己的芯片。Graphcore将会如何与这些公司竞争?如果数据中心公司开发自己的AI加速器,那这个市场的竞争还会存在吗?
Graphcore认为将会有三个主要市场。
首先是一个相当简单的小型加速器市场,通常应用于移动电话的IP内核,一些大型手机制造商已经在做这方面的工作。但Graphcore没有参与这个市场。ASIC设备很有市场前景。举例来说,一个拥有大量用户的具有非常特定工作量的公司,或许他们运营着一个庞大的社交网络,他们可以创建一个非常具体的功能并将其构建到一个芯片中,然后将其部署到数据中心以提高这一功能的效率。这类ASIC解决方案拥有巨大的市场,但是,Graphcore并没有参与。
Graphcore所做的是一个通用处理器,您可以通过编程以惊人的效率来做许多不同的事情。如果应用于云计算环境,这项技术可以非常轻松地解决问题,它功能多样,易于编程,提供极为有效的结果,Graphcore相信这是一项致胜的技术。
采用专用ASIC芯片的事实几乎已经证明了GPU的弱点。人们需要一种更高效、易于使用的为机器智能而设计的处理器,而这正是Graphcore所做的。Graphcore认为通用IPU有机会形成截至目前最大的细分市场。通过为上述所有问题提供更加高效的解决方案,相信可以引领该领域的行业标准。
如果只是针对基本的前馈卷积神经网络,GPU是一个非常好的解决方案,但随着网络变得越来越复杂,人们需要一个新的解决方案,这就是ASIC和FPGA产生的原因。我们接触过的所有创新者都说使用GPU正在阻碍他们创新。如果仔细看一下他们正在研究的模型类型,你会发现他们主要研究卷积神经网络的形式,因为递归神经网络和其他类型的结构,例如强化学习,并不能很好地映射到GPU。由于没有足够良好的硬件平台,研究领域受到限制,而这正是我们将IPU推向市场的原因。
Graphcore会面向企业市场吗?企业市场很有意思,尤其是在企业界有很多公司正在尝试进行真正的深度学习,Graphcore对这个市场深感兴趣并专注于此。问题是,Graphcore如何接触这类客户?他们遍布全球,并处于不同的垂直市场。对于初创公司而言,这是一个难以进入的市场。可以说Graphcore的策略比较狡猾,他们与戴尔建立了密切的关系。戴尔是Graphcore公司的投资者,通过与他们合作,Graphcore顺利地进入市场,并通过多种不同形式将我们的技术交付给客户,例如,Graphcore的产品可能是4U全能IPU服务器,也可能是内置单个IPU PCI卡的工作站。有很多不同的选择来抓住这个市场,而Graphcore得到并利用了这个机会。
Graphcore成为西方半导体界的唯一独角兽。拥有如此高的估值,对公司来说是好事,因为它是对公司业务的很好验证,让Graphcore可以筹集大量资金,他们现在拥有令人难以置信的快速增长的火力,对于一个新兴市场来说这很重要。这种快速增长在未来的两三年内都将持续,Graphcore将在这段时间极速奔跑以成为领先者。