code: def host_memory_allocation(nbytes: int) -> memoryview:
      """Allocate host memory using NumPy
  
      This is an alternative to `bytearray` to avoid memory initialization cost.
      A `bytearray` is zero-initialized using `calloc`, which we don't need.
      Additionally, `numpy.empty` both skips the zero-initialization and uses
      hugepages when available <https://github.com/numpy/numpy/pull/14216>.
  
      Parameters
      ----------
      nbytes : int
          Size of the new host allocation in bytes.
  
      Return
      ------
      memoryview
          The new host allocation.
      """
      return numpy.empty((nbytes,), dtype="u1").data
  
imports: from __future__ import annotations
  import math
  import pickle
  import weakref
  from types import SimpleNamespace
  from typing import Any, Dict, Literal, Mapping, Optional, Sequence, Tuple
  import numpy
  from typing_extensions import Self
  import rmm
  import cudf
  from cudf.core.abc import Serializable
  from cudf.utils.string import format_bytes
label_desc: Use image node_id 1 for calling a global function with example usage: host_memory_allocation(nbytes) and returns: numpy