设计空间探索(DSE)问题一直是一个具有挑战性的问题,因为设计空间大小呈指数倍增长,仿真时间非常长,并且DSE存在多个目标。由于人工探索的局限性促使了许多自动探索的算法的提出,于是设计师们希望通过一种自动化的方法来解决这个问题,从而加快探索过程。本文旨在通过对设计空间探索技术进行的调查,以便为研究人员提供有关未来研究方向的见识。
现场可编程门阵列(FPGA)是一种可重新配置的数字逻辑设备,有助于快速进行原型设计和设计验证, 从而使设计人员能够开发强大的硬件和软件解决方案。近年来,FPGA 系统已在许多应用中获得普及, 例如数字信号处理、高性能计算、生物应用等。FPGA 显示出在硬件专业化方面的巨大潜力,为了获得高质量的结果(QoR), CAD 工具需要大量的人工来配置大量的设计和工具参数。
由于CAD 映射流程的每个步骤通常都是NP-complete, 因此有必要使用试探法在合理的时间内生成FPGA 比特流。
现代FPGA 支持数百万个LUT,数千个DSP 和片上Block RAM,以及各种奇特的硬件功能,导致编译时间增加到数小时或数天。当处理设计流程中的时序约束时,通常会反复使用FPGA CAD 工具来提供时序收敛,而长时间运行时间和复杂的配置选项的结合使开发人员越来越难以管理此设计过程。FPGA 编译流程可以分解为一系列连续的CAD 阶段,比如高层次综合、逻辑综合、工艺映射、逻辑单元打包和布局布线等。在每个阶段进行设计空间探索(DSE)都有可能影响下面阶段的选择。
DSE 中存在多个目标, 从而产生了一组最优解,也称为Pareto 最优解,而不是单个最优解。在没有任何进一步信息的情况下,这些Pareto 最优解都不能被认为比其他解更好。因此,非常需要一种自动方法来尽快找到尽可能多的Pareto 最优设计。
本文调查发现对相关技术进行分类时,使用不同的技术主要区别所探索的问题不同,导致输入的数据类型不同。输入的数据主要分成无序的,有序的和不规则的。如果探索的是组合优化问题即输入的数据是无序的, 通常使用的是传统的机器学习方法或是本地搜索技术, 如果输入的数据是有序的(图片类型)通常用深度学习的方法,而不规则结构(比如图)会使用图学习的方法。
本文其余部分安排如下:第二节讨论了先前设计空间探索技术相关的工作,详细的阐述了针对设计空间探索提出的不同类型的算法,第三节对基准进行总结,讲述了高层次综合常见的基准测试,第四节介绍了DSE 常用的评估指标,第五节是结论。
2. 设计空间探索技术 2.1. 高层次综合 高层次综合(High level Synthesis, HLS)通过允许此类任务以更高的抽象级别进行(以C/C++或system C 等高级语言作为输入综合到优化的低级实现(例如RTL 或门级网表)), HLS 技术已被广泛研究了二十多年,并且到目前为止,不仅在学术界而且在工业中已经开发了许多HLS 工具,从而简化了硬件设计和验证。在HLS 中进行有效的设计空间探索是一项重要的研究任务,现代HLS 工具中会提供一些可用的循环优化的设置,比如展开,流水线,数组拆分,内联等设置,组合的方式呈指数增长。
2.2. 基于学习的方法 基于学习的方法, 通过在运行实际模拟/合成之前预测解决方案质量来指导DSE 过程, 与本地搜索技