加入收藏 设为首页

分类中心

业务中心 北京pk10高手赌法 > 业务中心 > 用于执行“张量代数”的新系统提供更快的大数据分析

用于执行“张量代数”的新系统提供更快的大数据分析

发布时间:2018-05-15

em一个新的MIT计算机系统加快了涉及“稀疏张量”的计算,其中大部分由零组成的多维数据阵列。 / em

在计算机协会系统,程序设计,语言和应用:人类软件(SPLASH)会议上,麻省理工学院,法国替代能源和原子能委员会以及Adobe Research的研究人员最近提出了一个新系统,该系统能够自动生成优化的代码稀疏的数据。

我们生活在大数据时代,但大多数数据都是“稀疏”。想象一下,例如,一张庞大的表格将亚马逊的所有客户与其所有产品进行了映射,给定客户的每种产品的“1”购买和否则“0”。该表大多为零。

在稀疏数据的情况下,分析算法最终会进行大量的加法和乘法运算,这是浪费的计算。程序员通过编写自定义代码来避免零条目,但是该代码很复杂,并且通常只适用于狭窄范围的问题。

新代码比现有的非优化软件包提供了100倍的加速。它的性能与用于特定稀疏数据操作的精心手动优化代码的性能相当,同时在编程人员方面需要少得多的工作。

该系统称为Taco,用于张量代数编译器。在计算机科学方面,像亚马逊表这样的数据结构被称为“矩阵”,张量仅仅是矩阵的高维模拟。如果亚马逊表格还将客户和产品映射到亚马逊网站上的客户产品评级以及产品评论中使用的词语,则结果将是四维张量。

麻省理工学院电气工程与计算机科学教授Saman Amarasinghe说:“稀疏表示已经存在了60多年了,这是一篇新论文的资深作者。 “但是没有人知道如何自动生成代码。人们想出了一些非常具体的操作 - 稀疏矩阵 - 向量乘法,稀疏矩阵 - 向量乘加加一个向量,稀疏矩阵 - 矩阵乘法,稀疏矩阵 - 矩阵 - 矩阵乘法。我们做出的最大贡献是当矩阵稀疏时为任何张量代数表达式生成代码的能力。“

在论文中加入Amarasinghe是第一作者,EECS麻省理工学院研究生Fredrik Kjolstad; Stephen Eou也是EECS的研究生;法国替代能源和原子能委员会的David Lugato;和Adobe Research的Shoaib Kamil。

定制内核

近年来,张量的数学处理 - 张量代数 - 不仅对大数据分析而且对机器学习也至关重要。自爱因斯坦时代以来,它一直是科学研究的主要部分。

传统上,为了处理张量代数,数学软件已经将张量运算分解成它们的组成部分。因此,例如,如果一个计算需要两个张量相乘,然后加到第三个,那么软件将在前两个张量上运行标准张量乘法程序,存储结果,然后运行标准张量附加程序。

然而,在大数据时代,这种方法太耗时。为了在海量数据集上进行高效的操作,Kjolstad解释说,张量操作的每个序列都需要自己的“内核”或计算模板。

“如果你在一个内核中完成它,你可以一次完成所有的工作,并且可以让它变得更快,而不必将输出放到内存中,然后重新读取它,以便将其添加到其他内容中, “Kjolstad说。 “你可以在同一个循环中完成。”

计算机科学研究人员为机器学习和大数据分析中最常见的一些张量运算开发了内核,例如Amarasinghe列举的那些运算。但是可能的内核数量是无限的:例如,用于将三个张量相加的内核与用于将四个相加的内核不同,并且用于添加三个三维张量的内核与用于添加三个四维张量的内核不同,二维张量。

许多张量运算涉及将一个张量与一个张量相乘。如果任一条目为零,其产品也是零,并且操纵大型稀疏矩阵的程序会浪费大量时间来添加和乘以零。

针对稀疏张量的手动优化代码可识别零条目并简化涉及它们的操作 - 既可以进一步传送非零条目,也可以完全省略乘法运算。这使得张量操作更快,但它需要程序员做更多的工作。

用于将两个矩阵相乘的代码 - 仅具有两个维度的简单类型的张量(例如表格) - 例如,如果矩阵已满(即没有任何条目可以省略),则可能需要12行。但是如果矩阵很稀疏,相同的操作可能需要100行或更多的代码才能跟踪遗漏和错误。

输入炸玉米饼

Taco自动添加所有额外的代码。程序员只需指定张量的大小,无论是完整还是稀疏,以及应该从中导入其值的文件的位置。对于在两个张量上进行的任何给定操作,塔可建立一个分层图,首先表明来自两张张量的配对条目是非零的,然后,每个张量中的哪些条目与零配对。它只是丢弃所有的零对。

Taco也使用有效的索引方案来存储稀疏张量的非零值。包含零条目的公开发布的张量来自亚马逊,它将客户ID号与购买评论以及从评论中剔除的描述性条目进行映射,占用了107艾字节的数据,或者大约是所有Google服务器的估计存储容量的10倍。但使用Taco压缩方案,它只需要13千兆字节 - 足够小以适应智能手机。

“过去二十年来,许多研究小组都试图解决稀疏矩阵计算的编译器优化和代码生成问题,但几乎没有取得什么进展,”俄亥俄州立大学计算机科学与工程教授Saday Sadayappan说,没有参与这项研究。 “弗雷德和萨曼最近的发展是对这个长期悬而未决的问题的根本性突破。”

“他们的编译器现在使应用程序开发人员能够以非常简单方便的高级表示法指定非常复杂的稀疏矩阵或张量计算,编译器自动生成非常高效的代码,”他继续说道。 “对于几个稀疏的计算,编译器生成的代码已经显示出可比得上或比精心开发的手动实现更好。这有可能成为真正的改变游戏规则。这是编译器优化领域最近最令人兴奋的进步之一。“

PDF文件副本:张量代数编译器

资料来源:麻省理工学院新闻节目Larry Hardesty

更多
上一篇:JunoCam木星的脸部图像 下一篇:5月11日检查医疗专栏