five

CATBench

收藏
arXiv2024-06-25 更新2024-06-28 收录
下载链接:
https://github.com/anonymoussisef/catbench
下载链接
链接失效反馈
官方服务:
资源简介:
CATBench是由挪威科技大学、隆德大学和斯坦福大学联合创建的综合性基准测试套件,专注于编译器自动调优的黑盒优化。该数据集包含10个真实世界的编译器优化任务,覆盖从离散、条件到排列参数类型的复杂搜索空间,以及已知和未知的二进制约束。CATBench涵盖了多种计算领域,如张量代数、图像处理和机器学习,并使用先进的编译器如TACO和RISE/ELEVATE。数据集通过统一的容器化接口,支持多目标和多保真度评估,旨在解决编译器优化中的复杂问题,推动贝叶斯优化和编译器自动调优的研究。

CATBench is a comprehensive benchmark suite jointly developed by Norwegian University of Science and Technology, Lund University and Stanford University, focusing on black-box optimization for compiler auto-tuning. This dataset contains 10 real-world compiler optimization tasks, covering complex search spaces ranging from discrete, conditional to permutation parameter types, as well as known and unknown binary constraints. CATBench spans multiple computing domains such as tensor algebra, image processing and machine learning, and utilizes advanced compilers including TACO and RISE/ELEVATE. The dataset supports multi-objective and multi-fidelity evaluation via a unified containerized interface, aiming to address complex challenges in compiler optimization and advance research in Bayesian optimization and compiler auto-tuning.
提供机构:
挪威科技大学, 隆德大学, 斯坦福大学
创建时间:
2024-06-25
原始信息汇总

CATBench: 基准测试框架

CATBench 是一个用于评估编译器基准测试的计算性能和能效的基准测试框架。它允许用户通过 gRPC 在实际硬件上、使用基于 Catboost 的代理模型或使用预计算的表格数据来定义和运行基准测试。

入门指南

要使用 CATBench,您需要定义一个基准测试实例,然后对其运行查询。该框架提供三种主要操作模式:

  1. 代理基准测试: 此模式训练并使用基于 Catboost 的代理模型。它速度更快,不需要实际的硬件资源进行计算。适用于快速分析和测试。
  2. 表格基准测试: 此模式使用以 CSV 格式存储的预计算数据。当您拥有完全相同的软件设置和种子,但没有硬件可用时,这很有用。
  3. 硬件基准测试(gRPC): 此模式涉及在实际硬件上运行基准测试。它提供更真实的结果,但需要设置必要的硬件资源并运行 gRPC 服务。

运行查询

定义基准测试实例后,您可以对其运行查询:

python fidelity_setting = { "iterations": 15, "repeats": 5, "wait_after_run": 1, "wait_between_repeats": 1 } query = { chunk_size: 16, unroll_factor: 16, omp_chunk_size: 2, omp_num_threads: 16, omp_scheduling_type: 0, omp_monotonic: 0, omp_dynamic: 0, permutation: (1, 0, 4, 3, 2) }

objectives_result = benchmark.query(query, fidelity_setting)

上述示例使用我们论文中的 2630 csv 数据集,并将自动下载它来训练代理模型。如果您希望使用不同的数据集,可以使用例如 "dataset=titanv" 来指定。RISE 基准测试的默认数据集是 "rtxtitan"。

硬件基准测试(gRPC)

python import catbench as cb

本地机器上的硬件基准测试

hardware_benchmark = cb.benchmark("spmm", dataset="hardware_run", server_addresses=["localhost"])

远程机器上的硬件基准测试

hardware_benchmark = cb.benchmark("spmm", dataset="hardware_run", server_addresses=["192.168.1.100"])

集群设置

对于集群设置,您只需在要使用的机器上启动 Docker 容器。然后在将托管 catbench 服务器管理器的机器上运行以下命令。服务器是您已启动的服务器的 IP 地址或域名。

sh python3 -m catbench --benchmark spmm --dataset cluster --servers server1.mydomain.com server2.mydomain.com server3.mydomain.com

catbench 客户端的服务器地址应将请求转发到运行 catbench 服务器管理器的机器。默认情况下,catbench 服务器运行在端口 50050,因此客户端需要通过传递 port=50050 作为 cb.benchmark 的参数来连接到此端口。

python cluster_benchmark = cb.benchmark("spmm", dataset="cluster_run", port=50050, server_addresses=["your.catbench.server.com"])

然后,您可以像往常一样使用客户端接口。配置会自动发送到任何可用服务器并排队运行。

