Exploring the impact of neural network task granularity on mapping and scheduling efficiency on multi-core Network-on-Chip (NoC) architectures, based on the SET scheduling framework.
This project extends the SET scheduling framework proposed in the following work:
SET: Inter-layer Scheduling Space Definition and Exploration for Tiled Accelerators ISCA 2023
Original implementation:
https://github.com/SET-Scheduling-Project/SET-ISCA2023
SET defines a scheduling space for neural network execution and explores efficient inter-layer scheduling structures using a Resource Allocation Tree (RA Tree) representation.
This project studies the interaction between:
- neural network task granularity
- inter-layer scheduling strategies
- mapping and execution efficiency on tiled accelerator / NoC architectures
All experiments are conducted using Transformer neural network workloads.
In neural network accelerators, scheduling efficiency is affected by both:
- the granularity of neural network tasks
- the inter-layer scheduling structure
This project evaluates how different granularity transformations interact with the SET scheduling exploration framework.
Several task granularity strategies are evaluated in the experiments.
Original Transformer execution granularity.
Each operator (attention, feed-forward, element-wise operations, etc.) is treated as an independent scheduling unit.
The attention-related operators inside a Transformer block are divided into two groups, forming two scheduling units.
All attention-related operators inside a Transformer block are grouped into a single scheduling unit.
Multiple consecutive layers are fused into a single layer before scheduling.
base → semigrouped → grouped → fused
(finer) (coarser)
Different inter-layer scheduling strategies are evaluated.
Initial scheduling configuration before optimization.
Layer Sequential scheduling.
Layers execute sequentially and all hardware resources are allocated to one layer at a time.
Layer Pipeline scheduling.
Multiple layers execute concurrently in a pipeline across hardware partitions.
Scheduling results generated by the SET exploration algorithm.
SET-NN-Mapping-Scheduling
│
├── logs
│ ├── *_tree.txt
│ ├── *_scheme.txt
│ └── *_summary.txt
│
└── README.md
The logs directory contains experiment outputs generated by the scheduling framework.
Each experiment generates three types of logs:
- tree — scheduling tree structure (RA Tree)
- scheme — detailed scheduling scheme
- summary — overall performance statistics
If you use the SET framework in your research, please cite the following paper:
SET: Inter-layer Scheduling Space Definition and Exploration for Tiled Accelerators
ISCA 2023
本项目基于 SET 调度框架进行扩展,该框架来自 ISCA 2023 论文:
SET: Inter-layer Scheduling Space Definition and Exploration for Tiled Accelerators
SET 原始代码仓库:
https://github.com/SET-Scheduling-Project/SET-ISCA2023
SET 通过 资源分配树(RA Tree) 表示调度结构,并自动探索神经网络的层间调度空间。
本项目研究以下因素之间的相互关系:
- 神经网络 任务粒度
- 层间调度策略
- NoC / tiled accelerator 架构上的执行效率
所有实验均基于 Transformer 神经网络模型。
在神经网络加速器中,调度效率同时受到以下因素影响:
- 神经网络 任务粒度
- 层间调度结构
本项目研究 不同粒度策略 与 SET 调度空间探索框架 之间的相互影响。
实验评估了多种神经网络任务粒度策略。
原始 Transformer 执行粒度。
每个算子(attention、feed-forward、element-wise 等)作为独立任务进行调度。
Transformer block 中的 attention 相关算子 划分为两个小组,形成两个调度单元。
Transformer block 中所有 attention 相关算子 打包为一个调度单元。
多个连续神经网络层 融合为一个新的层 再进行调度。
base → semigrouped → grouped → fused
(最细) (最粗)
实验评估了多种层间调度策略。
优化前的初始调度结构。
层顺序执行(Layer Sequential)。
所有硬件资源一次只执行一层。
层流水执行(Layer Pipeline)。
不同层在不同硬件分区上并行执行。
由 SET 调度空间探索算法生成的调度结果。
SET-NN-Mapping-Scheduling
│
├── logs
│ ├── *_tree.txt
│ ├── *_scheme.txt
│ └── *_summary.txt
│
└── README.md
logs 目录存储实验产生的调度日志,包括调度树、调度方案和性能统计。
每个实验会生成三类日志:
- tree — 调度树结构(RA Tree)
- scheme — 具体调度方案
- summary — 整体性能统计
如果在研究中使用 SET 框架,请引用以下论文:
SET: Inter-layer Scheduling Space Definition and Exploration for Tiled Accelerators
ISCA 2023