allow KM._launch_kernel to be overridden in subclasses