|
ATLAS Offline Software
|
Go to the documentation of this file.
7 #ifndef CALORECGPU_IGPUKERNELSIZEOPTIMIZER_H
8 #define CALORECGPU_IGPUKERNELSIZEOPTIMIZER_H
41 const int blocksize_hint,
42 const int gridsize_hint,
43 const int max_total_threads)
45 this->
register_kernels(kernel_name, 1, &kernel, &blocksize_hint, &gridsize_hint, &max_total_threads, 0);
57 const int * blocksize_hints,
58 const int * gridsize_hints,
59 const int * max_total_threads,
65 const int dynamic_memory = 0)
const = 0;
virtual bool can_use_cooperative_groups() const =0
Whether the device + environment in use support cooperative groups.
virtual ~IGPUKernelSizeOptimizer()=default
virtual void register_kernel(const std::string &kernel_name, void *kernel, const int blocksize_hint, const int gridsize_hint, const int max_total_threads)
Register a kernel with a specific name.
virtual CUDAKernelLaunchConfiguration get_launch_configuration(const std::string &name, const int number=0, const int dynamic_memory=0) const =0
Retrieve the (hopefully optimal) kernel launch configuration.
virtual bool use_minimal_kernel_sizes() const
Whether to avoid oversizing kernels and instead (if possible) launch kernels with the exact number of...
virtual void register_kernels(const std::string &tool_name, const int number, void **kernels, const int *blocksize_hints, const int *gridsize_hints, const int *max_total_threads, const int offset=0)=0
Register a set of kernels that can be referred back to with a name and a number.
virtual bool can_use_dynamic_parallelism() const =0
Whether the device + environment in use support dynamic parallelism.
Interface for GPU kernel size optimization (allowing adjustment of kernel sizes to the properties of ...