一句话:提出 TaskStream 任务执行模型,将任务依赖作为硬件一等原语,在粗粒度可重构数据流加速器上恢复程序结构,从而高效支持任务并行。
可重构加速器(如 CGRA 与数据流架构)在处理规则并行负载时表现优异,但难以支持广泛存在的任务并行负载:前者需要重复且简单的程序结构,而后者把程序拆成独立调度的小单元,破坏了这种结构。本文的洞见是,若把任务及其潜在通信结构作为硬件的一等原语,就能以极低开销恢复程序结构。作者提出面向加速器的任务执行模型 TaskStream,为任务依赖附加上足以恢复任务间结构的信息,并据此实现工作感知的负载均衡、流水化任务间依赖的恢复,以及通过多播恢复任务间读共享。该模型被应用于可重构数据流架构,形成面向任务并行负载的层次化数据流模型,并实现加速器 Delta。与等价的静态并行设计相比,该执行模型在仅增加 3.6% 面积开销的情况下带来 2.2× 的性能提升,同时减轻了程序员管理任务分发的负担。
Reconfigurable accelerators, like CGRAs and dataflow architectures, have come to prominence for addressing data-processing problems. However, they are largely limited to workloads with regular parallelism, precluding their applicability to prevalent task-parallel workloads. Reconfigurable architectures and task parallelism seem to be at odds, as the former requires repetitive and simple program structure, and the latter breaks program structure to create small, individually scheduled program units. Our insight is that if tasks and their potential for communication structure are first-class primitives in the hardware, it is possible to recover program structure with extremely low overhead. We propose a task execution model for accelerators called TaskStream, which annotates task dependences with information sufficient to recover inter-task structure. TaskStream enables work-aware load balancing, recovery of pipelined inter-task dependences, and recovery of inter-task read sharing through multicasting. We apply TaskStream to a reconfigurable dataflow architecture, creating a seamless hierarchical dataflow model for task-parallel workloads. We compare our accelerator, Delta, with an equivalent static-parallel design. Overall, we find that our execution model can improve performance by 2.2× with only 3.6% area overhead, while alleviating the programming burden of managing task distribution.