Go to the source code of this file.
◆ VISKORES_DEVICE_ADAPTER_ANY
#define VISKORES_DEVICE_ADAPTER_ANY 127 |
◆ VISKORES_DEVICE_ADAPTER_CUDA
#define VISKORES_DEVICE_ADAPTER_CUDA 2 |
◆ VISKORES_DEVICE_ADAPTER_KOKKOS
#define VISKORES_DEVICE_ADAPTER_KOKKOS 5 |
◆ VISKORES_DEVICE_ADAPTER_OPENMP
#define VISKORES_DEVICE_ADAPTER_OPENMP 4 |
◆ VISKORES_DEVICE_ADAPTER_SERIAL
#define VISKORES_DEVICE_ADAPTER_SERIAL 1 |
◆ VISKORES_DEVICE_ADAPTER_TBB
#define VISKORES_DEVICE_ADAPTER_TBB 3 |
◆ VISKORES_DEVICE_ADAPTER_UNDEFINED
#define VISKORES_DEVICE_ADAPTER_UNDEFINED -1 |
◆ VISKORES_INVALID_DEVICE_ADAPTER
#define VISKORES_INVALID_DEVICE_ADAPTER |
( |
|
Name, |
|
|
|
Id |
|
) |
| |
Value:
{ \
namespace cont \
{ \
struct VISKORES_ALWAYS_EXPORT DeviceAdapterTag##Name : DeviceAdapterId \
{ \
constexpr DeviceAdapterTag##Name() \
{ \
} \
static constexpr bool IsEnabled = false; \
}; \
template <> \
struct DeviceAdapterTraits<viskores::cont::DeviceAdapterTag##Name> \
{ \
{ \
} \
}; \
} \
}
Marks the tag named viskores::cont::DeviceAdapterTagName and associated structures as invalid to use.
Always use this macro (in the base namespace) when creating a device adapter.
◆ VISKORES_IS_DEVICE_ADAPTER_TAG
#define VISKORES_IS_DEVICE_ADAPTER_TAG |
( |
|
tag | ) |
|
Value: static_assert(std::is_base_of<viskores::cont::DeviceAdapterId, tag>::value && \
!std::is_same<viskores::cont::DeviceAdapterId, tag>::value, \
"Provided type is not a valid Viskores device adapter tag.")
Checks that the argument is a proper device adapter tag.
This is a handy concept check for functions and classes to make sure that a template argument is actually a device adapter tag. (You can get weird errors elsewhere in the code when a mistake is made.)
◆ VISKORES_MAX_DEVICE_ADAPTER_ID
#define VISKORES_MAX_DEVICE_ADAPTER_ID 8 |
◆ VISKORES_VALID_DEVICE_ADAPTER
#define VISKORES_VALID_DEVICE_ADAPTER |
( |
|
Name, |
|
|
|
Id |
|
) |
| |
Value:
{ \
namespace cont \
{ \
struct VISKORES_ALWAYS_EXPORT DeviceAdapterTag##Name : DeviceAdapterId \
{ \
constexpr DeviceAdapterTag##Name() \
{ \
} \
static constexpr bool IsEnabled = true; \
}; \
template <> \
struct DeviceAdapterTraits<viskores::cont::DeviceAdapterTag##Name> \
{ \
{ \
} \
}; \
} \
}
Creates a tag named viskores::cont::DeviceAdapterTagName and associated MPL structures to use this tag.
Always use this macro (in the base namespace) when creating a device adapter.