12void CUDADeviceKernels::load(CUDADevice *device)
14 CUmodule cuModule = device->cuModule;
17 CUDADeviceKernel &kernel = kernels_[i];
24 const std::string function_name = std::string(
"kernel_gpu_") +
26 cuda_device_assert(device,
27 cuModuleGetFunction(&kernel.function, cuModule, function_name.c_str()));
29 if (kernel.function) {
30 cuda_device_assert(device, cuFuncSetCacheConfig(kernel.function, CU_FUNC_CACHE_PREFER_L1));
34 cuOccupancyMaxPotentialBlockSize(
35 &kernel.min_blocks, &kernel.num_threads_per_block, kernel.function,
NULL, 0, 0));
38 LOG(ERROR) <<
"Unable to load kernel " << function_name;
45const CUDADeviceKernel &CUDADeviceKernels::get(
DeviceKernel kernel)
const
47 return kernels_[(
int)kernel];
50bool CUDADeviceKernels::available(
DeviceKernel kernel)
const
52 return kernels_[(
int)kernel].function !=
nullptr;
#define CCL_NAMESPACE_END
const char * device_kernel_as_string(DeviceKernel kernel)
draw_view push_constant(Type::INT, "radiance_src") .push_constant(Type capture_info_buf storage_buf(1, Qualifier::READ, "ObjectBounds", "bounds_buf[]") .push_constant(Type draw_view int
@ DEVICE_KERNEL_INTEGRATOR_MEGAKERNEL