A modern C++20 GPU numerical computing library with Python-like syntax for near-native performance on NVIDIA GPUs.
MatX is a modern C++ library for numerical computing on NVIDIA GPUs and CPUs, offering a Python-like syntax for ease of use while achieving near-native performance. It solves the problem of complex, low-level GPU programming by providing an intuitive API that leverages optimized backend libraries and efficient kernel generation, enabling significant speedups over alternatives like NumPy and CuPy.
Developers and researchers working in high-performance computing, scientific computing, or machine learning who need efficient GPU-accelerated numerical operations with a simpler syntax, particularly those familiar with Python or MATLAB.
Developers choose MatX for its unique combination of high performance and ease of use, offering up to 2100x speedups over NumPy and 4x over CuPy while maintaining a syntax that reduces the learning curve and integration effort compared to traditional CUDA programming.
An efficient C++20 GPU numerical computing library with Python-like syntax
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Delivers up to 2100x faster performance than NumPy and 4x over CuPy on the same GPU, as shown in the FFT resampler benchmark.
Offers an intuitive API similar to Python or MATLAB, reducing learning curves for developers porting high-level code to C++.
Header-only library with CMake support, allowing easy addition via subdirectory or system installation without extensive build changes.
Enables direct GPU data visualization in web browsers and includes file I/O capabilities, streamlining data workflows.
Native support is restricted to Linux; Windows requires manual setup and is not officially tested, per issue #153.
Demands specific CUDA 12.2.1+ and compiler versions (e.g., g++9, nvc++ 24.5), complicating setup in mixed environments.
Host execution lacks multithreading for reductions, as admitted in the documentation, potentially hindering CPU performance.
Default build process downloads dependencies from the internet, adding overhead for offline or air-gapped deployments.
MatX is an open-source alternative to the following products:
MATLAB is a proprietary multi-paradigm programming language and numeric computing environment developed by MathWorks for matrix manipulations, algorithm development, and data analysis.
CuPy is an open-source array library for GPU-accelerated computing with Python, compatible with NumPy's API for NVIDIA CUDA and AMD ROCm platforms.