code: def hash(ids, seed, *, threads_per_block=128, num_blocks=128):
      out = _alloc((ids.shape[0], 4), dtype="uint32", zeros=True)
  
      # sizeof(uint32_t) * 4
      out_size = 4 * 4
      in_size = 8  # sizeof(uint64_t)
      # T = ids.shape[0]
      hash_data_kernel(
          (num_blocks,),
          (threads_per_block,),
          (out, ids, out_size, in_size, ids.shape[0], seed),
      )
      return out
  
imports: import operator
  import re
  from collections import defaultdict
  from functools import reduce
  from pathlib import Path
  from typing import Callable, Optional, Tuple
  import numpy
  from ..compat import cupy, has_cupy_gpu
label_desc: Use image node_id 29 for calling a global function with example usage: hash(ids, seed) and returns: out