code: def compile_kernel(self, instance, verbose):
          
          logging.debug('compile_kernel ' + instance.name)
  
          #compile kernel_string into device func
          func = None
          try:
              func = self.dev.compile(instance.name, instance.kernel_string)
          except Exception as e:
              #compiles may fail because certain kernel configurations use too
              #much shared memory for example, the desired behavior is to simply
              #skip over this configuration and try the next one
              if "uses too much shared data" in str(e):
                  logging.debug('compile_kernel failed due to kernel using too much shared memory')
                  if verbose:
                      print("skipping config", instance.name, "reason: too much shared memory used")
              else:
                  logging.debug('compile_kernel failed due to error: ' + str(e))
                  print("Error while compiling:", instance.name)
                  raise e
          return func
docs: compile the kernel for this specific instance