[libcxx-commits] [libcxx] [libcxxabi] Adding Separate OpenMP Offloading Backend to `libcxx/include/__algorithm/pstl_backends` (PR #66968)

Tom Lin via libcxx-commits libcxx-commits at lists.llvm.org
Tue Dec 12 16:14:15 PST 2023


tom91136 wrote:

For context, here's a list of StdPar apps that, with just a few more changes, would offload nicely:

UoB [BabelStream](https://github.com/UoB-HPC/BabelStream):
 * `copy`
 * `fill`
 * `for_each_n`
 * `transform`
 * `transform_reduce`
 
UoB [TeaLeaf](https://github.com/UoB-HPC/TeaLeaf):
 * `copy`
 * `fill`
 * `for_each`
 * `transform_reduce`
 
UoB [CloverLeaf](https://github.com/UoB-HPC/CloverLeaf):
 * `for_each`
 * `transform_reduce`
 
UoB [miniBUDE](https://github.com/UoB-HPC/miniBUDE/tree/v2/src/std-indices):
 * `for_each`
 
LLNL [LULESH](https://github.com/LLNL/LULESH/tree/2.0.2-dev/stdpar):
 * `copy`
 * `any_of`
 * `for_each_n`
 * `transform`
 * `transform_reduce`

I believe the current PR has the following:
 * [x] `fill`
 * [ ] `copy`
 * [x] `for_each`*
 * [ ] `for_each_n`
 * [x] `transform`*
 * [ ] `transform_reduce`*
   - Missing custom reduction, and a potential OMP/std behaviour mismatch on the value identities 
 * [x] `any_of`*

*Missing support for non-memory backed iterators (i.e std::ranges::view, or custom "counting" iterators like C++20 iota) 


https://github.com/llvm/llvm-project/pull/66968


More information about the libcxx-commits mailing list