--- layout: stdlib-reference --- # coopVecMatMulAdd ## Description Multiply a matrix with a cooperative vector and add a bias vector. Given a M-row by K-col matrix, a K-element column vector input, and a M-element vector bias, computes matrix*input+bias, and returns a M-element vector. ## Signature
/// Requires Capability Set 1: CoopVec<T, M> coopVecMatMulAdd<T, int M, int K, U>( 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 T : __BuiltinArithmeticType where U : __BuiltinArithmeticType; /// Requires Capability Set 1: CoopVec<T, M> coopVecMatMulAdd<T, int M, int K, U>( 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 T : __BuiltinArithmeticType where U : __BuiltinArithmeticType; /// Requires Capability Set 2: CoopVec<T, M> coopVecMatMulAdd<T, int M, int K, U, IgnoredBufferElementType>( CoopVec<U, K> input, CoopVecComponentType inputInterpretation, 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> coopVecMatMulAdd<T, int M, int K, U, IgnoredBufferElementType>( CoopVec<U, K> input, CoopVecComponentType inputInterpretation, 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; /// Requires Capability Set 3: CoopVec<T, M> coopVecMatMulAdd<T, int M, int K, U>( CoopVec<U, K> input, CoopVecComponentType inputInterpretation, Ptr<void, Access.ReadWrite, AddressSpace.Device> matrix, CoopVecComponentType matrixInterpretation, Ptr<void, Access.ReadWrite, AddressSpace.Device> bias, CoopVecComponentType biasInterpretation, CoopVecMatrixLayout memoryLayout, bool transpose, uint matrixStride) where T : __BuiltinArithmeticType where U : __BuiltinArithmeticType;## Generic Parameters #### T: [\_\_BuiltinArithmeticType](../interfaces/0_builtinarithmetictype-029j/index.html) #### M : int #### K : int #### U: [\_\_BuiltinArithmeticType](../interfaces/0_builtinarithmetictype-029j/index.html) #### IgnoredBufferElementType ## Parameters #### input : [CoopVec](../types/coopvec-04/index.html)\ The input cooperative vector to multiply with the matrix. #### inputInterpretation : [CoopVecComponentType](../types/coopveccomponenttype-047g/index.html) Specifies how to interpret the values in the input vector. #### matrix : [RWByteAddressBuffer](../types/rwbyteaddressbuffer-0126d/index.html) The matrix buffer to multiply with. #### matrixOffset : int Byte offset into the matrix buffer. #### matrixInterpretation : [CoopVecComponentType](../types/coopveccomponenttype-047g/index.html) Specifies how to interpret the values in the matrix. #### bias : [RWByteAddressBuffer](../types/rwbyteaddressbuffer-0126d/index.html) The bias buffer to add after multiplication. #### biasOffset : int Byte offset into the bias buffer. #### biasInterpretation : [CoopVecComponentType](../types/coopveccomponenttype-047g/index.html) Specifies how to interpret the values in the bias vector. #### memoryLayout : [CoopVecMatrixLayout](../types/coopvecmatrixlayout-047d/index.html) 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](../types/byteaddressbuffer-04b/index.html) The matrix buffer to multiply with. #### bias : [ByteAddressBuffer](../types/byteaddressbuffer-04b/index.html) The bias buffer to add after multiplication. #### matrix : [RWStructuredBuffer](../types/rwstructuredbuffer-012c/index.html)\