coopVecMatMulAddPacked
Description
Multiply a cooperative vector with a matrix and add a bias vector.
Signature
/// Requires Capability Set 1: CoopVec<T, M> coopVecMatMulAddPacked<T, M:int, PackedK:int, U>( CoopVec<U, PackedK> input, CoopVecComponentType inputInterpretation, int k, RWByteAddressBuffer matrix, int matrixOffset, CoopVecComponentType matrixInterpretation, RWByteAddressBuffer bias, int biasOffset, CoopVecComponentType biasInterpretation, CoopVecMatrixLayout memoryLayout, bool transpose, uint matrixStride) where T : __BuiltinArithmeticType where U : __BuiltinArithmeticType; /// Requires Capability Set 1: CoopVec<T, M> coopVecMatMulAddPacked<T, M:int, PackedK:int, U>( CoopVec<U, PackedK> input, CoopVecComponentType inputInterpretation, int k, ByteAddressBuffer matrix, int matrixOffset, CoopVecComponentType matrixInterpretation, ByteAddressBuffer bias, int biasOffset, CoopVecComponentType biasInterpretation, CoopVecMatrixLayout memoryLayout, bool transpose, uint matrixStride) where T : __BuiltinArithmeticType where U : __BuiltinArithmeticType; /// Requires Capability Set 2: CoopVec<T, M> coopVecMatMulAddPacked<T, M:int, PackedK:int, U, IgnoredBufferElementType>( CoopVec<U, PackedK> input, CoopVecComponentType inputInterpretation, int k, RWStructuredBuffer<IgnoredBufferElementType, DefaultDataLayout> matrix, int matrixOffset, CoopVecComponentType matrixInterpretation, RWStructuredBuffer<IgnoredBufferElementType, DefaultDataLayout> bias, int biasOffset, CoopVecComponentType biasInterpretation, CoopVecMatrixLayout memoryLayout, bool transpose, uint matrixStride) where T : __BuiltinArithmeticType where U : __BuiltinArithmeticType; /// Requires Capability Set 2: CoopVec<T, M> coopVecMatMulAddPacked<T, M:int, PackedK:int, U, IgnoredBufferElementType>( CoopVec<U, PackedK> input, CoopVecComponentType inputInterpretation, int k, StructuredBuffer<IgnoredBufferElementType, DefaultDataLayout> matrix, int matrixOffset, CoopVecComponentType matrixInterpretation, StructuredBuffer<IgnoredBufferElementType, DefaultDataLayout> bias, int biasOffset, CoopVecComponentType biasInterpretation, CoopVecMatrixLayout memoryLayout, bool transpose, uint matrixStride) where T : __BuiltinArithmeticType where U : __BuiltinArithmeticType;
Generic Parameters
T: __BuiltinArithmeticType
M : int
PackedK : int
U: __BuiltinArithmeticType
IgnoredBufferElementType
Parameters
input : CoopVec<U, PackedK>
The input cooperative vector to multiply with the matrix.
inputInterpretation : CoopVecComponentType
Specifies how to interpret the values in the input vector (e.g. as packed values).
k : int
The number of columns in the matrix.
matrix : RWByteAddressBuffer
The matrix buffer to multiply with.
matrixOffset : int
Byte offset into the matrix buffer.
matrixInterpretation : CoopVecComponentType
Specifies how to interpret the values in the matrix.
bias : RWByteAddressBuffer
The bias buffer to add after multiplication.
biasOffset : int
Byte offset into the bias buffer.
biasInterpretation : CoopVecComponentType
Specifies how to interpret the values in the bias vector.
memoryLayout : CoopVecMatrixLayout
Specifies the memory layout of the matrix (row-major or column-major).
transpose : bool
Whether to transpose the matrix before multiplication.
matrixStride : uint
The stride between matrix rows/columns in bytes.
matrix : ByteAddressBuffer
The matrix buffer to multiply with.
bias : ByteAddressBuffer
The bias buffer to add after multiplication.
matrix : RWStructuredBuffer<IgnoredBufferElementType, DefaultDataLayout>
The matrix buffer to multiply with.
bias : RWStructuredBuffer<IgnoredBufferElementType, DefaultDataLayout>
The bias buffer to add after multiplication.
matrix : StructuredBuffer<IgnoredBufferElementType, DefaultDataLayout>
The matrix buffer to multiply with.
bias : StructuredBuffer<IgnoredBufferElementType, DefaultDataLayout>
The bias buffer to add after multiplication.
Return value
A new cooperative vector containing the result of the matrix multiplication with added bias.
Remarks
Unlike coopVecMatMulAdd, this function supports packed input interpretations where multiple values can be packed into each element of the input vector. The k parameter specifies the actual number of values to use from the packed input.
Availability and Requirements
Capability Set 1
Defined for the following targets:
hlsl
Available in all stages.
cpp
Available in all stages.
cuda
Available in all stages.
spirv
Available in all stages.
Requires capability: spvCooperativeVectorNV
.
Capability Set 2
Defined for the following targets:
spirv
Available in all stages.
Requires capability: spvCooperativeVectorNV
.