code: def get_dot_kernel(dtype_out, dtype_a, dtype_b):
      return ReductionKernel(
          dtype_out,
          neutral="0",
          reduce_expr="a+b",
          map_expr="a[i]*b[i]",
          arguments="const %(tp_a)s *a, const %(tp_b)s *b"
          % {
              "tp_a": dtype_to_ctype(dtype_a),
              "tp_b": dtype_to_ctype(dtype_b),
          },
          keep=True,
      )
  
file_path: pycuda/pycuda/reduction.py
imports: from pycuda.tools import context_dependent_memoize
  from pycuda.tools import dtype_to_ctype
  import numpy
label_desc: Use image node_id 7 for calling a global function with example usage: get_dot_kernel(dtype_out, dtype_a, dtype_b) and returns: ReductionKernel