From 5dc605e0210f95e8ba9fc5dbc024400ccc5545f3 Mon Sep 17 00:00:00 2001 From: moebiusband73 Date: Wed, 13 Mar 2019 14:54:05 +0100 Subject: [PATCH 1/5] Update README.md --- README.md | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 3b27e1e..4bfb8e7 100644 --- a/README.md +++ b/README.md @@ -27,7 +27,19 @@ TAG = GCC # Supported GCC, CLANG, ICC OPENMP = -fopenmp ``` -3. Build with: +3. Adjust options set in config.mk: +``` +OPTIONS = -DSIZE=40000000ull +OPTIONS += -DNTIMES=10 +OPTIONS += -DARRAY_ALIGNMENT=64 +#OPTIONS += -DVERBOSE_AFFINITY +#OPTIONS += -DVERBOSE_DATASIZE +#OPTIONS += -DVERBOSE_TIMER +``` + +The verbosity options enable detailed output about affinity settings, allocation sizes and timer resolution. + +4. Build with: ``` make ``` @@ -39,7 +51,7 @@ To output the executed commands use: make Q= ``` -4. Clean up with: +5. Clean up with: ``` make clean ``` @@ -50,7 +62,7 @@ make distclean ``` to clean intermediate build results and binary. -5. (Optional) Generate assembler: +6. (Optional) Generate assembler: ``` make asm ``` From 6953ddf0fd2fc550afe2c1217e45aa57d3149c10 Mon Sep 17 00:00:00 2001 From: moebiusband73 Date: Wed, 13 Mar 2019 14:59:28 +0100 Subject: [PATCH 2/5] Update README.md --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 4bfb8e7..7c8ed74 100644 --- a/README.md +++ b/README.md @@ -14,6 +14,7 @@ It contains the following streaming kernels with corresponding data access patte * striad (L3, S1, WA): Schoenauer triad - `a = b + c * d`. * sdaxpy (L3, S1): Schoenauer triad without write allocate - `a = a + b * c`. +As added benefit the code is a blueprint for a minimal benchmarking application with a generic makefile and modules for aligned array allocation, accurate timing and affinity settings. Those components may be used standalone in your own code project. ## Build From 33f126d6b6bb5d3d31211ad9f9c3cb26b5bd5145 Mon Sep 17 00:00:00 2001 From: moebiusband73 Date: Wed, 13 Mar 2019 15:00:11 +0100 Subject: [PATCH 3/5] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 7c8ed74..e6ba43e 100644 --- a/README.md +++ b/README.md @@ -14,7 +14,7 @@ It contains the following streaming kernels with corresponding data access patte * striad (L3, S1, WA): Schoenauer triad - `a = b + c * d`. * sdaxpy (L3, S1): Schoenauer triad without write allocate - `a = a + b * c`. -As added benefit the code is a blueprint for a minimal benchmarking application with a generic makefile and modules for aligned array allocation, accurate timing and affinity settings. Those components may be used standalone in your own code project. +As added benefit the code is a blueprint for a minimal benchmarking application with a generic makefile and modules for aligned array allocation, accurate timing and affinity settings. Those components can be used standalone in your own project. ## Build From bac2e4fb028a638f43d8a8bba639755e4e625a78 Mon Sep 17 00:00:00 2001 From: moebiusband73 Date: Wed, 13 Mar 2019 15:03:48 +0100 Subject: [PATCH 4/5] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index e6ba43e..ea543d7 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@ # The Bandwidth Benchmark This is a collection of simple streaming kernels for teaching purposes. -It is heavily inspired by John McCalpin's https://www.cs.virginia.edu/stream/. +It is heavily inspired by John McCalpin's https://www.cs.virginia.edu/stream/ benchmark. It contains the following streaming kernels with corresponding data access pattern (Notation: S - store, L - load, WA - write allocate): From 101efd0a3bccf2c99e1cda14e673b6be010329c3 Mon Sep 17 00:00:00 2001 From: moebiusband73 Date: Wed, 13 Mar 2019 15:06:20 +0100 Subject: [PATCH 5/5] Update README.md --- README.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index ea543d7..e2dcf77 100644 --- a/README.md +++ b/README.md @@ -3,12 +3,12 @@ This is a collection of simple streaming kernels for teaching purposes. It is heavily inspired by John McCalpin's https://www.cs.virginia.edu/stream/ benchmark. -It contains the following streaming kernels with corresponding data access pattern (Notation: S - store, L - load, WA - write allocate): +It contains the following streaming kernels with corresponding data access pattern (Notation: S - store, L - load, WA - write allocate). All variables are vectors, s is a scalar: -* init (S1, WA): Initilize an array. Store only. -* sum (L1): Vector reduction. Load only. -* copy (L1, S1, WA): Classic memcopy. -* update (L1, S1): Update a vector. Also load + store but without write allocate. +* init (S1, WA): Initilize an array: `a = s`. Store only. +* sum (L1): Vector reduction: `s += a`. Load only. +* copy (L1, S1, WA): Classic memcopy: `a = b`. +* update (L1, S1): Update vector: `a = a * scalar`. Also load + store but without write allocate. * triad (L2, S1, WA): Stream triad - `a = b + b * scalar`. * daxpy (L2, S1): Daxpy - `a = a + b * scalar`. * striad (L3, S1, WA): Schoenauer triad - `a = b + c * d`.