coopVecMatMulAdd¶
Description¶
Multiply a cooperative vector with a matrix and add a bias vector.
Signature¶
/// Requires Capability Set 1: CoopVec<T, M> coopVecMatMulAdd<T, M:int, K:int, 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, M:int, K:int, 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, M:int, K:int, 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, M:int, K:int, 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;
Generic Parameters¶
T: __BuiltinArithmeticType¶
M : int¶
K : int¶
U: __BuiltinArithmeticType¶
IgnoredBufferElementType¶
Parameters¶
input : CoopVec<U, K>¶
The input cooperative vector to multiply with the matrix.
inputInterpretation : CoopVecComponentType¶
Specifies how to interpret the values in the input vector.
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 plus bias.
Availability and Requirements¶
Capability Set 1¶
Defined for the following targets:
hlsl¶
Available in all stages.
Requires capability: hlsl_coopvec_poc.
cpp¶
Available in all stages.
cuda¶
Available in all stages.
Requires capability: optix_coopvec.
spirv¶
Available in all stages.
Requires capability: spvCooperativeVectorNV.
Capability Set 2¶
Defined for the following targets:
spirv¶
Available in all stages.
Requires capability: spvCooperativeVectorNV.