launch#
Overloads#
launch(__submitter, __conf, _ExpArgs...), __args)#
-
template<typename ..._ExpArgs, typename ..._ActArgs, typename _Submitter, typename ..._Config, typename _Dimensions>
inline auto cuda::launch( - _Submitter &&__submitter,
- const kernel_config<_Dimensions, _Config...> &__conf,
- void (*__kernel)(kernel_config<_Dimensions, _Config...>, _ExpArgs...),
- _ActArgs&&... __args
Launch a kernel function with specified configuration and arguments.
Launches a kernel function on the specified stream and with specified configuration. Kernel function is a function with global annotation. Function might or might not accept the configuration as its first argument.
- Snippet
#include <cstdio> #include <cuda/launch> template <typename Configuration> __global__ void kernel(Configuration conf, unsigned int thread_to_print) { if (conf.dims.rank(cuda::thread, cuda::grid) == thread_to_print) { printf("Hello from the GPU\n"); } } void launch_kernel(cuda::stream_ref stream) { auto dims = cuda::make_hierarchy(cuda::block_dims<128>(), cuda::grid_dims(4)); auto config = cuda::make_config(dims, cuda::launch_cooperative()); cuda::launch(stream, config, kernel<decltype(config)>, 42); }
- Parameters:
stream – cuda::stream_ref to launch the kernel into
conf – configuration for this launch
kernel – kernel function to be launched
args – arguments to be passed into the kernel function
launch(__submitter, __conf, void(*__kernel)(_ExpArgs...), __args)#
-
template<typename ..._ExpArgs, typename ..._ActArgs, typename _Submitter, typename ..._Config, typename _Dimensions>
inline auto cuda::launch( - _Submitter &&__submitter,
- const kernel_config<_Dimensions, _Config...> &__conf,
- void (*__kernel)(_ExpArgs...),
- _ActArgs&&... __args
Launch a kernel function with specified configuration and arguments.
Launches a kernel function on the specified stream and with specified configuration. Kernel function is a function with global annotation. Function might or might not accept the configuration as its first argument.
- Snippet
#include <cstdio> #include <cuda/launch> template <typename Configuration> __global__ void kernel(Configuration conf, unsigned int thread_to_print) { if (conf.dims.rank(cuda::thread, cuda::grid) == thread_to_print) { printf("Hello from the GPU\n"); } } void launch_kernel(cuda::stream_ref stream) { auto dims = cuda::make_hierarchy(cuda::block_dims<128>(), cuda::grid_dims(4)); auto config = cuda::make_config(dims, cuda::launch_cooperative()); cuda::launch(stream, config, kernel<decltype(config)>, 42); }
- Parameters:
__stream – cuda::stream_ref to launch the kernel into
__conf – configuration for this launch
__kernel – kernel function to be launched
__args – arguments to be passed into the kernel function