GNΩSIS
收藏github2025-07-17 更新2025-07-18 收录
下载链接:
https://github.com/aferikoglou/GNWSIS
下载链接
链接失效反馈官方服务:
资源简介:
GNΩSIS是一个可扩展的高级合成数据集,主要用于从`src_info.json`文件中提取源代码特征向量,并解析由`GenHLSOptimizer`生成的`.sqlite`文件,这些文件包含应用的高级合成指令及相应的度量指标,如延迟、BRAM、DSP、FF、LUT使用情况和合成时间。
GNΩSIS is a scalable advanced synthesis dataset. It is primarily used for extracting source code feature vectors from the `src_info.json` file and parsing `.sqlite` files generated by `GenHLSOptimizer`. These files contain the application's high-level synthesis instructions and their corresponding metrics, including latency, BRAM, DSP, FF, LUT utilization, and synthesis time.
创建时间:
2025-07-02
原始信息汇总
GNΩSIS数据集概述
数据集简介
- 名称:GNΩSIS (An extensible High-Level Synthesis Dataset)
- 用途:支持从HLS (High-Level Synthesis) 工具生成的源代码特征向量提取和分析
- 核心功能:
- 解析
src_info.json文件提取源代码特征 - 解析
.sqlite文件获取HLS指令及应用指标(延迟、BRAM、DSP、FF、LUT使用率等)
- 解析
数据集结构
- 数据目录:
ApplicationAPLMapping/:指令标签与应用程序操作点的映射ApplicationDatabases/:各FPGA设备和目标时钟频率的数据库文件ApplicationDataset/:应用程序源代码及元数据文件(src_info.json、kernel_info.txt)CSVS/:从SQLite数据库提取的数据ApplicationBaselineInformation.csv:无指令或优化时的QoR指标ApplicationInformation.csv:应用程序顶层函数文件信息SourceCodeFeatureVectors.csv:源代码特征向量表示
数据集内容
-
配置参数:
Application_Name:应用程序名称Version:应用程序版本或配置标识Device:目标FPGA设备Clock_Period_nsec:时钟周期(纳秒)
-
应用指令:
Array_1至Array_22:数组相关操作点指令OuterLoop_1至OuterLoop_26及InnerLoop_1_1至InnerLoop_4_2:循环相关指令
-
QoR指标:
Latency_msec:内核执行延迟(毫秒)Synthesis_Time_sec:综合时间(秒)BRAM_Utilization_percentage、DSP_Utilization_percentage、FF_Utilization_percentage、LUT_Utilization_percentage:资源使用率(百分比)Speedup:性能提升因子BRAMs、DSPs、FFs、LUTs:绝对资源使用量
工具与脚本
featureVectorGeneration.py:生成源代码特征向量文件dataAggregator.py:将SQLite数据转换为CSV并构建最终数据集appAnalyzer.py:提取并可视化特定应用程序的关键指标
获取与使用
- 平台:Hugging Face Datasets (https://huggingface.co/datasets/aferikoglou/GNWSIS)
- 系统要求:
- Ubuntu 22.04 LTS
- Python 3.10
- 依赖库:
sqlitedict、pandas、seaborn、matplotlib、paretoset、datasets
示例输出
-
源代码特征向量生成:
- 最大数组维度:2
- 单应用程序最大数组数:22
- 最大循环结构数:26
- 最大循环嵌套层级:5
-
应用程序分析示例:
- 应用程序:
rodinia-knn-1-tiling - 输出指标:延迟、资源使用率、Speedup等
- 应用程序:
搜集汇总
数据集介绍

构建方式
GNΩSIS数据集作为高层次综合(HLS)领域的重要资源,其构建过程体现了严谨的工程方法论。数据集通过集成[HLSAnalysisTools](https://github.com/aferikoglou/HLSAnalysisTools)和[GenHLSOptimizer](https://github.com/aferikoglou/GenHLSOptimizer)两大工具链,系统化地采集了FPGA设计中的关键元数据。构建流程包含三个核心环节:首先通过静态代码分析生成包含语法特征的src_info.json文件,再结合动态综合过程记录的SQLite数据库(涵盖时延、BRAM、DSP等22项硬件指标),最终通过特征向量生成脚本和数据聚合脚本形成结构化CSV。这种多维度数据融合策略确保了设计空间探索的完备性,覆盖了xczu7ev等主流FPGA器件在不同时钟约束下的设计变体。
特点
该数据集最显著的特征在于其层次化的架构设计。在内容维度上,不仅包含原始代码库(ApplicationDataset/)、预处理特征向量(SourceCodeFeatureVectors.csv),还集成了跨器件基准数据(ApplicationBaselineInformation.csv)。技术指标方面,完整记录了循环展开(最大嵌套深度5层)、数组分区(最大维度22个)等27类HLS优化指令的效果,每个配置包含93个特征字段。数据组织形式上采用应用-版本-设备三级索引,支持通过ApplicationAPLMapping实现优化指令的精准溯源。这种结构化设计使得数据集既能支持微观层面的指令级分析,又能满足宏观层面的跨应用对比研究。
使用方法
使用该数据集可通过模块化Python脚本实现全流程分析。研究者在配置好Python3.10环境后,首先运行featureVectorGeneration.py生成代码特征矩阵,该过程会提取循环结构、数组维度等静态特征。继而通过dataAggregator.py整合SQLite中的动态指标,输出包含设计配置与QoR指标的GNΩSIS.csv。针对特定应用的研究,appAnalyzer.py支持按应用名称过滤数据,并自动生成帕累托前沿可视化结果。数据集已适配Hugging Face平台,支持通过标准datasets库直接加载。值得注意的是,所有脚本均采用模块化设计,用户可通过继承AnalysisModule基类快速扩展新的分析维度。
背景与挑战
背景概述
GNΩSIS数据集作为一项专注于高层次综合(High-Level Synthesis, HLS)领域的研究成果,由aferikoglou团队开发并维护,旨在为硬件设计优化提供数据支持。该数据集通过整合多种FPGA设备的应用配置参数、设计指令及质量评估指标(如延迟、资源利用率等),构建了一个系统化的设计空间探索平台。其核心价值在于为研究人员提供了丰富的实验数据,以分析不同HLS指令对硬件设计性能的影响,从而推动自动化硬件优化算法的发展。该数据集通过GitHub和Hugging Face平台开源,显著提升了HLS领域研究的可重复性和可扩展性。
当前挑战
GNΩSIS数据集在解决HLS设计空间探索问题时面临多重挑战。在领域问题层面,如何量化不同HLS指令对设计性能的影响,以及如何平衡资源利用率与执行效率之间的复杂权衡关系,是该数据集试图解决的核心难题。在构建过程中,团队需处理异构数据源的整合问题,包括从不同FPGA设备和时钟频率配置中提取标准化指标。此外,数据集需要确保源代码特征向量与硬件实现指标的精确映射,这对元数据标注的完整性和一致性提出了严格要求。多维度的设计参数与非线性性能关系进一步增加了数据建模的复杂度。
常用场景
经典使用场景
在FPGA硬件设计领域,GNΩSIS数据集为高层次综合(HLS)研究提供了丰富的实验基础。其经典使用场景包括分析不同HLS指令对硬件设计性能的影响,如延迟、资源利用率(BRAM、DSP、FF、LUT)以及综合时间。通过该数据集,研究人员能够系统地评估各种设计配置在不同FPGA设备和时钟频率下的表现,从而优化硬件设计流程。
实际应用
在实际应用中,GNΩSIS数据集被广泛用于FPGA硬件设计的性能预测和优化。工程师可以利用该数据集快速评估不同HLS指令组合的效果,缩短设计迭代周期。此外,该数据集还为EDA工具开发提供了验证基准,帮助工具开发者测试和优化其算法在实际设计场景中的表现。
衍生相关工作
围绕GNΩSIS数据集,衍生了一系列经典研究工作。例如,基于该数据集的机器学习模型被开发用于预测HLS设计的性能,相关成果发表在顶级硬件设计会议中。此外,该数据集还支持了多项关于自动化HLS指令优化的研究,推动了硬件设计智能化的发展。
以上内容由遇见数据集搜集并总结生成



