UoB-HPC / BabelStream

STREAM, for lots of devices written in many programming models
Other
313 stars 109 forks source link

Cleanup CUDA, Reuse Memory, Add Serial Model, Cleaup Std Parallelism #202

Open gonzalobg opened 4 weeks ago

gonzalobg commented 4 weeks ago

Cleanup CUDA

Add Serial

By @tom91136 Good thing to have when comparing with other parallel programming models, mostly for syntax. This also makes us consistent with CloverLeaf, TeaLeaf, and miniBUDE.

Reuse Memory

This PR puts benchmarks in control of allocating the host memory used for verifying the results.

This enables benchmarks that use Unified Memory for the device allocations, to avoid the host-side allocation and just pass pointers to the device allocation to the benchmark driver.

Closes https://github.com/UoB-HPC/BabelStream/issues/128 .

Cleanup C++ Standard Parallelism

Merge the 3 implementations into one with different flags for data c++17, data c++23, and indices. Also annotate workarounds with a #define WORKAROUND and print whether the current implementation is not conforming. Adds support for AdaptiveCpp (CI not added yet; will be done later as part of removing hipSYCL).