code: def elementwise(in_params, out_params, operation, name, **kwargs):
      """Creates an elementwise kernel function.
  
      This function uses :func:`~chainer.backends.cuda.memoize` to cache the
      kernel object, i.e. the resulting kernel object is cached for each argument
      combination and CUDA device.
  
      The arguments are the same as those for
      :class:`cupy.ElementwiseKernel`, except that the ``name`` argument is
      mandatory.
  
      """
      check_cuda_available()
      return cupy.ElementwiseKernel(
          in_params, out_params, operation, name, **kwargs
      )
  
imports: import binascii
  import functools
  import itertools
  import os
  import threading
  import time
  import typing
  import warnings
  import numpy
  import six
  import chainer
  from chainer import _backend
  from chainer.backends import _cpu
  from chainer.backends import intel64
  from chainer.configuration import config
  from chainer import types
  import chainerx
label_desc: Use image node_id 14 for calling a global function with example usage: elementwise(in_params, out_params, operation, name) and returns: cupy