比现有软件包快 100 倍 MIT 新型计算系统带来的编译优化

姓名:吴庆恺  学号:16020610024

转载自:http://www.cesdn.com/emb-linux/industry-news/201711/05-7736.html  有删节

【嵌牛导读】:张量计算从爱因斯坦时代起就是科学研究的重要内容。大数据时代,大数据和机器学习对稀疏张量(绝大多数元素为 0 的稀疏数组)的计算要求越来越高。

【嵌牛鼻子】:机器学习,一种浪费,特定稀疏数据,至关重要,压缩方案

【嵌牛提问】:对一些稀疏计算,编译器生成的代码已经和手动精心改进的一样好甚至更好。它有望成为真正的游戏规则改变者吗?

【嵌牛正文】:张量计算从爱因斯坦时代起就是科学研究的重要内容。大数据时代,大数据和机器学习对稀疏张量(绝大多数元素为 0 的稀疏数组)的计算要求越来越高。

近日,MIT 的一款新系统可以自动生成针对稀疏张量计算等操作的代码,比当前常用的软件包快 100 倍,被誉为“近年来在编译优化领域最令人激动的进步之一”。

我们生活在一个大数据的时代,但是绝大多数的数据都是“稀疏的”。想象一下,比如说,一个超大规模的表格,它存储着所有的亚马逊的顾客和所有商品的对应信息,如果一个顾客购买了某样商品,就存储一个“1”,否则为“0”。那么这个表格的绝大部分数据都会是 0。

面对这样稀疏的数据,分析算法最终要做大量有 0 参与的加法和乘法,这是对计算资源的一种浪费。

程序员可以通过编写特定的代码来躲开零实体来规避这样的问题,但是那样的代码是复杂的,而且只对非常有限的问题有效。

在 ACM 的 SPLASH(Systems, Programming, Languages and Applications: Software for Humanity)会议上,来自 MIT、法国的替代能源和原子能委员会和 Adobe Research 的研究者最近推出了一个新的系统,它可以自动产生针对稀疏数据的优化的代码。

这样的代码比现存的未优化的软件包快 100 倍。而且其性能可以与那些为特定稀疏数据操作而手动精心优化过的代码相媲美,却只需要程序编写者做极少的工作。

这个用于稀疏代数编译器的系统叫做 Taco。根据计算机科学界的说法,一个像上文提到的,亚马逊表格那样的数据结构称作矩阵,而一个张量仅仅是一个更高维的类似的东西。如果前面提到的亚马逊的表格也保存着客户、对应的商品、客户对商品的评级以及评论中使用到的词语,那么它将会是一个四维的张量。

“稀疏表示已经存在了超过 60 年”,MIT 电气工程与计算科学的教授,新论文的主要作者 Saman Amarasinghe 说道,“但是没有人知道如何为它们自动生成代码。人们想到一些非常具体的操作——稀疏矩阵与向量相乘,稀疏矩阵与向量相乘再加上一个向量,稀疏矩阵与稀疏矩阵相乘,稀疏矩阵与稀疏矩阵相乘再与稀疏矩阵相乘。我们所做的最大的贡献就是实现了,当矩阵是稀疏的时候,可以为任何张量代数表达式自动生成代码的能力。”

自定义核

近年来,对张量的数学操作——张量代数——对大数据分析和机器学习都变得至关重要。其实,从爱因斯坦时代起,它就成为科学研究中至关重要的部分。

在此之前,为了解决张量代数问题,数学软件已经将张量操作分解成它们的组成部分。比如说,如果一个计算需要将两个张量相乘然后再与第三个相加,软件将会在前两个张量上执行标准张量乘法操作,存储结果,然后执行标准张量相加操作。

然而,在大数据时代,这个方法太费时间了。Kjolstad 解释道,为了在数量庞大的数据集上执行高效的操作,张量的每个序列都需要它自己的“核”,或者说是计算模板。

“如果你在一个核中操作,你就能把所有操作一次完成,并且你可以让它执行的更快一点,而不需要先将结果保存到内存中然后再把它读回来以便和其他的东西相加”。Kjolstad 说,“你可以在一个循环中完成它。”

计算机科学的研究者已经研制出针对机器学习和大数据分析中常见张量操作的核,比如说上文中 Amarasinghe 列举的。但是这些可能需要的核的数量是无限的:比如说,将三个张量相加的核和将四个张量相加的核是不一样的。而将三个三维张量相加的核和将三个四维张量相加的核也是不一样的。

许多张量操作包括将来自一个张量的一个实体和来自另一个张量的一个实体相乘的操作。如果这两个实体都是 0,那么他们的结果也是 0。而操纵庞大而稀疏的矩阵的程序就会浪费大量的时间来对 0 进行加和乘操作。

为稀疏张量手动优化的代码识别出零实体并精简包含他们的操作——在加法中只关注非零的实体并完全省略零实体参与的乘法。这使得张量操作更快,但是需要程序编写者做大量的工作。

比如说,将两个矩阵相乘的代码,如果矩阵是稠密的(没有实体可以被省略)可能只有 12 行。但是如果矩阵是稀松的,相同的操作可能需要 100 行或者更多的代码来去处理应该被省略的部分。

引入 Taco

Taco 完全自动地添加额外的代码。编程者只需要指定张量的大小,是稀疏的还是稠密的,以及存储它的值的文件即可。对任何针对两个张量的操作,Taco 建立一个分层的映射地图指出,首先,两个张量哪一对相对的实体是非零的,其次,两个张量中哪个实体和零配对。而所有 0 与 0 的配对将被直接遗弃。

Taco 也使用一个高效的索引方案去存储稀疏张量的非零值。如果包含 0 值,一个亚马逊公开发布的,存储客户 ID、对应购买物品和从评论中提取的描述词语的张量,会占用 107 亿字节的数据,或者大说,约是估计出的的所有的谷歌服务器存储容量 10 倍。而使用 Taco 的压缩方案,它只占用 13 千兆字节,用一个智能手机就足够存储。

“在过去的二十年中,许多研究小组一直在尝试解决稀疏矩阵的编译优化和代码自动生成问题,但是收效甚微。”俄亥俄州立大学计算机科学和工程的教授 Saday Sadayappan 说道,“最近 Fred 和 Saman 取得的进展代表着在这一长期存在的问题上根本性的突破”,他并没有参与这项工作。

“他们的编译器通过自动生成高效的代码,现在已经可以让应用程序的开发者用非常简单,方便的高级符号来指定复杂的稀疏矩阵和张量计算”。他继续说道,“对一些稀疏计算,编译器生成的代码已经和手动精心改进的一样好甚至更好。它有望成为真正的游戏规则改变者,它是近年来在编译优化领域最令人激动的进步之一。”

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 158,560评论 4 361
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,104评论 1 291
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 108,297评论 0 243
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,869评论 0 204
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,275评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,563评论 1 216
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,833评论 2 312
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,543评论 0 197
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,245评论 1 241
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,512评论 2 244
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,011评论 1 258
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,359评论 2 253
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,006评论 3 235
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,062评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,825评论 0 194
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,590评论 2 273
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,501评论 2 268

推荐阅读更多精彩内容