|
RAJA
RAJA provides a collection of platform portability abstractions for C++ HPC applications.
|
Pointer class specialized for Struct of Array data layout allocated via RAJA basic_mempools. More...
#include <SoAPtr.hpp>
Public Types | |
| using | value_type = T |
| template<typename rhs_accessor > | |
| using | rebind_accessor = SoAPtr< T, mempool, rhs_accessor > |
Public Member Functions | |
| SoAPtr ()=default | |
| SoAPtr (SoAPtr const &)=default | |
| SoAPtr (SoAPtr &&)=default | |
| SoAPtr & | operator= (SoAPtr const &)=default |
| SoAPtr & | operator= (SoAPtr &&)=default |
| SoAPtr (size_t size) | |
| template<typename rhs_accessor , std::enable_if_t<!std::is_same< accessor, rhs_accessor >::value > * = nullptr> | |
| RAJA_HOST_DEVICE | SoAPtr (SoAPtr< value_type, mempool, rhs_accessor > const &rhs) |
| SoAPtr & | allocate (size_t size) |
| SoAPtr & | deallocate () |
| RAJA_HOST_DEVICE bool | allocated () const |
| constexpr RAJA_HOST_DEVICE value_type | get (size_t i) const |
| constexpr RAJA_HOST_DEVICE void | set (size_t i, value_type val) |
Friends | |
| template<typename , typename , typename > | |
| class | SoAPtr |
Pointer class specialized for Struct of Array data layout allocated via RAJA basic_mempools.
This is useful for creating a vectorizable data layout and getting coalesced memory accesses or avoiding shared memory bank conflicts in cuda.
| using RAJA::detail::SoAPtr< T, mempool, accessor >::value_type = T |
| using RAJA::detail::SoAPtr< T, mempool, accessor >::rebind_accessor = SoAPtr<T, mempool, rhs_accessor> |
|
default |
|
default |
|
default |
|
inlineexplicit |
|
inlineexplicit |
|
default |
|
default |
|
inline |
|
inline |
|
inline |
|
inlineconstexpr |
|
inlineconstexpr |
|
friend |