|
2 | 2 | [](https://github.com/chillenzer/KitGenBench/actions) |
3 | 3 | [](https://codecov.io/gh/chillenzer/KitGenBench) |
4 | 4 |
|
| 5 | +Have you ever sat in a restaurant and wondered: Why the heck do they already have their Cock Au Vin on the next table and my simple pasta is taking forever? If you're anything like us, you immediately apply for funding to set up a large scale experiment measuring preparation times for all combinations of recipes. It's, of course, the only reasonable thing to do. |
| 6 | + |
| 7 | +Well, we can't help you with the funding. What we can offer you is a comfy kitchen bench to take a seat, observe and come up with a unified theory of bolognesio synthesis revolutionising the field. So, compose your recipe, lean back and observe... |
| 8 | + |
| 9 | +Wait, did we say "kitchen bench"? We meant... |
| 10 | + |
5 | 11 | # KitGenBench |
6 | 12 |
|
7 | | -KitGenBench is a Memory Benchmark for Many-Core Architectures. |
| 13 | +KitGenBench is a Kit for Generating (Micro-)Benchmarks based on [alpaka](https://github.com/alpaka-group/alpaka). |
| 14 | +As such, it is suitable to generate benchmarks on a wide variety of hardware architectures |
| 15 | +including all major CPU and GPU vendors as well as some FPGAs. |
| 16 | + |
| 17 | +## Usage |
| 18 | + |
| 19 | +The main idea is very simple: |
| 20 | +You provide three pieces of information that will be used by the infrastructure to run benchmarks. |
| 21 | +These are: |
| 22 | + |
| 23 | +- a recipe saying what the benchmark does |
| 24 | +- a checker saying how to verify correctness of the benchmarks |
| 25 | +- a logger saying how to record what happens during the benchmark |
| 26 | + |
| 27 | +The main loop of the program is as simple as (up to technical details) |
| 28 | +```C++ |
| 29 | +while (not recipeExhausted) { |
| 30 | + result = logger.call([]{recipe.next();}); |
| 31 | + logger.call([]{checker.check(result);}); |
| 32 | +} |
| 33 | +``` |
| 34 | + |
| 35 | +See [examples](./examples) for recipes inspirations and technical details. |
| 36 | + |
| 37 | +## Installation |
8 | 38 |
|
9 | 39 | ### Build and run the standalone target |
10 | 40 |
|
|
0 commit comments