遇见数据集

HLSFactory

收藏
arXiv2024-05-18 更新2024-06-21 收录
官方服务:

资源简介:

HLSFactory是由佐治亚理工学院等机构联合开发的一个综合框架,旨在促进高质量HLS设计数据集的策划和生成。该数据集包含257条设计,涵盖了从简单到复杂的设计,使用AMD/Xilinx和Intel工具流进行合成。HLSFactory通过三个主要阶段(设计空间扩展、设计合成和数据聚合)确保数据点的广泛覆盖,并支持多供应商工具的互操作性。用户可以通过提供的API轻松贡献自己的HLS设计或合成结果。该框架不仅适用于ML训练,还可用于各种需要大量多样HLS运行的任务,如回归测试和学术HLS工具的基准测试。

HLSFactory is a comprehensive framework jointly developed by the Georgia Institute of Technology and other research institutions, dedicated to facilitating the curation and generation of high-quality HLS design datasets. This dataset includes 257 designs ranging from simple to complex, which are synthesized using both AMD/Xilinx and Intel toolflows. HLSFactory ensures comprehensive coverage of data points through three core stages: design space exploration, design synthesis, and data aggregation, and supports interoperability across multi-vendor tools. Users can easily contribute their own HLS designs or synthesis results via the provided API. This framework is applicable not only to ML training, but also to various tasks requiring a large number of diverse HLS runs, such as regression testing and benchmarking of academic HLS tools.

