Hi everyone,
I took some time to release this allocator library for C which has various common patterns, e.g. arenas, pools, GPA, temporary and stack allocators. I found myself rewriting arenas/pools many times and since the same ideas exist in Zig, it would be useful to have this in C. In Rust/C++, there are a few external libraries, std::allocator class template isn't particularly concrete, it only provides an interface (allocator_traits).
It also makes it trivial to write a custom allocator. Cheers!
I'm planning to expand this with more features, e.g. stochastic weight averaging, distributed training support and training anomaly detection. The idea is to stay minimal and dependency-free. Looking for feedback on what features would actually be useful vs just bloat—what do you find yourself rewriting in every project? What makes you reach for (or avoid) libraries like PyTorch Lightning?
It also makes it trivial to write a custom allocator. Cheers!
Link: https://github.com/abdimoallim/alloc
reply