InfiniOps is a high-performance, hardware-agnostic operator library.
Ensure your environment meets the following requirements based on your target backend:
- C++17 compatible compiler
- CMake 3.18+
- Hardware-specific SDKs (e.g., CUDA Toolkit)
InfiniOps uses CMake to manage backends.
Ensure you have the corresponding SDK installed and environment variables set up for the platform/accelerator you are working on.
Using these commands at the root directory of this project:
mkdir build && cd build
cmake .. <OPTIONS>
make -j$(nproc)For the <OPTIONS>:
| Option | Functionality | Default |
|---|---|---|
-DWITH_CPU=[ON|OFF] |
Compile the CPU implementation | n |
-DWITH_NVIDIA=[ON|OFF] |
Compile the NVIDIA implementation | n |
-DWITH_METAX=[ON|OFF] |
Compile the MetaX implementation | n |
-DGENERATE_PYTHON_BINDINGS=[ON|OFF] |
Generate Python bindings | n |
Note: If no accelerator options are provided, WITH_CPU is enabled by default.
After a successful build, the executables are located in the build/examples directory.
Run the GEMM example:
./examples/gemmRun the data_type example:
./examples/data_typeRun the tensor example:
./examples/tensorRun the pybind11 example:
PYTHONPATH=src python ../examples/gemm.py