查看原文
其他

通过DARPA项目看看芯片世界的“远方”- Architectures

2017-09-24 唐杉 StarryHeavensAbove

DARPA的ERI(Electronics Resurgence Initiative)电子复兴计划,目标是应对微电子技术领域即将要面对的来自工程技术和经济成本方面的挑战。最近,ERI又增加了6个新的项目,覆盖材料、架构和设计几大方面。材料方面我不懂,所以还是和大家一起看看架构和设计这两个方向吧。虽然这些项目的实施还需要很长时间,但我们至少可以先看看“问题”是什么,大体的解题思路又是什么。

本文先讨论两个架构方向的项目SDH(Software Defined Hardware)和DSSoC(Domain-Specific System on Chip)。

在进入正题之前,我们还是先看看ERI为什么要投资这些研究项目。

这张图上部展示的正是提出摩尔定律的论文(发现自己还真没认真看过原文)。于是,关于ERI的“page-three-inspired”投资,有下面这样的一段话:

During these unique times, it is instructive to read all of Moore’s prescient paper. On page two, he laid out what became his famous projection for scaling transistor count. However, on page three, with an eye toward the times we now live in, he laid out the technical directions to explore when the conditions under which scaling will be the primary means for advancement are no longer met. A trio of simultaneously-released ERI BAAs—this one among them—parallel the research areas detailed on page three of Moore’s paper: materials and integration, architecture, and design. These new page-three-inspired investments, along with a series of related investments from the past year, comprise the overall Electronics Resurgence Initiative.


这么大的项目竟然是这么简单的策划,比起我们的各种战略规划,格局差太远了。


Software Defined Hardware (SDH)

Build runtime reconfigurable hardware and software that enables near ASIC performance without sacrificing programmability for data-intensive algorithms

Software-defined概念在防务领域很早就得到应用,SDR就是很好的例子。有趣的是,SDH项目的所谓data-intensive算法主要是指“machine learning and data science algorithms that process large volumes of data and are characterized by their usage of intense linear algebra, graph search operations and their associated data-transformation operators.”看来这方面的需求确实强劲啊。

“SDH程序将创建一个可扩展的硬件/软件架构,与ASIC不同,允许应用程序在运行时修改硬件配置。 SDH将实现1)输入数据变化时动态优化代码和硬件; 2)能够重用硬件来解决新问题,支持新算法。 ”为了实现这些目标,SDH把重点放在高速硬件重配置(very fast hardware reconfiguration speeds)和动态编译(dynamic compilation)。 不过,看起来这个项目的目标还是很有挑战的,而且也是一个长久以来大家试图实现但一直没能实现的目标。如果能够成功,那么 “SDH will be able to take advantage of data-dependent optimizations that even today’s ASICs cannot exploit.

项目的组织分成TA1: Reconfigurable processor technology(硬件架构)和TA2: Dynamic hardware/software compilers for high-level languages(软件工具)两个部分。其中可重构处理器要求重配置速度高于FPGA;而效率又要接近ASIC,功耗要远低于FPGA。而且这个处理器不仅要求片上的运算和存储可以重构,外部存储子系统也要求能够被配置为不同的数据访问模式。

而编译器部分的项目执行者将“build programming languages and compilers that optimize software and hardware at runtime.”这里可看出,在runtime时的优化同时包括了软件和硬件。编译器需要能够把高级语言转换为机器语言以及面向应用的硬件配置。比较有意思的一个说法是“system will iteratively optimize code and hardware as the program is running to maximize performance dynamically based on the data being processed.”也就是说优化的过程是个动态改进的过程。

下图说明了TA1和TA2两个部分的互操作关系。


在更进一步的技术说明当中,下面几点是比较重要的内容:

- 对于可重构处理器来说,CGRA(Coarse-Grained Reconfigurable Array)当然是一种比较自然的设计。比如下图:

这个项目并不排除其它的可能的架构。不过,CGRA本来就覆盖了很大范围,所以大体的硬件架构可能也就是类似的样子。

- 对于编译器来说,首先,鼓励开发新的High-level的编程语言;第二,“Methods that use low-level synthesis techniques, dynamic auto-tuning and implementation selection, and code mining are strongly encouraged.”(这几项技术我也不太懂);第三,也是最有趣的。由于既需要要优化硬件配置又需要优化软件代码,这个探索空间太大。因此,项目执行者“may use, for example, stochastic optimization and reinforcement learning across programs to learn how to predict the best architectural configurations for a given problem and runtime data associated with that problem.


最终项目需要达到的指标如下。其中效率(前三列)通过GOPS/W或TOPS/W来衡量,可编程性则通过年度用户实验来衡量。


T.S.:

