CoopVec<T, int N>.matMulAddAccum

Description

Performs matrix multiplication and accumulation with bias: this += input * matrix + bias

Signature

void CoopVec<T, int N>.matMulAddAccum<U, int K>(
    CoopVec<U, K> input,
    CoopVecComponentType inputInterpretation,
    RWByteAddressBuffer matrix,
    int matrixOffset,
    CoopVecComponentType matrixInterpretation,
    RWByteAddressBuffer bias,
    int biasOffset,
    CoopVecComponentType biasInterpretation,
    CoopVecMatrixLayout memoryLayout,
    bool transpose,
    uint matrixStride)
    where U : __BuiltinArithmeticType
    where T : __BuiltinArithmeticType;

void CoopVec<T, int N>.matMulAddAccum<U, int K>(
    CoopVec<U, K> input,
    CoopVecComponentType inputInterpretation,
    ByteAddressBuffer matrix,
    int matrixOffset,
    CoopVecComponentType matrixInterpretation,
    ByteAddressBuffer bias,
    int biasOffset,
    CoopVecComponentType biasInterpretation,
    CoopVecMatrixLayout memoryLayout,
    bool transpose,
    uint matrixStride)
    where U : __BuiltinArithmeticType
    where T : __BuiltinArithmeticType;

Generic Parameters

U: __BuiltinArithmeticType

K : int

Parameters

input : CoopVec<U, K>

The input vector to multiply with the matrix

inputInterpretation : CoopVecComponentType

How to interpret the input vector elements (must not be packed)

matrix : RWByteAddressBuffer

The matrix buffer to multiply with

matrixOffset : int

Byte offset into the matrix buffer

matrixInterpretation : CoopVecComponentType

How to interpret the matrix elements

bias : RWByteAddressBuffer

The bias buffer to add

biasOffset : int

Byte offset into the bias buffer

biasInterpretation : CoopVecComponentType

How to interpret the bias elements

memoryLayout : CoopVecMatrixLayout

Memory layout of the matrix (row or column major)

transpose : bool

Whether to transpose the matrix before multiplication

matrixStride : uint

Stride between matrix rows/columns in bytes

matrix : ByteAddressBuffer

The matrix buffer to multiply with

bias : ByteAddressBuffer

The bias buffer to add

Availability and Requirements

Defined for the following targets:

hlsl

Available in all stages.

glsl

Available in all stages.

cpp

Available in all stages.

cuda

Available in all stages.

Requires capability: optix_coopvec.

spirv

Available in all stages.

Requires capability: spvCooperativeVectorNV.