code: def _detect_vulkan(dev: Device) -> Target:
      f_get_target_property = get_global_func(
          "device_api.vulkan.get_target_property"
      )
      return Target(
          {
              "kind": "vulkan",
              "max_threads_per_block": dev.max_threads_per_block,
              "max_shared_memory_per_block": dev.max_shared_memory_per_block,
              "thread_warp_size": dev.warp_size,
              "supports_float16": f_get_target_property(
                  dev, "supports_float16"
              ),
              "supports_int16": f_get_target_property(
                  dev, "supports_int16"
              ),
              "supports_int8": f_get_target_property(
                  dev, "supports_int8"
              ),
              "supports_16bit_buffer": f_get_target_property(
                  dev, "supports_16bit_buffer"
              ),
          }
      )
  
file_path: tvm/python/tvm/target/detect_target.py
imports: from typing import Union
  from .None import Target
  from .._ffi import get_global_func
  from .._ffi.runtime_ctypes import Device
  from ..runtime.ndarray import device
label_desc: Use image node_id 4 for calling a global function with example usage: _detect_vulkan(dev) and returns: Target