搜集汇总
数据集介绍
main_image_url
构建方式
CATBench是一个用于评估黑盒优化算法在编译器自动调优方面的基准测试套件,它涵盖了从离散、条件、排列参数类型到已知和未知二元约束,以及多保真度和多目标评估等复杂性的编译器自动调优。该套件使用了诸如TACO和RISE/ELEVATE等最先进的编译器,并通过统一的接口评估贝叶斯优化算法,以促进可重复性和创新。
特点
CATBench的特点是它提供了从真实世界应用和编译器中提取的多样化基准,涵盖了各种领域、硬件平台和优化挑战。该套件通过易于使用的、完全容器化的设置,为评估贝叶斯优化算法提供了一个统一的接口,可以轻松地将基准应用于替代模型或真实世界的编译器优化任务。
使用方法
CATBench通过Python接口提供了高效基准测试,它采用客户端-服务器架构和Docker容器。用户可以通过简单的代码示例来快速进行基准测试,无论是使用替代模型还是硬件基准测试服务器。此外,CATBench提供了基准任务的替代模型,以便在算法开发的早期阶段进行快速原型设计和迭代。
背景与挑战
背景概述
在编译器自动调优的领域中,CATBench是一个由Jacob O. Tørring等人于2024年提出的全面基准测试套件。该套件旨在解决编译器自动调优中黑盒优化算法所面临的复杂结构挑战,包括离散、条件、排列参数类型,以及已知的和未知的二进制约束,以及多保真度和多目标评估。CATBench包含了机器学习相关的计算,如张量代数、图像处理和聚类,并使用最新的编译器,如TACO和RISE/ELEVATE。通过提供一个统一的接口,CATBench促进了贝叶斯优化算法的可重复性和创新,并通过易于使用的、完全容器化的设置,实现了对代理模型和真实世界编译器优化任务的评价。CATBench已经在多个最先进的算法上进行了验证,揭示了它们的优缺点,并展示了该套件在推动贝叶斯优化和编译器自动调优研究方面的潜力。
当前挑战
CATBench面临的主要挑战包括:1)解决编译器自动调优中的黑盒优化问题,涉及离散、分类和排列的搜索空间,以及参数空间的已知和未知约束;2)构建过程中遇到的挑战,如多输出指标的复杂性、性能在不同硬件和计算类型上的差异,以及缺乏标准化的基准测试套件。为了应对这些挑战,CATBench提供了一个全面的基准测试套件,包括来自真实世界的十个编译器优化任务,这些任务涵盖了混合离散、分类和排列的搜索空间,并支持多目标调优和多保真度信息源。此外,CATBench的基准测试框架提供了一个简单的接口,方便用户使用代理模型进行原型设计和在服务器集群上运行大规模实验。
常用场景
经典使用场景
在机器学习、硬件设计和科学发现等领域,资源密集型的黑盒系统的优化是至关重要的。CATBench是一个用于评估黑盒优化算法的基准测试套件,它捕捉了编译器自动调优的复杂性,包括离散、条件、排列参数类型,以及已知和未知的二进制约束,以及多保真和多目标评估。CATBench的基准涵盖了从张量代数到图像处理和聚类的各种机器学习计算,并使用了最先进的编译器,如TACO和RISE/ELEVATE。它提供了一个统一的接口,用于评估贝叶斯优化算法,通过易于使用的、完全容器化的设置,促进了可重复性和创新。
衍生相关工作
CATBench衍生了相关的经典工作,如BaCO框架和GPTune。这些工作为贝叶斯优化在自动调优领域的应用提供了重要的基础。此外,CATBench还促进了贝叶斯优化和编译器自动调优研究的发展,为未来研究提供了新的方向和思路。
数据集最近研究
最新研究方向
CATBench 数据集的引入,为编译器自动调优领域带来了新的研究视角。该数据集的设计考虑到了自动调优过程中可能遇到的复杂挑战,如离散、条件、排列参数类型,以及已知的和未知的二进制约束等。通过提供一系列真实世界的编译器自动调优任务,CATBench 为评估黑盒优化算法提供了一个统一的接口,从而促进了可重复性和创新。此外,CATBench 的设计还考虑到了多保真度和多目标评估的需求,使得研究人员可以更全面地理解自动调优问题。CATBench 的出现,为编译器自动调优领域的研究提供了新的工具和资源,有助于推动该领域的前沿研究。
相关研究论文
  • 1
    CATBench: A Compiler Autotuning Benchmarking Suite for Black-box Optimization挪威科技大学, 隆德大学, 斯坦福大学 · 2024年
以上内容由遇见数据集搜集并总结生成
5,000+
优质数据集
54 个
任务类型
进入经典数据集
二维码
社区交流群

面向社区/商业的数据集话题

二维码
科研交流群

面向高校/科研机构的开源数据集话题

数据驱动未来

携手共赢发展

商业合作