PolyBench

Introduction

PolyBench is a benchmark suite of 30 numerical computations with static control flow, extracted from operations in various application domains (linear algebra computations, image processing, physics simulation, dynamic programming, statistics, etc.).

Source: https://github.com/MatthiasJReisinger/PolyBenchC-4.2.1

Building

Please build iwasm and wamrc, refer to:

And install WASI SDK, please download the wasi-sdk release and extract the archive to default path /opt/wasi-sdk.

And then run ./build.sh to build the source code, the folder out will be created and files will be generated under it.

Running

Run ./run_aot.sh to test the benchmark, the native mode and iwasm aot mode will be tested for each workload, and the file report.txt will be generated.

Run ./run_interp.sh to test the benchmark, the native mode and iwasm interpreter mode will be tested for each workload, and the file report.txt will be generated.

Run ./test_pgo.sh to test the benchmark with AOT static PGO (Profile-Guided Optimization) enabled, please refer here to install tool llvm-profdata and build iwasm with cmake -DWAMR_BUILD_STATIC_PGO=1.

  • For Linux, build iwasm with cmake -DWAMR_BUILD_STATIC_PGO=1, then run ./test_pgo.sh to test the benchmark with AOT static PGO (Profile-Guided Optimization) enabled.

  • For Linux-sgx, similarly, build iwasm with cmake -DWAMR_BUILD_STATIC_PGO=1, then make in the directory enclave-sample. And run ./test_pgo.sh --sgx to test the benchmark.

Last updated