Namespace NVMathNet.LinAlg
Classes
- DiagonalMultiply
-
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.
- Gemm
-
Stateless helpers for classic cuBLAS GEMM operations. Supports single-precision (System.Single), double-precision (System.Double), and half-precision (System.Half) element types.
Computes C = alpha * op(A) * op(B) + beta * C where all matrices are in column-major layout on the GPU device.
For mixed-precision or epilog support, see NVMathNet.LinAlg.Matmul (cuBLASLt).
- Matmul
-
Stateful cuBLASLt matrix multiplication wrapper. Mirrors the design of
nvmath.linalg.Matmul:- Construct with dimension info and options.
- Call NVMathNet.LinAlg.Matmul.PlanAsync(NVMathNet.LinAlg.MatmulPlanPreferences,System.Threading.CancellationToken) to select an algorithm.
- Call NVMathNet.LinAlg.Matmul.ExecuteAsync(System.IntPtr,System.IntPtr,System.IntPtr,System.IntPtr,System.Double,System.Double,System.Threading.CancellationToken) (possibly multiple times).
- Dispose to free CUDA resources.
Computes: D = alpha * op(A) * op(B) + beta * C where op() is optional transpose.
- MatmulOptions
-
Options controlling matrix multiplication behaviour.
- MatmulPlanCache
-
Process-wide cache of NVMathNet.LinAlg.Matmul planning results. When a NVMathNet.LinAlg.Matmul is planned with the same shape, data types, options, epilog configuration and preferences as an earlier one on the same device, the cuBLASLt heuristic is not queried again and the algorithm chosen by NVMathNet.LinAlg.Matmul.Autotune(System.IntPtr,System.IntPtr,System.IntPtr,System.IntPtr,System.Double,System.Double,System.Int32) (if any) is reused. Caching is enabled by default.
- MatmulPlanPreferences
-
Fine-grained control over the cuBLASLt algorithm selection used during NVMathNet.LinAlg.Matmul.Plan(NVMathNet.LinAlg.MatmulPlanPreferences) / NVMathNet.LinAlg.Matmul.PlanAsync(NVMathNet.LinAlg.MatmulPlanPreferences,System.Threading.CancellationToken). Pass an instance to the optional
preferencesparameter on those methods. - SymmetricMultiply
-
Stateless helpers for cuBLAS symmetric matrix-matrix multiply (SYMM): C = alpha * A * B + beta * C (side=Left) or C = alpha * B * A + beta * C (side=Right) where A is symmetric, in column-major layout.
- TriangularSolve
-
Stateless helpers for cuBLAS triangular solve (TRSM): B = alpha * inv(op(A)) * B (side=Left) or B = alpha * B * inv(op(A)) (side=Right) where A is triangular, in column-major layout.
Enums
- MatmulComputeType
-
cuBLASLt compute types available for matrix multiplication.
- MatmulEpilog
-
Epilog operations applied after the matrix multiplication.
- MatrixDataType
-
Element data types for matrices.