From d6520daf11c9fe3653c67e12e68353f7f0fb14af Mon Sep 17 00:00:00 2001 From: Tom Deakin Date: Tue, 2 Jun 2020 15:41:00 +0100 Subject: [PATCH] Update README with differentiation from STREAM --- README.md | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/README.md b/README.md index 01f66ae..e3c98b7 100644 --- a/README.md +++ b/README.md @@ -21,6 +21,23 @@ Currently implemented are: This code was previously called GPU-STREAM. + +How is this different to STREAM? +-------------------------------- + +BabelStream implements the four main kernels of the STREAM benchmark (along with a dot product), but by utilising different programming models expands the platforms which the code can run beyond CPUs. + +The key differences from STREAM are that: +* the arrays are allocated on the heap +* the problem size is unknown at compile time +* wider platform and programming model support + +With stack arrays of known size at compile time, the compiler is able to align data and issue optimal instructions (such as non-temporal stores, remove peel/remainder vectorisation loops, etc.). +But this information is not typically available in real HPC codes today, where the problem size is read from the user at runtime. + +BabelStream therefore provides a measure of what memory bandwidth performance can be attained (by a particular programming model) if you follow today's best parallel programming best practice. + + Website ------- [uob-hpc.github.io/BabelStream/](https://uob-hpc.github.io/BabelStream/)