LibNC: C Library for Tensor Manipulation
LibNC
is a C library for tensor manipulation. It supports
automatic differentiation and can be used to implement machine
learning models such as LSTM and Transformers. It has the following
features:
- C API.
- Small library, no external dependency, available for Linux and Windows.
- Define-by-run automatic differentiation engine (same idea as PyTorch).
- High performance for both CPU (x86) and GPU (CUDA support). Optimized support of float32 and bfloat16 data types.
- CPU backend optimized for inference and small batch sizes.
- Optimized for online learning (i.e. simultaneous evaluation and training) using LSTM or Transformer models.
- Fully deterministic: return the same results at each run.
- Reproducible results (CPU backend only): return the same results regardless the CPU brand and OS.
Download
DLL for Linux and Windows version with
examples: libnc-2021-04-24.tar.gz
(Changelog).
Related Links
- NNCP: Lossless Data Compression with Neural Networks.
Fabrice Bellard - https://bellard.org/