From 5aa521840dc3df3dcf4da17ed2220b904a550fc2 Mon Sep 17 00:00:00 2001 From: Chris Cummins Date: Fri, 10 Dec 2021 02:26:41 +0000 Subject: [PATCH] [llvm] Update mibench to v1. This deprecates the mibench-v0 dataset and adds a new mibench-v1 dataset. The difference is that the files in v1 have the "optnone" attribute stripped, enabling the optimizer to modify the functions. Fixes #505. --- compiler_gym/envs/llvm/datasets/__init__.py | 26 +++++++++++++++++++++ docs/source/llvm/index.rst | 2 +- examples/llvm_rl/config/testing/all.yaml | 2 +- tests/llvm/datasets/llvm_datasets_test.py | 2 +- 4 files changed, 29 insertions(+), 3 deletions(-) diff --git a/compiler_gym/envs/llvm/datasets/__init__.py b/compiler_gym/envs/llvm/datasets/__init__.py index 8fcd298fe..31d714b32 100644 --- a/compiler_gym/envs/llvm/datasets/__init__.py +++ b/compiler_gym/envs/llvm/datasets/__init__.py @@ -109,6 +109,30 @@ def __init__(self, site_data_base: Path, sort_order: int = 0): class MibenchDataset(TarDatasetWithManifest): + def __init__(self, site_data_base: Path, sort_order: int = 0): + super().__init__( + name="benchmark://mibench-v1", + tar_urls=[ + "https://dl.fbaipublicfiles.com/compiler_gym/llvm_bitcodes-10.0.0-mibench-v1.tar.bz2" + ], + tar_sha256="795b80d3198bc96e394823a4cb294d256845beffccce52fea0e3446395212bb5", + manifest_urls=[ + "https://dl.fbaipublicfiles.com/compiler_gym/llvm_bitcodes-10.0.0-mibench-v0-manifest.bz2" + ], + manifest_sha256="8ed985d685b48f444a3312cd84ccc5debda4a839850e442a3cdc93910ba0dc5f", + references={ + "Paper": "http://vhosts.eecs.umich.edu/mibench/Publications/MiBench.pdf" + }, + license="BSD 3-Clause", + strip_prefix="mibench-v1", + description="C benchmarks", + benchmark_file_suffix=".bc", + site_data_base=site_data_base, + sort_order=sort_order, + ) + + +class MibenchV0Dataset(TarDatasetWithManifest): def __init__(self, site_data_base: Path, sort_order: int = 0): super().__init__( name="benchmark://mibench-v0", @@ -129,6 +153,7 @@ def __init__(self, site_data_base: Path, sort_order: int = 0): benchmark_file_suffix=".bc", site_data_base=site_data_base, sort_order=sort_order, + deprecated="Please use mibench-v1", ) @@ -259,6 +284,7 @@ def get_llvm_datasets(site_data_base: Optional[Path] = None) -> Iterable[Dataset yield LinuxDataset(site_data_base=site_data_base, sort_order=0) yield LlvmStressDataset(site_data_base=site_data_base, sort_order=0) yield MibenchDataset(site_data_base=site_data_base, sort_order=0) + yield MibenchV0Dataset(site_data_base=site_data_base, sort_order=100) yield NPBDataset(site_data_base=site_data_base, sort_order=0) yield OpenCVDataset(site_data_base=site_data_base, sort_order=0) yield POJ104Dataset(site_data_base=site_data_base, sort_order=0) diff --git a/docs/source/llvm/index.rst b/docs/source/llvm/index.rst index 5ffb8afbe..48302bbf9 100644 --- a/docs/source/llvm/index.rst +++ b/docs/source/llvm/index.rst @@ -42,7 +42,7 @@ We provide several datasets of open-source LLVM-IR benchmarks for use: +----------------------------+--------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+----------------------+ | benchmark://linux-v0 | 13,894 | Compile-only object files from C Linux kernel [`Homepage `__] | No | +----------------------------+--------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+----------------------+ -| benchmark://mibench-v0 | 40 | C benchmarks [`Paper `__] | No | +| benchmark://mibench-v1 | 40 | C benchmarks [`Paper `__] | No | +----------------------------+--------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+----------------------+ | benchmark://npb-v0 | 122 | NASA Parallel Benchmarks [`Paper `__] | No | +----------------------------+--------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+----------------------+ diff --git a/examples/llvm_rl/config/testing/all.yaml b/examples/llvm_rl/config/testing/all.yaml index 9584fd676..6827e5c66 100644 --- a/examples/llvm_rl/config/testing/all.yaml +++ b/examples/llvm_rl/config/testing/all.yaml @@ -21,7 +21,7 @@ benchmarks: max_benchmarks: 50 - dataset: generator://llvm-stress-v0 max_benchmarks: 50 - - dataset: benchmark://mibench-v0 + - dataset: benchmark://mibench-v1 max_benchmarks: 50 - dataset: benchmark://npb-v0 max_benchmarks: 50 diff --git a/tests/llvm/datasets/llvm_datasets_test.py b/tests/llvm/datasets/llvm_datasets_test.py index 697d26de5..61251f649 100644 --- a/tests/llvm/datasets/llvm_datasets_test.py +++ b/tests/llvm/datasets/llvm_datasets_test.py @@ -19,7 +19,7 @@ def test_default_dataset_list(): "benchmark://clgen-v0", "benchmark://github-v0", "benchmark://linux-v0", - "benchmark://mibench-v0", + "benchmark://mibench-v1", "benchmark://npb-v0", "benchmark://opencv-v0", "benchmark://poj104-v1",