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.