GPU-Accelerated Math Libraries for .NET
Works with all .NET languages, including C#, Visual Basic, and F#.
|The Premium Editions of NMath and NMath Stats leverage the power of the CUDA™ architecture for GPU-accelerated mathematics on the .NET platform. CUDA is a parallel computing platform and programming model developed by NVIDIA, which enables dramatic increases in computing performance by harnessing the power of the graphics processing unit. GPU computing is a standard feature in all NVIDIA’s 8-Series and later GPUs. The entire NVIDIA Tesla line supports CUDA. For a full list of supported products, see here.|
Easy to Use
NMath Premium works with any CUDA-enabled GPU. NMath Premium automatically detects the presence of a CUDA-enabled GPU at runtime and seamlessly redirects appropriate computations to it. The library can be configured to specify which problems should be solved by the GPU, and which by the CPU. If a GPU is not present at runtime, the computation automatically falls back to the CPU without error.
No GPU programming experience is required.
With a few minor exceptions, such as optional GPU configuration settings, the API is identical between NMath and NMath Premium. Existing NMath developers can simply upgrade to NMath Premium and immediately begin to offer their users higher performance from current graphics cards, or from additional GPUs, without writing any new software.
No changes are required to existing NMath code.
NMath Premium‘s Adaptive Bridge® technology provides:
- Support for multiple GPUs
- Per-thread control for binding threads to GPUs
- Automatic performance tuning of individual CPU–GPU routing to insure optimal hardware usage
GPU acceleration provides a 2-4x speed-up for many NMath functions. With large data sets running on high-performance GPUs, the speed-up can exceed 10x. Furthermore, off-loading computation to the GPU frees up the CPU for additional processing tasks, a further performance gain.
The directly supported features for GPU acceleration of linear algebra (dense systems) are:
- Singular value decomposition (SVD)
- QR decomposition
- Eigenvalue routines
- Solve Ax = B
GPU acceleration for signal processing includes:
- 1D Fast Fourier Transforms (Complex data input)
- 2D Fast Fourier Transforms (Complex data input)
GPU: (1) NVIDIA Tesla M2090: 1 Fermi GPU, 512 CUDA cores, 6GB GDDR5 memory
CPU: Intel Xeon X5670, 2.93 GHz, 6-core with Hyper-Threading (12 threads), 12 MB L3 cache, 32 nm manufacturing process (Westmere)
Of course, many higher-level NMath and NMath Stats classes make use of these functions internally, and so also benefit from GPU acceleration indirectly.
- Least squares, including weighted least squares
- Filtering, such as moving window filters and Savitsky-Golay
- Nonlinear programming (NLP)
- Ordinary differential equations (ODE)
- Two-Way ANOVA, with or without repeated measures
- Factor Analysis
- Linear regression and logistic regression
- Principal component analysis (PCA)
- Partial least squares (PLS)
- Nonnegative matrix factorization (NMF)
Learn more by downloading our free whitepaper, NMath Premium: GPU-Accelerated Math Libraries for .NET, and by reading articles on NMath Premium in our blog.