我比较感兴趣的是“迭代优化”的方法:先通过静态分析得出优化的硬件配置;然后在这个硬件配置上生成优化的代码;最后根据runtime的数据对硬件配置和软件代码不断优化。首先,这种方法降低了静态优化的要求,增加了实现的可行性。其次,只要硬件重配置的时间足够短(300-1000ns),动态优化就可以实现快速迭代,收敛到一个系统最优的结果。更重要的是,看起来它可以很自然的和Reinforcement Learning结合起来,想象空间就更大了...

Domain-Specific System on Chip (DSSoC)

Enable rapid development of multiapplication systems through a single programmable device

Domain-Specific computing的概念,我们在之前的文章(专用处理器设计方法&工具)中做过一些讨论。它的本质是建立一套完整的方法学和工具,能够高效的设计和实现面向一个领域(包括特征相似的多种应用)的软硬件系统,同时这套方法和工具还可以方便的应用到新的领域。

DSSoC项目本身也是要提供一套垂直整合的方法,通过一个full-stack integration,提供一个软硬件框架,让程序员不必要了解底层硬件(由多个异构处理器单元组成的SoC),但仍然可以充分的利用硬件的效率。目前,我们做一个架构设计的时候,往往要在通用性(可编程性)和专用性(高效率)之间做很多权衡。如果这个项目成功,那么在通用性和专用性之间的权衡就可以变得不那么困难了。“Domain-Specific System on Chip (DSSoC) intends to demonstrate that the tradeoff between flexibility and efficiency is not fundamental. The program will develop a method for determining the right amount and type of specialization while making a system as programmable and flexible as possible.”目前这个项目主要针对嵌入式系统,包括edge侧靠近sensor的应用领域。

如上图所示,DSSoC项目列出了5个关键技术,包括:

1. Intelligent scheduling to manage the set of domain resources in the context of specific applications,

这应该是这个项目的一个技术重点,也是项目目标实现的基础,只有实现运行时的智能调度,才可能让软件和硬件解耦。而智能调度做的好坏也直接关系最终系统的效率。对这一部分的实现方法,技术说明中有一些进一步的讨论,比如在系统中增加专用于调度的处理器,以及让每个PE都可以分析并上报自己的运行状态等等。

2. Software tools to enable a development ecosystem that exercises the full capability of the highly programmable system,

软件工具包括开发工具,如编译器和调试器,算法库,以及Domain的应用程序和示例。软件工具应该Domain-Specific计算能否真正落地的最重要部分,一个基本的要求就是也可以支持领域内的新的设计,“Any new processor must be developed with these software

components in order to make it usable by the rest of the development community. This requirement therefore demands that construction of these tools be focused on usability and upgradability to support new DSSoCs.”。DARPA非常鼓励使用现有的软件工具,也很支持开源工作。

3. Forming domain representations as ontologies,

这是一个很值得关注的工作,就是怎么来描述一个“Domain”。对于Domain-Specific软硬件设计工作来说,设计的前提是很好的描述这个领域的特征。而之前虽然也有一些定义和描述domain的工作,比较著名的是“Seven Dwarfs”("The landscape of parallel computing research: A view from Berkeley")。但这些定义还是过于简单,不能反映不同分组间的关系,也缺乏对算法的细节特征的描述,很难直接用来支持这个项目中的智能调度等工作。

4. Medium access control (MAC) to interconnect the PEs and to allow the data throughput, taking into consideration latency, power, and other domain constraints, and

熟悉通信协议的同学应该对MAC层这个概念比较熟悉,在DSSoC项目中,MAC层是在PE间交换数据结构的媒介,既包括物理结构,拓扑,还包括一个标准编程接口。

5. Hardware integration of the right set of PEs on the MAC layer with the operating scheduler and software into a fabricated DSSoC.

这个项目的最终结果也包括一个异构的SoC硬件,但这似乎不是这个项目的重点。按照这个项目的说明(上图),PE是粒度比较大的概念,比如是CPU,GPU,TPU,Neuromorphic Unit,DSP,硬件加速器等等。

下面我们看看这个项目的指标,也可以看出Scheduler和MAC在这个项目中的重要性。

这个项目的说明文档中的技术内容比较多,有些地方也是很有启发性的,建议大家仔细看看(HR001117S0055)。


T.S.:

Domain-Specific的概念现在提的越来越多,大家也都逐渐看到它的重要性。现在的芯片项目越来越复杂,软件所占的比例非常高,投片、研发和应用的成本和风险越来越高。一套能把软硬件设计垂直整合起来的方法和工具,可以在不同但相似的应用间最大限度的实现重用,从而提高设计效率,降低成本。但是,建立这套方法和工具本身也需要很大的投入,希望AI,物联网,5G这些热门的Domain可以驱动相关的研究工作,早日得以应用。



题图来自网络,版权归原作者所有

推荐阅读  

Hot (AI) Chips 2017

Deep Learning的IR“之争”

Processors for AI : a List

AI + 5G = 高通的未来汽车之道

解密又一个xPU:Graphcore的IPU

给DNN处理器跑个分 - 设计篇

给DNN处理器跑个分 - 指标篇

长按二维码关注

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存