cuda::experimental::launch
Defined in include/cuda/experimental/__launch/launch.cuh
-
template<typename ..._ExpArgs, typename ..._ActArgs, typename _Submitter, typename ..._Config, typename _Dimensions>
inline auto cuda::experimental::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/experimental/launch.cuh> template <typename Configuration> __global__ void kernel(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 config = cudax::make_config(dims, cudax::launch_cooperative()); cudax::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