Hi, HN. I am the creator of Neve and its deep learning framework, Frost.
I built it mainly because of difficulties researches face when they want to implement neural networks. The first is about networks that require parallel optmizations, like the Efficient Zero and PyTorch dataloaders. They are heavily constrained by the Global Interpreter Lock (GIL). Thus, they require programming in C, and to use cumbersome Python interop with C as around. The second reason is for making kernel fusion techniques, like Flash Attention.
It is still experimental, but I am passed halfway to fulfill these goals.
Neve has native parallelism, Go-like channels, and allows you to create networks either completely in high-level with GPU kernels interfacing, or using interop with C++.
To demonstrate its simplicity and expressivity, I put all the Frost into a single page of code, mixed with the training algorthim. The complete deep learning did not surpass 1400 lines of code (image loading, GPU tensors memory pool and tensor print function are C++, but they are also compact).
I trained a ResNet-18 in Cifar-10 and compared to PyTorch. All implementations achieved similar accuracy. Neve partial cuDNN implementation is faster than PyTorch. Neve with naive GPU kernels is still behind, but the kernels lack some optimizations I am busy to make.
If you want to see how the design choices work in pratice, the 1400 lines code is at neve_samples/all_in_one.nv (github does not highlight the syntax, but you can set your editor to Python or install Neve syntax)
--
Limitations
- You need a Linux (or Docker to it) for Neve, and a CUDA 12.3 compatible GPU for Frost.
- The concurrent gc also has some extremely rare crashes that I am still hunting.
nosaveddata•1h ago
I built it mainly because of difficulties researches face when they want to implement neural networks. The first is about networks that require parallel optmizations, like the Efficient Zero and PyTorch dataloaders. They are heavily constrained by the Global Interpreter Lock (GIL). Thus, they require programming in C, and to use cumbersome Python interop with C as around. The second reason is for making kernel fusion techniques, like Flash Attention.
It is still experimental, but I am passed halfway to fulfill these goals.
Neve has native parallelism, Go-like channels, and allows you to create networks either completely in high-level with GPU kernels interfacing, or using interop with C++.
To demonstrate its simplicity and expressivity, I put all the Frost into a single page of code, mixed with the training algorthim. The complete deep learning did not surpass 1400 lines of code (image loading, GPU tensors memory pool and tensor print function are C++, but they are also compact).
I trained a ResNet-18 in Cifar-10 and compared to PyTorch. All implementations achieved similar accuracy. Neve partial cuDNN implementation is faster than PyTorch. Neve with naive GPU kernels is still behind, but the kernels lack some optimizations I am busy to make.
If you want to see how the design choices work in pratice, the 1400 lines code is at neve_samples/all_in_one.nv (github does not highlight the syntax, but you can set your editor to Python or install Neve syntax)
-- Limitations
- You need a Linux (or Docker to it) for Neve, and a CUDA 12.3 compatible GPU for Frost.
- The concurrent gc also has some extremely rare crashes that I am still hunting.
--
Links
- Neve docs: https://neve-lang.dev - Neve repository: https://github.com/NoSavedDATA/Neve - Frost repository: https://github.com/NoSavedDATA/frost - Background on why making a new deep learning framework (comparing to Julia and Mojo). https://dev.to/no_saved_data/deep-learning-from-scratch-in-1... - Quick start to the main features: https://dev.to/no_saved_data/neve-towards-a-unified-programm...
--
I will stay around to answer questions about the language