[slimtensor] Add SizesAndStrides and dimension utility functions for slimtensor usage #16384
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Stack from ghstack (oldest at bottom):
This diff adds the
SizesAndStridesclass for efficiently storing tensor dimension sizes and strides, along with utility functions for computing element counts and storage requirements.Key components:
c10/macros/Macros.h- Branch prediction hint macros (SLIMTENSOR_LIKELY/UNLIKELY) for optimizing hot pathsutil/ArrayRefUtil.h- Re-exports ExecuTorch'sArrayRef,IntArrayRef, andmakeArrayRef; addstoVec()utility for converting ArrayRef to std::vectorc10/core/SizesAndStrides.h- Packed container for tensor sizes and strides:std::initializer_listoverloads for convenient initializationutil/SizeUtil.h- Size computation utilities:compute_numel()- compute total number of elementscompute_contiguous_strides()- compute row-major contiguous stridescompute_storage_nbytes()/compute_storage_nbytes_contiguous()- compute storage byte requirementsDifferential Revision: D89749336