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

Description

Loads a cooperative matrix from a pointer buffer.

Signature

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

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

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

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

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

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

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

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

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

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

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

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

/// Requires Capability Set 5:
static linalg.CoopMat<T, S, M, N, R> linalg::CoopMat<T, MemoryScope S, int M, int N, linalg.CoopMatMatrixUseR>.Load<U, uint Dim, linalg.CoopMatClampModeClampMode, P>(
    Ptr<P, Access.ReadWrite, AddressSpace.Device, DefaultDataLayout> pointerIn,
    linalg.CoopMat<T, S, M, N, R> clippedValue,
    linalg.TensorLayout<Dim, ClampMode> tensorLayout,
    (Ptr<U, Access.ReadWrite, AddressSpace.Device, DefaultDataLayout>, uint[int(Dim)], uint[int(Dim)])->T decodeFunc)
    where T : ICoopElement;

/// Requires Capability Set 5:
static linalg.CoopMat<T, S, M, N, R> linalg::CoopMat<T, MemoryScope S, int M, int N, linalg.CoopMatMatrixUseR>.Load<U, uint Dim, linalg.CoopMatClampModeClampMode, uint DimView, bool HasDimensions, P, uint p0, uint p1, uint p2, uint p3, uint p4>(
    Ptr<P, Access.ReadWrite, AddressSpace.Device, DefaultDataLayout> pointerIn,
    linalg.CoopMat<T, S, M, N, R> clippedValue,
    linalg.TensorLayout<Dim, ClampMode> tensorLayout,
    linalg.TensorView<DimView, HasDimensions, p0, p1, p2, p3, p4> tensorView,
    (Ptr<U, Access.ReadWrite, AddressSpace.Device, DefaultDataLayout>, uint[int(Dim)], uint[int(Dim)])->T decodeFunc)
    where T : ICoopElement;

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

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

