CMS 3D CMS Logo

Classes | Namespaces | Typedefs | Functions
memory.h File Reference
#include <type_traits>
#include <alpaka/alpaka.hpp>
#include "HeterogeneousCore/AlpakaInterface/interface/AllocatorPolicy.h"
#include "HeterogeneousCore/AlpakaInterface/interface/CachedBufAlloc.h"
#include "HeterogeneousCore/AlpakaInterface/interface/config.h"
#include "HeterogeneousCore/AlpakaInterface/interface/traits.h"

Go to the source code of this file.

Classes

struct  cms::alpakatools::detail::buffer_type< TDev, T, typename >
 
struct  cms::alpakatools::detail::buffer_type< TDev, T[]>
 
struct  cms::alpakatools::detail::buffer_type< TDev, T[N]>
 
struct  cms::alpakatools::detail::view_type< TDev, T, typename >
 
struct  cms::alpakatools::detail::view_type< TDev, T[]>
 
struct  cms::alpakatools::detail::view_type< TDev, T[N]>
 

Namespaces

 cms::alpakatools
 
 cms::alpakatools::detail
 

Typedefs

template<typename TDev , typename T , typename = std::enable_if_t<cms::alpakatools::is_device_v<TDev>>>
using cms::alpakatools::const_device_buffer = alpaka::ViewConst< device_buffer< TDev, T > >
 
template<typename T >
using cms::alpakatools::const_host_buffer = alpaka::ViewConst< host_buffer< T > >
 
template<typename TDev , typename T , typename = std::enable_if_t<cms::alpakatools::is_device_v<TDev>>>
using cms::alpakatools::device_buffer = typename detail::buffer_type< TDev, T >::type
 
template<typename TDev , typename T , typename = std::enable_if_t<cms::alpakatools::is_device_v<TDev>>>
using cms::alpakatools::device_view = typename detail::view_type< TDev, T >::type
 
template<typename T >
using cms::alpakatools::host_buffer = typename detail::buffer_type< DevHost, T >::type
 
template<typename T >
using cms::alpakatools::host_view = typename detail::view_type< DevHost, T >::type
 

Functions

template<typename T , typename TDev >
std::enable_if_t< is_device_v< TDev > and not std::is_array_v< T >, device_buffer< TDev, T > > cms::alpakatools::make_device_buffer (TDev const &device)
 
template<typename T , typename TDev >
std::enable_if_t< is_device_v< TDev > and cms::is_unbounded_array_v< T > and not std::is_array_v< std::remove_extent_t< T > >, device_buffer< TDev, T > > cms::alpakatools::make_device_buffer (TDev const &device, Extent extent)
 
template<typename T , typename TDev >
std::enable_if_t< is_device_v< TDev > and cms::is_bounded_array_v< T > and not std::is_array_v< std::remove_extent_t< T > >, device_buffer< TDev, T > > cms::alpakatools::make_device_buffer (TDev const &device)
 
template<typename T , typename TQueue >
std::enable_if_t< is_queue_v< TQueue > and not std::is_array_v< T >, device_buffer< alpaka::Dev< TQueue >, T > > cms::alpakatools::make_device_buffer (TQueue const &queue)
 
template<typename T , typename TQueue >
std::enable_if_t< is_queue_v< TQueue > and cms::is_unbounded_array_v< T > and not std::is_array_v< std::remove_extent_t< T > >, device_buffer< alpaka::Dev< TQueue >, T > > cms::alpakatools::make_device_buffer (TQueue const &queue, Extent extent)
 
template<typename T , typename TQueue >
std::enable_if_t< is_queue_v< TQueue > and cms::is_bounded_array_v< T > and not std::is_array_v< std::remove_extent_t< T > >, device_buffer< alpaka::Dev< TQueue >, T > > cms::alpakatools::make_device_buffer (TQueue const &queue)
 
template<typename T , typename TDev >
std::enable_if_t< not std::is_array_v< T >, device_view< TDev, T > > cms::alpakatools::make_device_view (TDev const &device, T &data)
 
template<typename T , typename TDev >
device_view< TDev, T[]> cms::alpakatools::make_device_view (TDev const &device, T *data, Extent extent)
 
template<typename T , typename TDev >
std::enable_if_t< cms::is_unbounded_array_v< T > and not std::is_array_v< std::remove_extent_t< T > >, device_view< TDev, T > > cms::alpakatools::make_device_view (TDev const &device, T &data, Extent extent)
 
template<typename T , typename TDev >
std::enable_if_t< cms::is_bounded_array_v< T > and not std::is_array_v< std::remove_extent_t< T > >, device_view< TDev, T > > cms::alpakatools::make_device_view (TDev const &device, T &data)
 
template<typename T >
std::enable_if_t< not std::is_array_v< T >, host_buffer< T > > cms::alpakatools::make_host_buffer ()
 
template<typename T >
std::enable_if_t< cms::is_unbounded_array_v< T > and not std::is_array_v< std::remove_extent_t< T > >, host_buffer< T > > cms::alpakatools::make_host_buffer (Extent extent)
 
template<typename T >
std::enable_if_t< cms::is_bounded_array_v< T > and not std::is_array_v< std::remove_extent_t< T > >, host_buffer< T > > cms::alpakatools::make_host_buffer ()
 
template<typename T , typename TPlatform >
std::enable_if_t< not std::is_array_v< T >, host_buffer< T > > cms::alpakatools::make_host_buffer ()
 
template<typename T , typename TPlatform >
std::enable_if_t< cms::is_unbounded_array_v< T > and not std::is_array_v< std::remove_extent_t< T > >, host_buffer< T > > cms::alpakatools::make_host_buffer (Extent extent)
 
template<typename T , typename TPlatform >
std::enable_if_t< cms::is_bounded_array_v< T > and not std::is_array_v< std::remove_extent_t< T > >, host_buffer< T > > cms::alpakatools::make_host_buffer ()
 
template<typename T , typename TQueue >
std::enable_if_t< is_queue_v< TQueue > and not std::is_array_v< T >, host_buffer< T > > cms::alpakatools::make_host_buffer (TQueue const &queue)
 
template<typename T , typename TQueue >
std::enable_if_t< is_queue_v< TQueue > and cms::is_unbounded_array_v< T > and not std::is_array_v< std::remove_extent_t< T > >, host_buffer< T > > cms::alpakatools::make_host_buffer (TQueue const &queue, Extent extent)
 
template<typename T , typename TQueue >
std::enable_if_t< is_queue_v< TQueue > and cms::is_bounded_array_v< T > and not std::is_array_v< std::remove_extent_t< T > >, host_buffer< T > > cms::alpakatools::make_host_buffer (TQueue const &queue)
 
template<typename T >
std::enable_if_t< not std::is_array_v< T >, host_view< T > > cms::alpakatools::make_host_view (T &data)
 
template<typename T >
host_view< T[]> cms::alpakatools::make_host_view (T *data, Extent extent)
 
template<typename T >
std::enable_if_t< cms::is_unbounded_array_v< T > and not std::is_array_v< std::remove_extent_t< T > >, host_view< T > > cms::alpakatools::make_host_view (T &data, Extent extent)
 
template<typename T >
std::enable_if_t< cms::is_bounded_array_v< T > and not std::is_array_v< std::remove_extent_t< T > >, host_view< T > > cms::alpakatools::make_host_view (T &data)