code: def _init_handles(self):
      if self.module is not None:
          return
      device = driver.get_current_device()
      # not enough shared memory to run the kernel
      max_shared = driver.utils.get_device_properties(device)[
          "max_shared_mem"
      ]
      if self.metadata.shared > max_shared:
          raise OutOfResources(
              self.metadata.shared, max_shared, "shared memory"
          )
      # TODO: n_regs, n_spills should be metadata generated when calling `ptxas`
      (
          self.module,
          self.function,
          self.n_regs,
          self.n_spills,
      ) = driver.utils.load_binary(
          self.name, self.kernel, self.metadata.shared, device
      )
  
imports: from __future__ import annotations
  import hashlib
  import json
  from .._C.libtriton import get_env_vars, ir
  from ..backends import backends
  from ..None import __version__
  from ..runtime.autotuner import OutOfResources
  from ..runtime.cache import get_cache_manager
  from ..runtime.driver import driver
  from ..backends.nvidia.compiler import InfoFromBackendForTensorMap
  from dataclasses import dataclass
  from .code_generator import ast_to_ttir
  from pathlib import Path
  import re
  import functools
  import os
label_desc: Use image node_id 2 for calling the CompiledKernel obj's underlying member method code with example usage: obj._init_handles() without return types