linalg::CoopMat<T, MemoryScope S, int M, int N, linalg.CoopMatMatrixUse R>.Store

Description

Stores the cooperative matrix into a byte address buffer.

Signature

/// Requires Capability Set 1:
void linalg::CoopMat<T, MemoryScope S, int M, int N, linalg.CoopMatMatrixUseR>.Store<linalg.CoopMatMatrixLayoutmatrixLayout>(
    RWByteAddressBuffer buffer,
    uint element,
    uint stride)
    where T : ICoopElement;

/// Requires Capability Set 2:
void linalg::CoopMat<T, MemoryScope S, int M, int N, linalg.CoopMatMatrixUseR>.Store<linalg.CoopMatMatrixLayoutmatrixLayout, L>(
    RWStructuredBuffer<T, L> buffer,
    uint element,
    uint stride)
    where L : IBufferDataLayout
    where T : ICoopElement;

/// Requires Capability Set 2:
void linalg::CoopMat<T, MemoryScope S, int M, int N, linalg.CoopMatMatrixUseR>.Store<linalg.CoopMatMatrixLayoutmatrixLayout>(
    Ptr<T, Access.ReadWrite, AddressSpace.Device, DefaultDataLayout> buffer,
    uint element,
    uint stride)
    where T : ICoopElement;

/// Requires Capability Set 2:
void linalg::CoopMat<T, MemoryScope S, int M, int N, linalg.CoopMatMatrixUseR>.Store<linalg.CoopMatMatrixLayoutmatrixLayout, int V>(
    T[V] data,
    uint element,
    uint stride)
    where T : ICoopElement;

/// Requires Capability Set 2:
void linalg::CoopMat<T, MemoryScope S, int M, int N, linalg.CoopMatMatrixUseR>.Store<linalg.CoopMatMatrixLayoutmatrixLayout>(
    Ptr<T, Access.ReadWrite, AddressSpace.GroupShared, DefaultDataLayout> data,
    uint stride)
    where T : ICoopElement;

/// Requires Capability Set 2:
void linalg::CoopMat<T, MemoryScope S, int M, int N, linalg.CoopMatMatrixUseR>.Store<linalg.CoopMatMatrixLayoutmatrixLayout, U, int V>(
    U[V] data,
    uint element,
    uint stride)
    where T : ICoopElement;

/// Requires Capability Set 2:
void linalg::CoopMat<T, MemoryScope S, int M, int N, linalg.CoopMatMatrixUseR>.Store<linalg.CoopMatMatrixLayoutmatrixLayout, U>(
    Ptr<U, Access.ReadWrite, AddressSpace.GroupShared, DefaultDataLayout> data,
    uint stride)
    where T : ICoopElement;

/// Requires Capability Set 3:
void linalg::CoopMat<T, MemoryScope S, int M, int N, linalg.CoopMatMatrixUseR>.Store<linalg.CoopMatMatrixLayoutmatrixLayout, U, int V, int L>(
    vector<U, L>[V] data,
    uint element,
    uint stride)
    where T : ICoopElement;

/// Requires Capability Set 4:
void linalg::CoopMat<T, MemoryScope S, int M, int N, linalg.CoopMatMatrixUseR>.Store<uint Dim, linalg.CoopMatClampModeClampMode>(
    RWByteAddressBuffer buffer,
    uint element,
    linalg.TensorLayout<Dim, ClampMode> tensorLayout)
    where T : ICoopElement;

/// Requires Capability Set 4:
void linalg::CoopMat<T, MemoryScope S, int M, int N, linalg.CoopMatMatrixUseR>.Store<uint Dim, linalg.CoopMatClampModeClampMode, L>(
    RWStructuredBuffer<T, L> buffer,
    uint element,
    linalg.TensorLayout<Dim, ClampMode> tensorLayout)
    where L : IBufferDataLayout
    where T : ICoopElement;

/// Requires Capability Set 4:
void linalg::CoopMat<T, MemoryScope S, int M, int N, linalg.CoopMatMatrixUseR>.Store<uint Dim, linalg.CoopMatClampModeClampMode, P>(
    Ptr<P, Access.ReadWrite, AddressSpace.Device, DefaultDataLayout> dest,
    linalg.TensorLayout<Dim, ClampMode> tensorLayout)
    where T : ICoopElement;

