欢迎光临
中国顶尖人工智能与机器人行业新媒体平台

MIMD GPU用于可扩展图形分析:下一代计算机硬件革命?

MIMD GPU用于可扩展图形分析:下一代计算机硬件革命?

人类的大脑是一个大规模并行处理器 – 其1000多亿个神经元中的每一个都在处理数据,并在适当的时候进行响应。相比之下,今天的默认计算机架构是高度串行的 – 我们的处理器大体上一次操作一步。对于今天的计算机处理器来说,某些类型的对脑细胞运行缓慢的操作是非常快的,这使得我们的计算机尽管有串行体系结构,却能做很多惊人的事情。

但某些类型的处理似乎要求并行计算。图形是其中之一,这就是为什么专门的图形处理单元(GPU)近年来变得普遍,包含旨在快速3D计算机图形的聚焦并行处理。人工智能(AI)是另一个,这就是为什么AI研究人员反复玩弄实验大规模并行硬件 – 虽然没有GPU的显着的实际成功。目前绝大多数AI算法在适当的并行硬件(使用适当的算法调整)上更自然地工作,但在标准串行硬件上实际运行。针对图形定制的GPU可用于AI实现的某些方面,但是对于AI目的来说远不是理想的。

Nvidia的Tesla GPU – 图形专注的SIMD并行处理彻底和成功商品化。

作为一个AI研究员,我发现这种情况令人沮丧。我自己的AI架构实际上为了大规模并行性而哭泣,但由于没有合适的并行硬件存在,我运行他们在同一标准的Linux机器上的其他人。我发现自己不时地思考如何可能改变计算机硬件场景,以这种方式导致并行硬件的流行适合于那种AI相关的工作,我做。因此,本文中,我预测一个特定类别的高价值实际应用程序(图形分析)可能导致商品化的特定类型的并行硬件(分布式存储器MIMD),我认为最有用的路径高级AI。

平行度的种类

一种有限的并行性,多核计算,最近已经获得了很多的蒸汽;双核和四核笔记本电脑和PC是现在的标准,领先的芯片制造商正在积极规划未来的芯片与几十或几百核心。然而,随着移动超过几十个核心,当前流行的多核方法满足各种技术挑战。作为响应,芯片制造商已经提出了各种“片上网络”设计。

这里的另一个挑战是,虽然图形和AI是用于多核计算的天然的,但是许多其他实际的计算问题难以以利用当前计算机科学知识充分利用多核或其他并行硬件的方式来实现。随着硬件越来越平行,计算机科学理论和软件设计必须努力跟上。并行计算的历史充满了美妙的硬件的例子,最终大部分未开发的,因为编写有效的软件的困难。索尼的PlayStation 3(PS3)是最近的例子。很少有人为PS3编写的流行游戏充分利用了创新的IBM Cell处理器,以及其新颖的八处理器架构。

并行处理理论的一个重要区别在于SIMD(单指令,多数据流)和MIMD(多指令,多数据流)结构之间。今天的GPU是SIMD,这意味着它们一次应用一个计算操作,但是它们可以同时应用于多个数据。这对于图形是很好的,其中人们经常希望在视觉场景的所有不同部分上执行相同的操作。另一方面,Danny Hillis公司Thinking Machines在20世纪90年代建立的连接机CM5并行架构是MIMD。每个连接机器的处理器可以做不同的事情,所有操作在同一时间和彼此之间交换信息。

更重要的是,更好的区别在于共享存储器和分布式存储器MIMD架构之间。在分布式存储器MIMD架构中,每个处理器具有其自己的本地存储器,其他处理器不能直接访问。如果想要有效地扩展到大量的处理器,这种方法似乎是必要的,这是CM5的方法。 PS3的Cell处理器在这个方向上移动,为其八个处理器中的每一个具有单独的RAM存储器单元,但是当前的多核芯片是共享存储器。

一些AI方法可以很好地利用SIMD并行硬件,如GPU。大多数神经网络结构适合这一类别 – 它们涉及大量的神经元,所有神经元都根据相同的基本方程操作:单次操作(神经触发和适应),多个数据流(多个神经元)。另一方面,许多AI方法需要MIMD,因为它们的基础设施更加异构,并且需要不同的存储器项以同时经历不同类型的进程。并且考虑到真实世界AI系统所需的并行性的规模,他们所需要的更具体地是分布式存储器MIMD。

