Skip to content

Commit ef32b0a

Browse files
committed
Update README
1 parent 136fe46 commit ef32b0a

File tree

1 file changed

+31
-1
lines changed

1 file changed

+31
-1
lines changed

README.md

Lines changed: 31 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,39 @@
22
[![Actions Status](https://github.com/chillenzer/KitGenBench/workflows/Install/badge.svg)](https://github.com/chillenzer/KitGenBench/actions)
33
[![codecov](https://codecov.io/gh/chillenzer/KitGenBench/branch/master/graph/badge.svg)](https://codecov.io/gh/chillenzer/KitGenBench)
44

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+
511
# KitGenBench
612

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
838

939
### Build and run the standalone target
1040

0 commit comments

Comments
 (0)