cuda::experimental::launch
Defined in include/cuda/experimental/__launch/launch.cuh
-
template<typename ...Args, typename ...Config, typename Dimensions, typename Kernel>
void cuda::experimental::launch(::cuda::stream_ref stream, const kernel_config<Dimensions, Config...> &conf, const Kernel &kernel, Args&&... args) Launch a kernel functor with specified configuration and arguments.
Launches a kernel functor object on the specified stream and with specified configuration. Kernel functor object is a type with device operator(). Functor might or might not accept the configuration as its first argument.
- Snippet
#include <cstdio> #include <cuda/experimental/launch.cuh> struct kernel { template <typename Configuration> __device__ void operator()(Configuration conf, unsigned int thread_to_print) { if (conf.dims.rank(cudax::thread, cudax::grid) == thread_to_print) { printf("Hello from the GPU\n"); } } }; void launch_kernel(cuda::stream_ref stream) { auto dims = cudax::make_hierarchy(cudax::block_dims<128>(), cudax::grid_dims(4)); auto confing = cudax::make_config(dims, cudax::launch_cooperative()); cudax::launch(stream, config, kernel(), 42); }
- Parameters
stream – cuda::stream_ref to launch the kernel into
conf – configuration for this launch
kernel – kernel functor to be launched
args – arguments to be passed into the kernel functor