论文笔记1——《Code-size-aware Scheduling of Synchronous Dataflow Graphs on Multicore Systems》
Contents
Code-size-aware Scheduling of Synchronous Dataflow Graphs on Multicore Systems
- MINGZE MA and RIZOS SAKELLARIOU, The University of Manchester
- (TECS)ACM Transactions on Embedded Computing Systems
- 2021 CCF-B
1、introduction
Synchronous Dataflow Graphs (SDFGs)
同步数据流图作为一种方便的表示流媒体应用的手段被广泛应用于数字信号处理和多媒体领域。流应用的性能标准由吞吐量throughput
表示,代表应用的数据处理速率。SDFGs
能能够描述流媒体应用的所有独特特性,即使每个功能模块在一个迭代周期里面的速率是不同的。
- 在上图的
SDFG example
中,节点称为actor
,有向边称为channel
,不同的communication data
表示为不同大小的token
,黑点为initial token
。带有initial token
的channel
表示了迭代间的数据依赖,并且initial token
还能显示周期的存在和防止死锁。 Self-Timed Execution (STE)
能够很好地解决SDFG scheduling
的两个问题:actors
执行速度不同和存在周期问题。STE
通过分析Maximum Cycle Mean (MCM)
确认最大吞吐量。文章通过在重定时内重叠计算与通信,将STE
应用在解决多核系统的核心间通信延迟问题上,并能提高吞吐量。- 减少
code size
也是调度优化的一个目标,为了减少使用duplication-enabled mapping
映射提升了并行性进而提高吞吐量但增大code size
问题,文章在SDFG
还应用了code-size-aware mapping
权衡了二者。 - 总结:
- 提出了
communication-aware STE (CA-STE) scheduling
方法 - 提出了四种
CA-STE
调度算法 - 提出了
code-size-aware mapping
方法用于平衡代码大小和吞吐量 - 展示了四种调度算法比两种代表性的DAG调度算法的优越性和
code-size-aware mapping
牺牲小部分吞吐量达到了减少代码的目的
- 提出了
2、related work
- 1、 Communication-aware Scheduling for SDFGs
- 将
SDFG
转化为DAG
再调度的方法耗时多,且一次迭代一张DAG,没有利用并行性。 - 直接调度
SDFG
的现有方法或是没有考虑多核,或是随着问题规模增大存在指数型时间增长限制。
- 将
- 2、 Code Size Reduction for SDFGs
- 传统优化没有考虑多核系统
- 运用
Binding-based
映射的多核系统虽然code size
小但吞吐量不如duplication-enabled
映射
3、background
-
1、SDFG
-
SDFG
是一个有向图G=<V,E>
,每个图中的actor
都存在minimum repetition number
,满足下列等式,其中P(ch)、Q(ch)
分别表示源、目标actor
的token
产生和消费速率,ϒ(α)
表示minimum repetition number of α
。$P (ch) × ϒ(α_{src} (ch)) = Q(ch) × ϒ(α_{dst} (ch))$
-
迭代(重叠)的最小周期数称为
MCM (Maximum Cycle Mean)
-
HSDFG
是指每个actor
的速率都一样的SDFG
。
-
-
2、 Hardware Platform
- 重叠的前提是假设核心间的通信操作与计算操作并不冲突。
token
传递采用FIFO
队列
-
3、Objectives and Criteria
- 调度
S(G)
的吞吐量TH(S)
如下列所示,其中f(S)
为调度的展开因子unfolding factor
,表示迭代的次数。
$ TH(S) = \frac{f (S)}{|S (G)|} $ - 代码大小为所有映射方式的所有核心的代码大小总和
- 调度
4、algorithms
- Communication-aware Self-timed Execution
- ALGORITHM 1: Generic CA-STE scheduling
- ALGORITHM 2: Get the earliest arriving time
- Actor-to-core Allocation
- ALGORITHM 3: Actor-to-core allocation
- Scheduling Algorithms
- multiple allocation disabled scheduling (MADS) - Earliest ready actor scheduling (eras) - Earliest finish actor scheduling (efas)
- multiple allocation enabled scheduling (MAES)
- meras
- mefas
- Code-size-aware Mapping
- ALGORITHM 4: Code-size-aware mapping for meras
5、experimental evaluation
- Performance Evaluation
- Tradeoff between Throughput and Code Size