|
|
Go to the documentation of this file. 1 #ifndef HeterogeneousCore_CUDAUtilities_launch_h
2 #define HeterogeneousCore_CUDAUtilities_launch_h
6 #include <cuda_runtime.h>
66 template <
typename... Args>
68 static constexpr
size_t arguments_size =
sizeof...(Args);
79 template <
typename Tuple>
88 template <
typename Tuple>
101 template <
typename F,
typename... Args>
102 #if __cplusplus >= 201703L
103 std::enable_if_t<std::is_invocable_r<
void,
F, Args&&...>
::value>
105 std::enable_if_t<std::is_void<std::result_of_t<
F && (Args && ...)> >
::value>
109 typename function_type::argument_type_tuple args_copy(
args...);
111 constexpr
auto size = function_type::arguments_size;
112 void const* pointers[
size];
126 template <
typename F,
typename... Args>
127 #if __cplusplus >= 201703L
128 std::enable_if_t<std::is_invocable_r<
void,
F, Args&&...>
::value>
130 std::enable_if_t<std::is_void<std::result_of_t<
F && (Args && ...)> >
::value>
134 typename function_type::argument_type_tuple args_copy(
args...);
136 constexpr
auto size = function_type::arguments_size;
137 void const* pointers[
size];
147 #endif // HeterogeneousCore_CUDAUtilities_launch_h
void launch_cooperative(void(*kernel)(), LaunchParameters config)
static uInt32 F(BLOWFISH_CTX *ctx, uInt32 x)
LaunchParameters(int gridDim, int blockDim, size_t sharedMem=0, cudaStream_t stream=nullptr)
const std::complex< double > I
void launch(void(*kernel)(), LaunchParameters config)
cudaStream_t T uint32_t const T *__restrict__ const uint32_t *__restrict__ uint32_t int cudaStream_t Func __host__ __device__ V value
void operator()(void const *ptrs[], Tuple const &t)
LaunchParameters(dim3 gridDim, dim3 blockDim, size_t sharedMem=0, cudaStream_t stream=nullptr)
#define cudaCheck(ARG,...)
typename std::tuple_element< i, argument_type_tuple >::type argument_type
__host__ __device__ VT uint32_t size
TEMPL(T2) struct Divides void
std::tuple< Args... > argument_type_tuple
void operator()(void const *ptrs[], Tuple const &t)
Namespace of DDCMS conversion namespace.