def read(self, ids: torch.Tensor = None):
        """Read the feature by index.
        The returned tensor will be on CPU.
        Parameters
        ----------
        ids : torch.Tensor
            The index of the feature. Only the specified indices of the
            feature are read.
        Returns
        -------
        torch.Tensor
            The read feature.
        """
        if ids is None:
            return self._tensor
        elif torch.ops.graphbolt.detect_io_uring():
            try:
                return self._ondisk_npy_array.index_select(ids).wait()
            except RuntimeError:
                raise IndexError
        else:
            return index_select(self._tensor, ids)
Read the feature by index.
        The returned tensor will be on CPU.
        Parameters
        ----------
        ids : torch.Tensor
            The index of the feature. Only the specified indices of the
            feature are read.
        Returns
        -------
        torch.Tensor
            The read feature.
        
python/dgl/graphbolt/impl/torch_based_feature_store.py