Class DiagonalMultiply
- Namespace
- NVMathNet.LinAlg
- Assembly
- NVMath.Net.dll
Stateless helpers for cuBLAS diagonal matrix multiply (DGMM): C = diag(X) * A (side=Left) or C = A * diag(X) (side=Right) in column-major layout.
public static class DiagonalMultiplyInheritance
Inherited Members
Methods
DdgmmAsync(DeviceBuffer<double>, DeviceBuffer<double>, DeviceBuffer<double>, int, int, bool, CudaStream?, CancellationToken)
Diagonal matrix multiply (double-precision, async).
C = diag(x) * A when leftSide is true,
or C = A * diag(x) when false.
public static Task DdgmmAsync(DeviceBuffer<double> a, DeviceBuffer<double> x, DeviceBuffer<double> c, int m, int n, bool leftSide = true, CudaStream? stream = null, CancellationToken ct = default)Parameters
aDeviceBuffer<double>xDeviceBuffer<double>cDeviceBuffer<double>mintnintleftSideboolstreamCudaStream?ctCancellationToken
Returns
SdgmmAsync(DeviceBuffer<float>, DeviceBuffer<float>, DeviceBuffer<float>, int, int, bool, CudaStream?, CancellationToken)
Diagonal matrix multiply (single-precision, async).
C = diag(x) * A when leftSide is true,
or C = A * diag(x) when false.
public static Task SdgmmAsync(DeviceBuffer<float> a, DeviceBuffer<float> x, DeviceBuffer<float> c, int m, int n, bool leftSide = true, CudaStream? stream = null, CancellationToken ct = default)Parameters
aDeviceBuffer<float>-
Device buffer for dense matrix A (m×n), column-major.
xDeviceBuffer<float>-
Device buffer for diagonal vector x (length m if leftSide, n if rightSide).
cDeviceBuffer<float>-
Device buffer for output matrix C (m×n), column-major.
mint-
Number of rows.
nint-
Number of columns.
leftSidebool-
If true, left-multiply by diag(x); if false, right-multiply.
streamCudaStream?-
Optional CUDA stream.
ctCancellationToken-
Cancellation token.