CATBench
收藏CATBench: 基准测试框架
CATBench 是一个用于评估编译器基准测试的计算性能和能效的基准测试框架。它允许用户通过 gRPC 在实际硬件上、使用基于 Catboost 的代理模型或使用预计算的表格数据来定义和运行基准测试。
入门指南
要使用 CATBench,您需要定义一个基准测试实例,然后对其运行查询。该框架提供三种主要操作模式:
- 代理基准测试: 此模式训练并使用基于 Catboost 的代理模型。它速度更快,不需要实际的硬件资源进行计算。适用于快速分析和测试。
- 表格基准测试: 此模式使用以 CSV 格式存储的预计算数据。当您拥有完全相同的软件设置和种子,但没有硬件可用时,这很有用。
- 硬件基准测试(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"])
然后,您可以像往常一样使用客户端接口。配置会自动发送到任何可用服务器并排队运行。

- 1CATBench: A Compiler Autotuning Benchmarking Suite for Black-box Optimization挪威科技大学, 隆德大学, 斯坦福大学 · 2024年



