3000+ 人AI盛宴现场,CCF-GAIR开发者专场培训,NVIDIA 深度学习学院现场授课深度学习,提供NVIDIA认证证书。文末有福利,一起来学习吧
AI科技评论按:MIT News最新报道,MIT CSAIL(麻省理工学院计算机科学与人工智能实验室)已经开发出了一个新系统Fractal,这个系统不仅能使并行程序运行起来更有效率,也使得编码更加容易。
现在,大多数台式电脑的芯片都会配置四核或者更多核的CPU,这种配置能保证计算机可以并行运行不同的计算任务。在未来,芯片里可能会有几十个甚至数百个核,如何利用并行性是一个艰巨的挑战。
MIT CSAIL 的研究人员已经开发出了一种新系统,这个系统不仅能使并行程序提升运行效率,也使编码更加简单。
以一组基准算法测试作为标准时,当采用相同的并行策略,在大多数情况下,这个新系统比目前系统的速度快十多倍,最大能达到目前系统的88倍。
将最大流问题的算法进行并行处理是非常困难的。经过几十年的研究,在256个并行处理器上,常见的最大流算法的并行计算最快也只能实现8倍的加速。而有了这个新系统,将能实现322倍的加速,并且代码长度是之前代码的三分之一。
这个新系统被称为“Fractal”,它是通过一个叫做预测执行(speculative execution)的并行策略来实现加速的。
“在传统的并行程序中,你需要将你的工作分成多个任务,” Daniel Sanchez表示。他是麻省理工学院电气工程和计算机科学助理教授,另外也是这篇新论文(Fractal: An Execution Model for Fine-Grain Nested Speculative Parallelism)的资深作者。“但因为这些任务是使用共享数据,所以需要引入一些同步机制来保证数据具有相关性。从90年代中期到2000年代末,许多人对投机架构(speculative architectures)进行了一波又一波的研究。这些研究系统能并行执行不同的数据块,一旦发现冲突,就会中止程序再重新执行。”"
在计算完成之前频繁中止程序并不是一个很有效的并行化策略。不过对于许多应用程序,中止计算的情况并不常见,这比在传统并行方案的同步任务中所需的检查和更新浪费的时间少得多。去年, Sanchez的小组报导了一个称为 Swarm 的系统,这个系统将投机并行扩展成一类重要的计算问题,涉及搜索数据结构,例如对图表的搜索。
不能简化的原子
然而,对投机架构的研究往往局限于原子性(atomicity)问题上。正如所有并行架构,投机架构要求程序员把程序分成多个任务,这样就能同时运行。但是在投机架构中,每个任务都是“原子级的(atomic)”,这意味着它必须作为整体来执行。通常,每个原子任务都有一个独立的处理单元,这样能更有效地独立运行。
原子级的任务通常有很多步骤。举个例子,在线预订机票的任务包含很多步,这些步骤都必须被看作不同的原子单元。如果要将两个任务当作同一个原子单元,那么这两个任务就无法被执行。例如,在这样的程序下,仅仅只是因为第一位顾客还没有完成支付,有可能座位就被分配给了另一位预订的顾客。
在投机执行中,大的原子级任务有两个地方效率比较低下。
第一是如果想中止任务,得花费大量的计算时间。中止小一点的任务花费的时间相对会少一点。
第二是大的原子级任务内部可能会有能并行运行的子程序,但是由于这些任务是在特定的处理单元独立运行,因此这些子程序只能被连续执行。这样一来,性能就得不到提升。
Fractal是由Sanchez与麻省理工学院的研究生Suvinay Subramanian、Mark Jeffrey、Maleen Abeydeera、Hyun Ryong Lee、Victor A. Ying,以及英伟达杰出的高级研究科学家Joel Emer共同研发的,这一系统解决了如上提到的两个问题。这些研究人员在这周的ISCA上向麻省理工学院电气工程和计算机科学部详述了它的原理。
有了Fractal,程序员在原子任务里只需在每个子程序里添加一行代码,就可以实现并行执行。程序的长度也只增加若干百分点。在以前,如果需要实现同步并行任务,程序长度得增加300—400个百分点。将电路嵌入分形芯片,就可以进行并行化处理了。
时间链
这个系统的关键是对电路的细微改进,这种改进在这些研究员的早期投机执行系统 Swarm 中已经实现了。
在Swarm中执行的每个任务都会分配一个时间戳,如果两个任务尝试访问相同的存储单元,时间戳晚一点的那个任务将会被中止,然后重新执行。
Fractal中的每个原子任务也会分配自己的时间戳。但如果原子任务里有并行子程序,子程序的时间戳里会包含这个任务的时间戳。另外,如果子程序里还有并行的子程序,那么后面那个子程序的时间戳里包含前面子程序的时间戳,以此类推。通过这种方式,子程序的排序里都包含原子任务的排序。
当一个任务里包含子程序,子程序里又不断包含其他子程序,这对于存储他们的专用电路来说,子程序里串联的时间戳太长了。在这种情况下,Fractal只存储时间戳序列的最前列。这意味着Fractal只执行定义好的最低级别、最细粒化的任务,这样能避免中止大的、高级别的原子任务。
论文地址:http://people.csail.mit.edu/sanchez/papers/2017.fractal.isca.pdf
via MIT News,AI 科技评论编译
7月8日,英伟达深度学习学院(DLI)
现场教你如何实操深度学习
听说英伟达开发者票已经快卖光了,今天开始......AI科技评论已经没有优惠码可送了。
3000+ 人AI盛宴现场,CCF-GAIR还专门开设开发者专场培训,由NVIDIA 深度学习学院授课「深度学习」,可远程接入NVIDIA官方服务器进行项目实操,高级工程师现场指导。培训结束后,学员可获得NVIDIA认证证书。
截止现在,课程还有限量10张原价票,7月5日关闭报名通道。感兴趣的赶紧扫码报名,或者点击文末「阅读原文」了解课程详情。
AI科技评论招人啦!
作为国内顶尖人工智能学术媒体,AI科技评论一直秉承“洞悉学术前沿,连结产业未来”的理念,为读者奉上来自国内外的深度报道。
AI科技评论期待你的加入,和我们一起见证未来!现诚招学术主编(外聘)、学术编辑、外翻编辑等岗位,详情请 点这里
欢迎投递简历到:[email protected],AI 科技评论等你哦!