Skip to content

Latest commit

 

History

History
40 lines (31 loc) · 3 KB

API.md

File metadata and controls

40 lines (31 loc) · 3 KB

NVMath.Net API Overview

The complete, searchable documentation lives on the website: https://zcsizmadia.github.io/NVMath.Net/ (guides, per-module references and the generated API reference). This page is a short map of the repository.

Namespaces and module guides

Namespace Purpose Guide
NVMathNet Devices, streams, events, DeviceBuffer<T>, PinnedBuffer<T>, multi-GPU Core
NVMathNet.Memory Pluggable device memory managers Core
NVMathNet.Fft cuFFT FFT
NVMathNet.LinAlg cuBLASLt Matmul, GEMM, TRSM, SYMM, DGMM Linear algebra
NVMathNet.Sparse cuSPARSE matrices and operations, cuDSS SparseDirectSolver Sparse
NVMathNet.Tensor cuTENSOR contraction, element-wise, permutation, reduction Tensor
NVMathNet.Solver cuSOLVER dense solvers (single, batched, complex) Solver
NVMathNet.Rand cuRAND generators and distributions Random
NVMathNet.Interop Raw native bindings and exception types Interop

nvmath-python comparison

NVMath.Net covers the host (single-process) API of nvmath-python:

nvmath-python NVMath.Net Status
nvmath.fft — fft, ifft, rfft, irfft, FFT Fft (plan-based and static helpers) Covered: C2C/R2C/C2R, N-D, batched, axes, normalization. Not covered: prolog/epilog callbacks
nvmath.linalg.advanced.Matmul Matmul Covered: epilogs, bias, aux outputs, batching, FP8 scale pointers, autotune, plan cache, conjugate transpose, complex matmul. Not covered: block-scaled MXFP8/NVFP4 (needs Blackwell hardware to verify)
nvmath.linalg BLAS-style routines Gemm, TriangularSolve, SymmetricMultiply, DiagonalMultiply Covered (typed per precision)
nvmath.sparse multiplication SparseLinearAlgebra Covered for CSR/COO/BSR/CSC where cuSPARSE supports it
nvmath.sparse.advanced.DirectSolver SparseDirectSolver<T> (cuDSS) Covered for float/double/complex; no batched or multi-GPU solves
nvmath.tensor contraction and element-wise operations TensorContraction, ElementwiseBinary, ElementwiseTrinary, TensorPermutation, TensorReduction Covered
nvmath.bindings NVMathNet.Interop.*Native Raw bindings are public

Beyond nvmath-python: DenseSolver (cuSOLVER), CudaRandom (cuRAND), MultiGpuContext, pluggable memory managers.

Out of scope for .NET: the device-side APIs (nvmath.device: cuBLASDx, cuFFTDx, cuSOLVERDx, device cuRAND) and the distributed APIs (nvmath.distributed: NVSHMEM, cuFFTMp), as well as Python-specific features (UST DSL, NumPy/CuPy/PyTorch interop, CPU execution through NVPL).

Deferred work is tracked under the post-1.0 label.