code: def read_to_gpu_mmap(fd, sz, gpubuf):
      with Timing("gpu copyin: ", lambda x: f", {sz/x:.2f} GB/s"):
          with Timing("mmfd:       ", lambda x: f", {sz/x:.2f} GB/s"):
              buf = mmap.mmap(
                  fd, sz, flags=mmap.MAP_SHARED | mmap.MAP_POPULATE
              )  # |MAP_LOCKED)
          dev.allocator._copyin_async(gpubuf, from_mv(buf), sz)
          dev.synchronize()
  
file_path: tinygrad/extra/disk_read_speed.py
imports: import os, ctypes, ctypes.util, io, mmap
  from tinygrad import Tensor, dtypes, Device
  from tinygrad.helpers import Timing, from_mv
  from tinygrad.runtime.ops_hip import HIPDevice
label_desc: Use image node_id 3 for calling a global function with example usage: read_to_gpu_mmap(fd, sz, gpubuf) without return types