code: def svm_empty(
      ctx, flags, shape, dtype, order="C", alignment=None, queue=None
  ):
      """Allocate an empty :class:`numpy.ndarray` of the given *shape*, *dtype*
      and *order*. (See :func:`numpy.empty` for the meaning of these arguments.)
      The array will be allocated in shared virtual memory belonging
      to *ctx*.
  
      :arg ctx: a :class:`Context`
      :arg flags: a combination of flags from :class:`svm_mem_flags`.
      :arg alignment: the number of bytes to which the beginning of the memory
          is aligned. Defaults to the :attr:`numpy.dtype.itemsize` of *dtype*.
  
      :returns: a :class:`numpy.ndarray` whose :attr:`numpy.ndarray.base` attribute
          is a :class:`SVMAllocation`.
  
      To pass the resulting array to an OpenCL kernel or :func:`enqueue_copy`, you
      will likely want to wrap the returned array in an :class:`SVM` tag.
  
      .. versionadded:: 2016.2
  
      .. versionchanged:: 2022.2
  
          *queue* argument added.
      """
  
      dtype = np.dtype(dtype)
  
      try:
          s = 1
          for dim in shape:
              s *= dim
      except TypeError:
          admissible_types = (int, np.integer)
  
          if not isinstance(shape, admissible_types):
              raise TypeError(
                  "shape must either be iterable or "
                  "castable to an integer"
              )
          s = shape
          shape = (shape,)
  
      itemsize = dtype.itemsize
      nbytes = s * itemsize
  
      from pyopencl.compyte.array import (
          c_contiguous_strides,
          f_contiguous_strides,
      )
  
      if order in "fF":
          strides = f_contiguous_strides(itemsize, shape)
      elif order in "cC":
          strides = c_contiguous_strides(itemsize, shape)
      else:
          raise ValueError("order not recognized: %s" % order)
  
      descr = dtype.descr
  
      interface = {
          "version": 3,
          "shape": shape,
          "strides": strides,
      }
  
      if len(descr) == 1:
          interface["typestr"] = descr[0][1]
      else:
          interface["typestr"] = "V%d" % itemsize
          interface["descr"] = descr
  
      if alignment is None:
          alignment = itemsize
  
      svm_alloc = _OverriddenArrayInterfaceSVMAllocation(
          ctx,
          nbytes,
          alignment,
          flags,
          _interface=interface,
          queue=queue,
      )
      return np.asarray(svm_alloc)
  
imports: from sys import intern
  from warnings import warn
  from typing import Any, Dict, List, Optional, Sequence, Tuple, Union
  from pyopencl.version import VERSION, VERSION_STATUS, VERSION_TEXT
  import pyopencl.cltypes
  import logging
  import os
  import numpy
  import sys
  from pyopencl._cl import get_cl_header_version, program_kind, status_code, platform_info, device_type, device_info, device_topology_type_amd, device_fp_config, device_mem_cache_type, device_local_mem_type, device_exec_capabilities, device_svm_capabilities, command_queue_properties, context_info, gl_context_info, context_properties, command_queue_info, queue_properties, mem_flags, svm_mem_flags, channel_order, channel_type, mem_object_type, mem_info, image_info, pipe_info, pipe_properties, addressing_mode, filter_mode, sampler_info, sampler_properties, map_flags, program_info, program_build_info, program_binary_type, kernel_info, kernel_arg_info, kernel_arg_address_qualifier, kernel_arg_access_qualifier, kernel_arg_type_qualifier, kernel_work_group_info, kernel_sub_group_info, event_info, command_type, command_execution_status, profiling_info, mem_migration_flags, device_partition_property, device_affinity_domain, device_atomic_capabilities, device_device_enqueue_capabilities, version_bits, khronos_vendor_id, Error, MemoryError, LogicError, RuntimeError, Platform, get_platforms, Device, Context, CommandQueue, LocalMemory, MemoryObjectHolder, MemoryObject, MemoryMap, Buffer, _Program, Kernel, Event, wait_for_events, NannyEvent, enqueue_nd_range_kernel, _enqueue_marker, _enqueue_read_buffer, _enqueue_write_buffer, _enqueue_copy_buffer, _enqueue_read_buffer_rect, _enqueue_write_buffer_rect, _enqueue_copy_buffer_rect, _enqueue_read_image, _enqueue_copy_image, _enqueue_write_image, _enqueue_copy_image_to_buffer, _enqueue_copy_buffer_to_image, have_gl, ImageFormat, get_supported_image_formats, Image, Sampler, Pipe
  import inspect
label_desc: Use image node_id 19 for calling a global function with example usage: svm_empty(ctx, flags, shape, dtype, order, alignment, queue) and returns: np