Announcing Burn: New Deep Learning framework with CPU & GPU support using the newly stabilized GAT feature

This page summarizes the projects mentioned and recommended in the original post on reddit.com/r/rust

Our great sponsors
  • InfluxDB - Build time-series-based applications quickly and at scale.
  • SonarLint - Clean code begins in your IDE with SonarLint
  • SaaSHub - Software Alternatives and Reviews
  • tch-rs

    Rust bindings for the C++ api of PyTorch.

    tch-rs author here, it's certainly good feedback to know that you find the lack of documentation being one of the most critical point. Fwiw, we try to have a large number of examples hoping that users can re-use them, we try to document these, see for example the Neural Style Transfer tutorial. We also try to document the various layers in tch::nn, though this should certainly be more detailed. The part that is totally undocumented is tensor operations as it's automatically generated from the libtorch operation description (which sadly doesn't have any documentation attached to each operation). If there is some demand, we could certainly look at adding some mechanism in the code generation to add some manually specified documentation for each operation.

  • rust-ndarray

    ndarray: an N-dimensional array with array views, multidimensional slicing, and efficient operations

    Burn is different: it is built around the Backend trait which encapsulates tensor primitives. Even the reverse mode automatic differentiation is just a backend that wraps another one using the decorator pattern. The goal is to make it very easy to create optimized backends and support different devices and use cases. For now, there are only 3 backends: NdArray (https://github.com/rust-ndarray/ndarray) for a pure rust solution, Tch (https://github.com/LaurentMazare/tch-rs) for an easy access to CUDA and cuDNN optimized operations and the ADBackendDecorator making any backend differentiable. I am now refactoring the internal backend API to make it as easy as possible to plug in new ones.

  • InfluxDB

    Build time-series-based applications quickly and at scale.. InfluxDB is the Time Series Platform where developers build real-time applications for analytics, IoT and cloud-native services. Easy to start, it is available in the cloud or on-premises.

  • burn

    BURN: Burn Unstoppable Rusty Neurons

    That’s it, if you are excited about the future of ML/DL ecosystem in Rust and find the project promising, you can encourage me by giving it a ⭐ (https://github.com/burn-rs/burn). If you want to contribute and/or get involved, just reach out to me. There is very little in place to support collaborators, but I would like the project to become community driven instead of being just a personal endeavor.

  • Graphite

    2D raster & vector editor that melds traditional layers & tools with a modern node-based procedural workflow.

    This will potentially be big for Graphite, since we're building with a pure Rust stack (aside from web, at least for now until the Rust GUI ecosystem improves). We plan to have lots of machine learning-based graphics effects and workflows in the form of nodes in a node graph. And not having to interface with Python would be nice where possible. So far we've recently integrated Stable Diffusion which has promising results for a useful workflow, but that has to call a Python web server at the moment. Once Graphite is a desktop app, running the ML directly on-device in the Rust stack will be fantastic.

  • L2

    l2 is a fast, Pytorch-style Tensor+Autograd library written in Rust

    this is really cool!!! btw i also made a very small toy library years ago in rust too !https://github.com/bilal2vec/L2

  • wgpu

    Safe and portable GPU abstraction in Rust, implementing WebGPU API.

    Would it be possible to do something similar to what wgpu does? Move most of the checks into the runtime, perform feature negotiation at initialization, and panic/return an error if a feature isn't supported by the selected backend.

NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts