2025-11-20T05:01:15.151274

LOOPerSet: A Large-Scale Dataset for Data-Driven Polyhedral Compiler Optimization

Merouani, Boudaoud, Baghdadi
The advancement of machine learning for compiler optimization, particularly within the polyhedral model, is constrained by the scarcity of large-scale, public performance datasets. This data bottleneck forces researchers to undertake costly data generation campaigns, slowing down innovation and hindering reproducible research learned code optimization. To address this gap, we introduce LOOPerSet, a new public dataset containing 28 million labeled data points derived from 220,000 unique, synthetically generated polyhedral programs. Each data point maps a program and a complex sequence of semantics-preserving transformations (such as fusion, skewing, tiling, and parallelism)to a ground truth performance measurement (execution time). The scale and diversity of LOOPerSet make it a valuable resource for training and evaluating learned cost models, benchmarking new model architectures, and exploring the frontiers of automated polyhedral scheduling. The dataset is released under a permissive license to foster reproducible research and lower the barrier to entry for data-driven compiler optimization.
academic

LOOPerSet: A Large-Scale Dataset for Data-Driven Polyhedral Compiler Optimization

基本信息

  • 论文ID: 2510.10209
  • 标题: LOOPerSet: A Large-Scale Dataset for Data-Driven Polyhedral Compiler Optimization
  • 作者: Massinissa Merouani, Afif Boudaoud, Riyadh Baghdadi (New York University Abu Dhabi)
  • 分类: cs.PL (Programming Languages), cs.LG (Machine Learning), cs.PF (Performance)
  • 发表时间: 2025年10月11日 (arXiv预印本)
  • 论文链接: https://arxiv.org/abs/2510.10209

摘要

多面体模型中机器学习编译器优化的发展受到大规模公共性能数据集稀缺的制约。这种数据瓶颈迫使研究人员进行昂贵的数据生成活动,减缓了创新步伐并阻碍了可重现的代码优化研究。为解决这一问题,作者引入了LOOPerSet,这是一个包含2800万标记数据点的新公共数据集,来源于22万个独特的合成生成多面体程序。每个数据点将程序和复杂的语义保持变换序列(如融合、倾斜、分块和并行化)映射到真实性能测量(执行时间)。LOOPerSet的规模和多样性使其成为训练和评估学习成本模型、基准测试新模型架构以及探索自动多面体调度前沿的宝贵资源。

研究背景与动机

核心问题

多面体模型为表达和应用复杂循环变换提供了强大框架,这对优化科学计算和高性能应用至关重要。然而,主要挑战在于如何在合法变换序列的巨大搜索空间中导航,找到在给定硬件目标上提供最佳性能的变换序列。

问题重要性

  1. 传统方法局限性: 现有的分析成本模型和启发式方法虽然通用且可处理,但难以捕捉优化与底层系统之间的微妙非线性交互
  2. 数据驱动方法潜力: 机器学习方法可以通过大量性能数据训练,发展对真实硬件上变换成本效益的更细致理解
  3. 数据稀缺瓶颈: 缺乏大规模公共性能数据集严重制约了数据驱动编译器优化研究

现有方法局限性

  1. 数据生成成本高: 研究团队需要进行昂贵且耗时的数据生成活动
  2. 可重现性差: 缺乏公共数据集阻碍了严格的方法比较
  3. 研究门槛高: 高数据收集成本阻碍了潜在贡献者进入该领域

核心贡献

  1. 大规模公共数据集: 构建了包含2800万标记数据点的LOOPerSet数据集,来源于22万个独特的合成多面体程序
  2. 多样性保证: 通过多阶段随机化程序生成器确保结构多样性,避免偏向特定基准测试
  3. 相关性导向采样: 采用相关性引导的变换空间采样策略,确保数据集包含实际有用的优化序列
  4. 严格验证: 通过标准化树编辑距离等量化方法验证数据集的多样性和新颖性
  5. 开放访问: 在宽松许可下发布,促进可重现研究并降低数据驱动编译器优化的门槛

方法详解

任务定义

构建一个大规模、多样化的数据集,其中每个数据点包括:

  • 输入: 多面体程序表示 + 变换序列
  • 输出: 真实硬件上的性能测量(执行时间)
  • 约束: 所有变换必须保持语义正确性

数据生成流水线

1. 程序空间采样:合成程序生成器

多阶段随机化过程

循环结构生成

  • 概率性决定顶层循环嵌套数量
  • 递归构建每个嵌套的结构
  • 生成矩形和非矩形(三角形、梯形)迭代域
  • 循环边界可以是常数或外层循环迭代器的函数

计算放置和排序

  • 在循环嵌套中随机放置计算
  • 可以在同一层级交错计算和子嵌套
  • 为每个计算分配数据类型(32/64位浮点或整数)

内存访问和表达式生成

  • 内存模式: 创建多样化的内存访问模式,从简单的恒等映射到复杂的多维模板(星形、十字形)和常数偏移访问
  • 算术表达式: 通过随机组合表达式树构建计算逻辑,结合内存访问和标量值,使用常见算术运算符和数学函数

一致性和验证检查

  • 检测并防止琐碎工作(计算冗余循环、死写入等)
  • 确保合成程序在语法和计算上都有意义

2. 变换空间采样:相关性引导探索

使用LOOPer自动调度器的执行引导搜索机制进行束搜索,探索关键多面体优化的有希望序列:

  • 循环融合 (Loop Fusion)
  • 倾斜 (Skewing)
  • 交换 (Interchange)
  • 反转 (Reversal)
  • 分块 (Tiling)
  • 并行化 (Parallelization)
  • 展开 (Unrolling)

合法性验证:使用标准多面体依赖分析确保所有变换序列保持语义正确性。

3. 性能标签生成

  • 使用Tiramisu编译器框架生成可执行文件
  • 在双插槽Intel Xeon E5-2695 v2处理器系统上执行
  • 每个程序版本执行最多30次以确保测量稳定性
  • 记录完整的执行时间列表以应对系统噪声

技术创新点

  1. 结构多样性最大化: 通过递归概率生成过程确保程序结构的广泛覆盖
  2. 相关性引导采样: 避免随机采样的低效性,专注于实际编译器会考虑的变换序列
  3. 量化多样性验证: 使用标准化树编辑距离等正式方法验证数据集质量
  4. 硬件适应性设计: 支持预训练和迁移学习,降低新架构适配成本

实验设置

数据集规模

  • 总程序数: 约22万个独特程序
  • 总数据点: 超过2800万个标记样例
  • 每程序调度数: 中位数70个
  • 数据生成工作量: 约7.1万CPU小时
  • 加速比范围: 0.0004× 至 1230×

硬件平台

  • 目标架构: 双插槽Intel Xeon E5-2695 v2处理器系统
  • 测量方式: 每个程序版本执行最多30次,记录执行时间分布

验证方法

  • 结构相似性: 使用标准化树编辑距离(nTED)测量程序间结构相似性
  • 基准比较: 与PolyBench套件进行定量比较分析
  • 特征空间分析: 使用主成分分析(PCA)进行20维特征空间的可视化

实验结果

数据集统计特性

结构多样性

  • 14%的程序包含至少一个非矩形迭代域
  • 循环深度、内存引用模式和分支因子呈现长尾分布
  • 内存占用、基线执行时间和总迭代域体积跨越多个数量级

性能分布

  • 测量的加速比呈现尖峰分布,围绕1.0×集中
  • 右尾展示了高效变换序列的存在
  • 左尾捕获了有害调度的情况

多样性验证结果

与PolyBench的比较

  • 无重复确认: 最小nTED距离永不为零,最相似的是seidel-2d (nTED=0.022)
  • 更广泛的结构空间: 合成程序与基准测试的中位距离(0.537)高于PolyBench内部中位距离(0.467)
  • 特征空间覆盖: PCA可视化显示PolyBench程序位于LOOPerSet特征云的密集区域内

分布比较

  • 累积分布函数显示合成程序与基准测试的距离分布持续低于基准测试内部距离分布
  • 表明LOOPerSet探索了比现有基准测试更广泛、更多样化的结构空间

相关工作

多面体编译器优化

  • 传统方法: PLUTO、PolyOpt、GRAPHITE等基于分析成本模型的方法
  • 学习方法: Tiramisu自动调度器、TVM/Ansor、Halide优化器等数据驱动方法

性能数据集

  • 现有限制: 缺乏大规模公共多面体优化性能数据集
  • 相关资源: TpuGraphs等张量计算图性能预测数据集

程序合成

  • 基准测试: PolyBench等标准基准套件的局限性
  • 合成方法: 随机程序生成在编译器研究中的应用

结论与讨论

主要结论

  1. 数据瓶颈解决: LOOPerSet有效解决了多面体编译器优化研究中的数据稀缺问题
  2. 质量保证: 通过严格的多样性分析和相关性引导采样确保数据集质量
  3. 社区资源: 为研究社区提供了可立即使用的大规模基准测试平台

局限性

  1. 硬件特定性: 性能标签特定于Intel Xeon E5-2695 v2架构
  2. 合成程序限制: 虽然多样化,但可能无法完全覆盖所有真实世界程序模式
  3. 变换空间: 受限于LOOPer系统支持的变换类型

未来方向

  1. 跨架构扩展: 在GPU和其他CPU微架构上生成性能标签
  2. 迁移学习研究: 利用数据集研究零样本或少样本泛化
  3. 新模型架构: 探索GNN、Transformer等新的成本模型架构
  4. 可解释性研究: 分析模型失效模式,提高泛化能力

深度评价

优点

  1. 规模空前: 2800万数据点的规模在该领域前所未有
  2. 方法严谨: 多阶段生成流水线和量化验证方法科学严谨
  3. 实用价值高: 相关性引导采样确保数据集的实际应用价值
  4. 开放性强: CC-BY 4.0许可和Hugging Face平台确保易访问性
  5. 可重现性: 详细的数据格式说明和工具支持

不足

  1. 架构依赖: 性能标签局限于单一硬件平台
  2. 验证有限: 缺乏在实际应用中的验证
  3. 生成偏差: 合成程序可能存在系统性偏差
  4. 变换覆盖: 变换类型受限于现有工具支持

影响力

  1. 学术贡献: 为数据驱动编译器优化研究提供基础设施
  2. 实用价值: 显著降低新研究者的入门门槛
  3. 可复现性: 促进方法比较和结果重现
  4. 长远影响: 可能推动该领域向更数据驱动的方向发展

适用场景

  1. 成本模型训练: 训练和评估各种机器学习成本模型
  2. 架构比较: 基准测试不同的模型架构和特征化方法
  3. 迁移学习: 作为预训练数据集支持新架构适配
  4. 启发式发现: 通过数据挖掘发现新的编译器启发式
  5. 可解释性研究: 分析模型行为和失效模式

数据集访问信息

  • 访问地址: https://huggingface.co/datasets/Mascinissa/LOOPerSet
  • 数据格式: JSON Lines (.jsonl)
  • 许可协议: Creative Commons Attribution 4.0 International (CC-BY 4.0)
  • 版本选择:
    • 完整版本:2800万数据点
    • 精简版本:1000万数据点(与LOOPer论文实验一致)

LOOPerSet数据集代表了多面体编译器优化研究领域的重要里程碑,通过提供大规模、高质量的公共数据集,有望显著推动该领域的发展并降低研究门槛。其严谨的构建方法和开放的访问方式使其成为未来相关研究的宝贵资源。