Skip to content

pichu2405/blass

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

58 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

blass

Basic Linear Algebra Subprogram Simplified

+Basic LLM Inference Engine

To-do list

Tensor

  • More comprehensive constructors (for initializer_list for 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

Perf measurement

  • Record useful metrics
  • Visualization

Graph compiler (to optimize autograd graph, and maybe inference for ONNX)

  • Graph

Usage

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

About

Basic Linear Algebra Subprogram Simplified

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors