Our great sponsors
-
CppCoreGuidelines
The C++ Core Guidelines are a set of tried-and-true guidelines, rules, and best practices about coding in C++
-
InfluxDB
Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.
-
CuTeLib
Discontinued CUDA Template Library provides simple, typesafe, performant constructs for C++ CUDA projects
-
WorkOS
The modern identity platform for B2B SaaS. The APIs are flexible and easy-to-use, supporting authentication, user identity, and complex enterprise features like SSO and SCIM provisioning.
Here ist the explanation: https://isocpp.github.io/CppCoreGuidelines/CppCoreGuidelines#r3-a-raw-pointer-a-t-is-non-owning
I believe most of these performance portability libraries have associated memory manager projects. For example, RAJA has CHAI. I would use those managed array classes.
If you want something like thrust:: device_vector, that also supports intel GPUs via SYCL (AMD has rocThrust but no intel equivalent AFAIK), checkout our project https://github.com/wdmapp/gtensor/. It also has multi-d arrays and lazy evaluation of complex array expressions. and experimental cross vendor gpu BLAS and FFT with a nicer interface.
Have you seen this? https://gitlab.com/unigehpfs/stlbm
I am building a similarly library, including copy and streams and so on. Check it out https://github.com/anders-wind/CuTeLib