class_docstr: Schedule for all the stages.
class_docstr_tok: ["Schedule","for","all","the","stages","."]
docstr: Create a cache read of original tensor for readers.
  
  This will mutate the body of the readers.
  A new cache stage will be created for the tensor.
  Call this before doing any split/fuse schedule.
  
  Parameters
  ----------
  tensor : Tensor
      The tensor to be cached.
  scope : str
      The scope of cached
  readers : list of Tensor or Operation
      The readers to read the cache.
  
  Returns
  -------
  cache : Tensor
      The created cache tensor.
code: def cache_read(self, tensor, scope, readers):
      """Create a cache read of original tensor for readers.
  
      This will mutate the body of the readers.
      A new cache stage will be created for the tensor.
      Call this before doing any split/fuse schedule.
  
      Parameters
      ----------
      tensor : Tensor
          The tensor to be cached.
      scope : str
          The scope of cached
      readers : list of Tensor or Operation
          The readers to read the cache.
  
      Returns
      -------
      cache : Tensor
          The created cache tensor.
      """
      if isinstance(readers, (_tensor.Tensor, _tensor.Operation)):
          readers = [readers]
      readers = [
          t.op if isinstance(t, _tensor.Tensor) else t for t in readers
      ]
      return _ffi_api.ScheduleCacheRead(self, tensor, scope, readers)
  
imports: import collections
  import inspect
  from typing import Callable, List
  import tvm._ffi
  from tvm._ffi.base import string_types
  from tvm.ir import container
  from tvm.runtime import Object, convert
  from tvm.tir import Buffer, IndexMap, IterVar, Var
  from .None import _ffi_api
  from .None import tensor
label_desc: Use image node_id 4 for calling the Schedule obj's underlying member method code with example usage: obj.cache_read(tensor, scope, readers) and returns: _ffi_api