/// Requires Capability Set 4:
static linalg.CoopMat<T, S, M, N, R> linalg::CoopMat<T, MemoryScope S, int M, int N, linalg.CoopMatMatrixUseR>.Load<uint Dim, linalg.CoopMatClampModeClampMode, uint DimView, bool HasDimensions, uint p0, uint p1, uint p2, uint p3, uint p4>(
    ByteAddressBuffer 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:
static linalg.CoopMat<T, S, M, N, R> linalg::CoopMat<T, MemoryScope S, int M, int N, linalg.CoopMatMatrixUseR>.Load<uint Dim, linalg.CoopMatClampModeClampMode, uint DimView, bool HasDimensions, uint p0, uint p1, uint p2, uint p3, uint p4, L>(
    StructuredBuffer<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 5:
static linalg.CoopMat<T, S, M, N, R> linalg::CoopMat<T, MemoryScope S, int M, int N, linalg.CoopMatMatrixUseR>.Load<U, uint Dim, linalg.CoopMatClampModeClampMode>(
    ByteAddressBuffer buffer,
    uint element,
    linalg.TensorLayout<Dim, ClampMode> tensorLayout,
    (Ptr<U, Access.ReadWrite, AddressSpace.Device, DefaultDataLayout>, uint[int(Dim)], uint[int(Dim)])->T decodeFunc)
    where T : ICoopElement;

/// Requires Capability Set 5:
static linalg.CoopMat<T, S, M, N, R> linalg::CoopMat<T, MemoryScope S, int M, int N, linalg.CoopMatMatrixUseR>.Load<U, uint Dim, linalg.CoopMatClampModeClampMode, L>(
    StructuredBuffer<T, L> buffer,
    uint element,
    linalg.TensorLayout<Dim, ClampMode> tensorLayout,
    (Ptr<U, Access.ReadWrite, AddressSpace.Device, DefaultDataLayout>, uint[int(Dim)], uint[int(Dim)])->T decodeFunc)
    where L : IBufferDataLayout
    where T : ICoopElement;

/// Requires Capability Set 5:
static linalg.CoopMat<T, S, M, N, R> linalg::CoopMat<T, MemoryScope S, int M, int N, linalg.CoopMatMatrixUseR>.Load<U, uint Dim, linalg.CoopMatClampModeClampMode, uint DimView, bool HasDimensions, uint p0, uint p1, uint p2, uint p3, uint p4>(
    ByteAddressBuffer buffer,
    uint element,
    linalg.TensorLayout<Dim, ClampMode> tensorLayout,
    linalg.TensorView<DimView, HasDimensions, p0, p1, p2, p3, p4> tensorView,
    (Ptr<U, Access.ReadWrite, AddressSpace.Device, DefaultDataLayout>, uint[int(Dim)], uint[int(Dim)])->T decodeFunc)
    where T : ICoopElement;

/// Requires Capability Set 5:
static linalg.CoopMat<T, S, M, N, R> linalg::CoopMat<T, MemoryScope S, int M, int N, linalg.CoopMatMatrixUseR>.Load<U, uint Dim, linalg.CoopMatClampModeClampMode, uint DimView, bool HasDimensions, uint p0, uint p1, uint p2, uint p3, uint p4, L>(
    StructuredBuffer<T, L> buffer,
    uint element,
    linalg.TensorLayout<Dim, ClampMode> tensorLayout,
    linalg.TensorView<DimView, HasDimensions, p0, p1, p2, p3, p4> tensorView,
    (Ptr<U, Access.ReadWrite, AddressSpace.Device, DefaultDataLayout>, uint[int(Dim)], uint[int(Dim)])->T decodeFunc)
    where L : IBufferDataLayout
    where T : ICoopElement;

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

/// Requires Capability Set 4:
static linalg.CoopMat<T, S, M, N, R> linalg::CoopMat<T, MemoryScope S, int M, int N, linalg.CoopMatMatrixUseR>.Load<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:
static linalg.CoopMat<T, S, M, N, R> linalg::CoopMat<T, MemoryScope S, int M, int N, linalg.CoopMatMatrixUseR>.Load<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:
static linalg.CoopMat<T, S, M, N, R> linalg::CoopMat<T, MemoryScope S, int M, int N, linalg.CoopMatMatrixUseR>.Load<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 5:
static linalg.CoopMat<T, S, M, N, R> linalg::CoopMat<T, MemoryScope S, int M, int N, linalg.CoopMatMatrixUseR>.Load<U, uint Dim, linalg.CoopMatClampModeClampMode>(
    RWByteAddressBuffer buffer,
    uint element,
    linalg.TensorLayout<Dim, ClampMode> tensorLayout,
    (Ptr<U, Access.ReadWrite, AddressSpace.Device, DefaultDataLayout>, uint[int(Dim)], uint[int(Dim)])->T decodeFunc)
    where T : ICoopElement;

/// Requires Capability Set 5:
static linalg.CoopMat<T, S, M, N, R> linalg::CoopMat<T, MemoryScope S, int M, int N, linalg.CoopMatMatrixUseR>.Load<U, uint Dim, linalg.CoopMatClampModeClampMode, L>(
    RWStructuredBuffer<T, L> buffer,
    uint element,
    linalg.TensorLayout<Dim, ClampMode> tensorLayout,
    (Ptr<U, Access.ReadWrite, AddressSpace.Device, DefaultDataLayout>, uint[int(Dim)], uint[int(Dim)])->T decodeFunc)
    where L : IBufferDataLayout
    where T : ICoopElement;

/// Requires Capability Set 5:
static linalg.CoopMat<T, S, M, N, R> linalg::CoopMat<T, MemoryScope S, int M, int N, linalg.CoopMatMatrixUseR>.Load<U, 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,
    (Ptr<U, Access.ReadWrite, AddressSpace.Device, DefaultDataLayout>, uint[int(Dim)], uint[int(Dim)])->T decodeFunc)
    where T : ICoopElement;

/// Requires Capability Set 5:
static linalg.CoopMat<T, S, M, N, R> linalg::CoopMat<T, MemoryScope S, int M, int N, linalg.CoopMatMatrixUseR>.Load<U, 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,
    (Ptr<U, Access.ReadWrite, AddressSpace.Device, DefaultDataLayout>, uint[int(Dim)], uint[int(Dim)])->T decodeFunc)
    where L : IBufferDataLayout
    where T : ICoopElement;

Generic Parameters

matrixLayout : linalg.CoopMatMatrixLayout

The memory layout (RowMajor or ColMajor) of the data in the buffer.

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 : ByteAddressBuffer

The pointer to the buffer to load from.

element : uint

The starting element index in the buffer.

stride : uint

The stride in elements between consecutive rows (for row major) or columns (for column major).

buffer : StructuredBuffer<T, L>

The pointer to the buffer to load from.

buffer : RWByteAddressBuffer

The pointer to the buffer to load from.

buffer : RWStructuredBuffer<T, L>

The pointer to the buffer to load from.

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

The pointer to the buffer to load from.

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 ]

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

clippedValue : linalg.CoopMat<T, S, M, N, R>

tensorLayout : linalg.TensorLayout<Dim, ClampMode>

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

decodeFunc : ( Ptr<U, Access.ReadWrite, AddressSpace.Device, DefaultDataLayout>, uint [ int ( Dim ) ], uint [ int ( Dim ) ] ) -> T

Return value

A cooperative matrix loaded from the buffer.

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.

Capability Set 5

Defined for the following targets:

spirv

Available in all stages.

Requires capability: spvCooperativeMatrixBlockLoadsNV.