GPUKernelSizeOptimizerSvc Node1 GPUKernelSizeOptimizerSvc - m_dynpar_support - m_coopgroup_support - m_kernel_map - m_kernelFiles - m_outputSizes - m_outputFile + GPUKernelSizeOptimizerSvc() + register_kernels() + get_launch_configuration() + can_use_cooperative _groups() + can_use_dynamic_parallelism() + should_use_minimal _kernel_sizes() + initialize() + initialize_CUDA() + finalize() - get_GPU_usage() Node2 extends< AthService, IGPUKernelSizeOptimizerSvc > Node2->Node1 Node3 CaloGPUCUDAInitialization + handle() + ~CaloGPUCUDAInitialization() # initialize_non_CUDA() # initialize_CUDA() # initialize() Node3->Node1 Node4 IIncidentListener Node4->Node3