Basic Linear Algebra Subprogram Simplified
+Basic LLM Inference Engine
- More comprehensive constructors (for
initializer_listfor example) - Getters
- Add stride and offset (easier to handle when data structure changes)
- Flatten, reshape, slicing, transpose
- Constructors
- Fill
- Random
- Basic math ops
- Element-wise
- Broadcasting
- Matmul, convolution
- Optimizations for non-contiguous
- Remove recursion
- Coalesce (flattening)
- Permute (find dimension of size 1)
- Optimize blocking to make it usable
- Random module (distribution, seed, etc.)
- Model loading
- Parsing GGUF file
- Tokenizer library API
- Implementing all NN layers
- Template functions for ops and strides
- Autograd
- Record useful metrics
- Visualization
- Graph
To compile main
make
To run all tests & benchmarks
make tests
make bench
To run individual tests & benchmarks
make tests_elemwise
make bench_elemwise
make bench_matmul