有绕过SIMD / MIMD区别的聪明的解决方法和在SIMD GPU上实现MIMD操作的技术(参见http://gpucomputing.net/?q=node/2446)。但是虽然这是一个有前途的方向,对于真正密集的应用程序自然匹配分布式内存MIMD模型,它带来了巨大的性能命中。此外,GPU制造商正在逐渐将越来越多的MIMD想法纳入其设计中,但是以相当有限和专门的方式,再也不是使自然的分布式存储器MIMD的算法的生活容易。

我自己的AI工作目前使用SIMD GPU卡的操作像感官数据处理,但将需要MIMD完全并行化,所以我长期以来对MIMD硬件的兴趣。我喜欢在90年代编程CM5,但是这种硬件很久以前因为经济原因停止,旧的连接机器现在是恐龙;成千上万的20世纪90年代的处理器网络连接在一起并不适合单个中档现代服务器。我们需要加速AI进步是分布式内存MIMD硬件利用计算机硬件的所有伟大的进步,已经通过遵循在过去几十年的串行范式。

图分析:MIMD的杀手应用程序?

但是,实际上,什么是可能会产生新一波分布式存储器MIMD硬件的力量呢?

用于分布式存储器MIMD硬件的通用编程对于程序员来说很难包装他们的大脑,我不认为这个问题很快就会消失。而软件世界往往使事情更容易和更容易为程序员,使人们可以越来越少的计算机科学知识开始编程职业 – 一个趋势,似乎很难扭转。所以我有点怀疑通用MIMD硬件将在不久的将来起飞。我怀疑这将等待,直到我们有相当高级的编程能力的AI,可以处理算法和数据结构的适应新的硬件架构比人类更好。

但如果不是通用的MIMD,那么什么专门领域可能驱动分布式内存MIMD开发?图形驱动SIMD开发,最终有益于许多应用程序,除了像科学计算和AI的各个方面,如视觉处理。但是图形似乎没有迫切需要分布式存储器MIMD并行性。

AI怎么样? AI将受益于MIMD硬件,但AI还不是一个巨大的业务,它会激励芯片制造商走上这样一个昂贵的新方向。

我最好的猜测是什么将驱动专门的分布式存储器MIMD并行硬件的开发,类似于SIMD GPU,是图形分析。在本上下文中,“图”是指具有在它们之间的链接的节点的集合(不是坐标图)。这是消费者不太了解的东西。然而,他们依靠它发生在服务器端为他们每天使用的Web服务的交付。图表是计算机软件内部使用的工具,用于表示大量的实体,这些实体以复杂的方式彼此相关。如果关系在本质上是严格分级的,那么可以使用称为“树”的专用图,但是大多数时候,现实世界相关性比这更复杂,并且一个具有一般的,纠结的图(或者甚至更复杂的野兽“超图”,其可以通过适当的数学简化为图形)。

如果你有技术背景,并渴望更多的细节,我所谓的“图分析”非常广泛的是询问查询基于图结构(“查找一个子图,看起来像这样;”“找到所有节点通过具有某些特性的长度K的路径从该特定节点可达到“),将图形转换成具有更方便结构的其他图形,从其他图形学习图形(这是非常一般的推理模型)以及启用动态图上的系统。

Google使用图表分析来回答搜索查询和展示广告。 Facebook使用它来提供基于您的社交网络的信息。政府机构使用它来研究他们收集的大量关于全球关注的事务的数据。金融机构将来需要越来越多地使用它,以便根据日益相互关联的世界做出决定。生物医学科学家将需要越来越多地使用它来发现和分析复杂生物网络背景下的治疗。

本文中显示的示例图形图表示图形表示和分析的适用性范围的一小部分,但未能指示真实世界图形的规模和复杂性。这是因为这些方面对于人类的眼睛和未经训练的人类思想来说是不可理解的。图形可视化是一个强大的工具,但它仅限于小图形的详细可视化和大图形的粗略可视化。图形分析和搜索软件可以做得更好,可以详细分析大图形,但这需要大量的计算火力以及复杂的算法。大量生产,经济的MIMD硬件可以帮助很多在这里。

图形分析自然地与分布式存储器MIMD并行性匹配,因为许多时候人们希望图形的每个节点能够根据其包含的特定数据做不同的事情。在全开的MIMD方法中,每个图形节点可以得到它自己的处理器和存储器以按照其希望使用。对于每个处理器/存储器单元来说,处理一组互连图形节点的替代方案几乎同样好。这在图形操作过程需要处理一组紧密连接的节点在一起的(通常)情况下特别有效。这里涉及了很多算法细节,其细节不仅依赖于图算法,而且还依赖于硬件模型的细节。但这是一个相当受限的问题,我们已经有大量的理论有助于解决它。

如果有人要构建一个图形处理单元(一种不同类型的GPU,这次是MIMD而不是SIMD并行),它将在服务器端,商业,政府和研究的几乎所有领域中找到大量的用途。图形是一种灵活和方便的表示几乎任何种类的数据和计算机科学已经开发了丰富的算法池,以不同的方式搜索和操纵它们。此外,在关于并行化各种图算法的方法的学术研究文献中已经有很多知识。这是一个比MIMD并行化算法更小和更好理解的问题。当然,许多数学和实际问题仍然在有效地实现商业MIMD处理器的图算法的全面范围,但这是一个易于研究的领域,计算机科学界知道如何攻击。

毫无疑问,每个高级AI架构都不能用“图分析”来表达,即使在这里我已经解释过。当然,我有点偏差的事实,我自己的AI方法是非常自然地框架在这种方式。但我有一个强烈的怀疑,正如与图形无关的各种科学计算问题已经在当前的GPU上有效地实现,类似地,大量的AI算法和方法将受益于为图形分析定制的分布式存储器MIMD GPU。

对于受众中的程序员,值得注意的是,通过创建可以通过脚本语言调用的图形操作“库函数”,可以主要通过普通程序员隐藏毛茸茸的MIMD并行算法巫术。最近在我们的OpenCog AI项目中,我们不得不使我们的一些代码使用多线程,以便更好地利用多核架构;它令人惊讶地很简单,因为代码使用C ++标准模板库(STL)进行大多数数据操作,而其他人已经编写了我们使用的STL功能的多线程版本。可以对MIMD并行GPU进行类似的事情。例如,并行图算法可以包装在Boost图形库中,通常由C ++程序员用于图形操作。 (对不起,所有的科技讲话的编码器!)

预测加上主动方法

我要做一个预测:我认为有人会介绍专门的分布式存储器MIMD硬件用于大规模图形操作,可能在未来十年或两个时间。我也是积极主动,试图微调一点点,希望通过明确地提出的想法,我可能会发挥一个小的作用,使其发生更快,而不是更晚。

我可以使用MIMD GPU为我的AI工作,世界可以使用它的主机的目的。来吧,硬件制造商 – 让我们动!

赞(0) 关注公众号

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

公众号也精彩

微信扫一扫打赏