Layouts and Extents

View as Markdown

RAFT layout and extent types make array shape and memory layout explicit in NVIDIA cuVS public signatures.

raft::row_major

Source header: raft/core/mdspan_types.hpp

Matrix layout tag for row-major storage.

using cuda::std::layout_right;
using row_major = layout_right;

raft::col_major

Source header: raft/core/mdspan_types.hpp

Matrix layout tag for column-major storage.

using cuda::std::layout_left;
using col_major = layout_left;

raft::layout_c_contiguous

Source header: raft/core/mdspan_types.hpp

Layout tag for C-contiguous memory.

using cuda::std::layout_right;
using layout_c_contiguous = layout_right;

raft::layout_f_contiguous

Source header: raft/core/mdspan_types.hpp

Layout tag for Fortran-contiguous memory.

using cuda::std::layout_left;
using layout_f_contiguous = layout_left;

raft::layout_stride

Source header: raft/core/mdspan_types.hpp

Layout tag for strided memory.

using cuda::std::layout_stride;

raft::scalar_extent

Source header: raft/core/mdspan_types.hpp

Convenience extent alias for zero-dimensional scalar values.

template <typename IndexType>
using scalar_extent = cuda::std::extents<IndexType, 1>;

raft::matrix_extent

Source header: raft/core/mdspan_types.hpp

Convenience extent alias for two-dimensional matrices.

template <typename IndexType>
using matrix_extent = cuda::std::extents<IndexType,
raft::dynamic_extent,
raft::dynamic_extent>;

raft::vector_extent

Source header: raft/core/mdspan_types.hpp

Convenience extent alias for one-dimensional vectors.

template <typename IndexType>
using vector_extent = cuda::std::extents<IndexType,
raft::dynamic_extent>;

raft::extents

Source header: raft/core/mdspan_types.hpp

Generic extent descriptor for static and dynamic dimensions.

using cuda::std::extents;

raft::dynamic_extent

Source header: raft/core/mdspan_types.hpp

Sentinel used for dimensions whose size is known at runtime.

using cuda::std::dynamic_extent;