提供机构:
佐治亚理工学院
创建时间:
2024-05-02
搜集汇总
数据集介绍
HLSFactory 数据集图片
构建方式
在高层次综合(HLS)领域,机器学习技术的应用日益广泛,然而高质量HLS数据集的稀缺性一直是制约研究进展的瓶颈。为应对这一挑战,HLSFactory框架应运而生,其数据集构建采用三阶段流水线架构。首先,在设计空间扩展阶段,通过一种名为OptDSL的领域专用语言,将单个HLS设计参数化为多种优化指令组合,从而生成庞大的设计空间,并支持随机采样以平衡覆盖度与计算开销。随后,在设计综合阶段,框架调用多厂商工具(如AMD/Xilinx的Vitis HLS与Intel的i++)对采样后的具体设计进行综合与实现。最后,在数据聚合阶段,从综合与实现结果中提取标准化指标(如延迟、资源使用、时序与功耗),并封装为JSON格式的机器学习就绪数据集。整个流程支持用户在三阶段任意入口贡献设计或数据,确保框架的可扩展性与社区协作的可持续性。
特点
HLSFactory数据集的核心特点在于其多样性、可扩展性与多功能性。多样性体现在其内置的基准设计覆盖了PolyBench、MachSuite、CHStone、Rosetta等多个经典HLS基准集,并通过设计空间扩展显著提升了数据点的覆盖范围,例如对29个基础设计采样后生成257个数据点,在延迟与资源使用指标上展现出更宽广的分布。可扩展性则源于其模块化架构,用户可通过自定义前端、工具流或数据聚合器轻松集成新厂商(如Intel)或第三方设计(如LightningSim的33个开源设计),且整个过程仅需数小时即可完成。此外,该框架不仅服务于机器学习模型训练,还可用于HLS工具版本回归测试、设计空间探索与基准评估,展现了其超越单一数据集的通用价值。
使用方法
使用HLSFactory数据集时,用户可通过简洁的Python API快速启动端到端流程。典型用法包括:首先定义设计集合(如PolyBench与MachSuite),然后调用OptDSLFrontend进行设计空间采样(例如每个设计随机采样10个点),接着依次执行VitisHLSSynthFlow与VitisHLSImplFlow完成综合与实现,最后通过VitisHLSImplReportFlow提取标准化数据。框架内置细粒度并行后端,可自动在多个核心上分发任务,相比朴素并行策略可提升20%以上的构建速度。用户还可通过子类化抽象基类(如Frontend或ToolFlow)扩展至其他HLS工具(如Intel i++),或通过DataAggregator子类整合外部数据集(如HLSyn),从而灵活适配多样化的研究需求。
背景与挑战
背景概述
在电子设计自动化领域,高层次的综合(HLS)技术通过将高级语言描述的设计自动转化为寄存器传输级代码,显著提升了FPGA开发的效率。然而,机器学习方法在HLS流程中的应用,如质量结果预测和设计空间探索,长期受限于高质量数据集的匮乏。现有数据集或局限于特定基准的子集,或无法枚举优化设计空间,且缺乏跨厂商工具的兼容性与可扩展性。为应对这一困境,佐治亚理工学院等机构的研究人员于2024年提出了HLSFactory框架。该框架通过设计空间扩展、多厂商工具流合成与标准化数据聚合的三阶段架构,系统性地解决了HLS数据集构建碎片化、不可复现的难题,为机器学习赋能HLS研究奠定了坚实的数据基础。
当前挑战
HLSFactory所解决的核心挑战在于HLS数据集的碎片化与不可扩展性。首先,领域问题层面,现有数据集如Spector、Rosetta等规模小、同质化严重,仅覆盖单一厂商工具,且数据格式混乱,导致机器学习模型训练时特征不足、泛化能力差。其次,构建过程中面临两大瓶颈:一是设计空间扩展时,优化指令组合呈指数增长,全枚举不可行,需高效采样策略;二是多厂商工具流并行合成时,硬件工具运行耗时从分钟到小时不等,需细粒度并行调度以缩短数据集生成周期。此外,用户贡献自定义设计的门槛高,源于数据格式的非标准化与工具版本、器件等关键元数据的缺失,阻碍了社区协作与数据集的可持续发展。
常用场景
经典使用场景
在电子设计自动化领域,HLSFactory作为一个开创性的框架,专门用于生成和扩展高质量的高层次综合(HLS)数据集。其最经典的使用场景是服务于机器学习驱动的设计空间探索与质量结果预测。研究人员通过该框架,能够将单一的HLS设计自动扩展为包含数千个设计点的庞大数据集,涵盖来自PolyBench、MachSuite、Rosetta、CHStone等多个基准测试套件的设计。HLSFactory通过其设计空间扩展阶段,枚举不同的优化指令组合(如循环展开、数组分割、流水线等),大幅提升数据点的多样性和覆盖范围,为后续的机器学习模型训练提供了坚实的数据基础。
实际应用
在实际工业与科研场景中,HLSFactory展现了强大的多功能性。它可被用于HLS工具的版本回归基准测试,通过对比不同版本Vitis HLS在相同设计点上的运行时延、资源消耗和时序表现,帮助开发者量化工具迭代带来的性能改进。此外,框架支持多厂商工具流(如AMD/Xilinx和Intel),使得硬件设计团队能够跨平台评估设计方案的优劣。其用户友好的API还允许第三方研究者快速集成自有的HLS设计或历史数据,从而在不到一小时内完成新设计的接入,极大降低了数据准备的门槛,加速了从算法原型到FPGA实现的迭代周期。
衍生相关工作
HLSFactory的诞生催生了一系列衍生性研究工作。其开放源码和模块化设计鼓励社区贡献,例如LightningSim等仿真工具的作者利用框架的第二阶段入口点,轻松整合了33个可综合的开放源码HLS设计。此外,框架的数据聚合阶段被用于集成HLSyn等先前工作的预生成数据,通过编写自定义DataAggregator子类,将不同来源的HLS报告指标统一转化为标准化格式。未来,HLSFactory有望与AutoDSE和Merlin编译器深度融合,实现更智能的设计空间采样策略,进一步推动基于图神经网络或强化学习的自动化设计优化方法的发展。
以上内容由遇见数据集搜集并总结生成
二维码
社区交流群
二维码
科研交流群
商业服务