/// Requires Capability Set 4:
void linalg::CoopMat<T, MemoryScope S, int M, int N, linalg.CoopMatMatrixUseR>.Store<uint Dim, linalg.CoopMatClampModeClampMode, uint DimView, bool HasDimensions, uint p0, uint p1, uint p2, uint p3, uint p4>(
    RWByteAddressBuffer buffer,
    uint element,
    linalg.TensorLayout<Dim, ClampMode> tensorLayout,
    linalg.TensorView<DimView, HasDimensions, p0, p1, p2, p3, p4> tensorView)
    where T : ICoopElement;

/// Requires Capability Set 4:
void linalg::CoopMat<T, MemoryScope S, int M, int N, linalg.CoopMatMatrixUseR>.Store<uint Dim, linalg.CoopMatClampModeClampMode, uint DimView, bool HasDimensions, uint p0, uint p1, uint p2, uint p3, uint p4, L>(
    RWStructuredBuffer<T, L> buffer,
    uint element,
    linalg.TensorLayout<Dim, ClampMode> tensorLayout,
    linalg.TensorView<DimView, HasDimensions, p0, p1, p2, p3, p4> tensorView)
    where L : IBufferDataLayout
    where T : ICoopElement;

/// Requires Capability Set 4:
void linalg::CoopMat<T, MemoryScope S, int M, int N, linalg.CoopMatMatrixUseR>.Store<uint Dim, linalg.CoopMatClampModeClampMode, uint DimView, bool HasDimensions, uint p0, uint p1, uint p2, uint p3, uint p4, P>(
    Ptr<P, Access.ReadWrite, AddressSpace.Device, DefaultDataLayout> dest,
    linalg.TensorLayout<Dim, ClampMode> tensorLayout,
    linalg.TensorView<DimView, HasDimensions, p0, p1, p2, p3, p4> tensorView)
    where T : ICoopElement;

Generic Parameters

matrixLayout : linalg.CoopMatMatrixLayout

L: IBufferDataLayout = DefaultDataLayout

V : int

U

L : int

Dim : uint

ClampMode : linalg.CoopMatClampMode

P

DimView : uint

HasDimensions : bool

p0 : uint = 5

p1 : uint = 5

p2 : uint = 5

p3 : uint = 5

p4 : uint = 5

Parameters

buffer : RWByteAddressBuffer

The RWByteAddressBuffer to store the matrix into.

element : uint

The starting element index in the buffer to store the matrix into.

stride : uint

The stride in elements between consecutive rows (for row major layout) or columns (for column major layout) and must be a multiple of 8 for __half element type or multiple of 4 for float element type. (i.e., multiple of 16 bytes in both cases)

buffer : RWStructuredBuffer<T, L>

The RWByteAddressBuffer to store the matrix into.

buffer : Ptr<T, Access.ReadWrite, AddressSpace.Device, DefaultDataLayout>

The RWByteAddressBuffer to store the matrix into.

data : T [ V ]

data : Ptr<T, Access.ReadWrite, AddressSpace.GroupShared, DefaultDataLayout>

data : U [ V ]

data : Ptr<U, Access.ReadWrite, AddressSpace.GroupShared, DefaultDataLayout>

data : vector<U, L> [ V ]

tensorLayout : linalg.TensorLayout<Dim, ClampMode>

dest : Ptr<P, Access.ReadWrite, AddressSpace.Device, DefaultDataLayout>

tensorView : linalg.TensorView<DimView, HasDimensions, p0, p1, p2, p3, p4>

Availability and Requirements

Capability Set 1

Defined for the following targets:

hlsl

Available in all stages.

cuda

Available in all stages.

metal

Available in all stages.

spirv

Available in all stages.

Requires capability: spvCooperativeMatrixKHR.

Capability Set 2

Defined for the following targets:

cuda

Available in all stages.

metal

Available in all stages.

spirv

Available in all stages.

Requires capability: spvCooperativeMatrixKHR.

Capability Set 3

Defined for the following targets:

spirv

Available in all stages.

Requires capability: spvCooperativeMatrixKHR.

Capability Set 4

Defined for the following targets:

spirv

Available in all stages.

Requires capability: spvCooperativeMatrixTensorAddressingNV.