Giter Site home page Giter Site logo

caffe2-rs's Introduction

caffe2-rs

This library is based on the flexible Caffe2 C++ project.

It provides a high performance and modular rust environment for deep learning.

As of July 1, 2023, the codebase is under construction: it is ready for interface experimentation and development work, but not yet for production.

If you are interested in this project and would like to contribute, your contribution is both welcome and appreciated!

The current bottleneck is in the translation of c++ statements into rust. It is possible to do this manually. However, it is better to do it automatically. Some work is being done in this domain, however there are several challenges to be overcome.

For more information, see chomper: https://github.com/klebs6/chomper

Note from original translator (klebs6)

Greetings! I have a few preliminary work-items to attend for a few months. Once these are done, I plan to productionize the chomper.

This will include integrations with the rust-ecosystem compiler tools.

During the productionization, we will be able to enable name resolution and type inference during transpilation (not to mention several performance wins).

This work will provide a massive speedup for the translation. Subsequently, caffe2-rs development will be free to progress.

If there are developers out there who would like to contribute to the c++ to rust transpiler development track, I would love to hear from you. Please feel free to reach out. I am sure the rust ecosystem will be grateful. C++ to Rust transpilation is a major bottleneck for many projects.

Acknowledgments

This project owes its DNA to the original authors of the Caffe2 C++ library, without whom, this work would not exist.

The author of this project would like to thank the original authors of the Caffe2 C++ library for their work, as well as the Rust community for their support.

caffe2-rs's People

Contributors

klebs6 avatar

Stargazers

dzmitry-lahoda avatar Quentin LE DILAVREC avatar Catherine Koshka avatar Han Meh avatar 刘辉杰 avatar Michael Cheng avatar  avatar wolfi3 avatar Tim Kersey avatar  avatar  avatar

Watchers

 avatar  avatar

caffe2-rs's Issues

caffe2-aten crate does not build

known issue! working on it!

As of 4/24/2023, i have a medium sized stack of work to do before i can bring full attention back to this, but i am grateful for any support/feedback in the meantime!

The plan for now is to modularize caffe2-aten and caffe2-c10 along the same lines as the rest of the workspace. That way, dependent crates can pluck just what they need from aten/c10, instead of having to link the whole thing.

collapse caffe2 core crates into a single crate

It looks like the core of this workspace, namely these:
Screen Shot 2023-05-18 at 1 38 23 PM

will be more useful once collapsed into a single crate.

We can use cargo feature flags to keep a "pay for what you use" model in the core.

This is an open issue -- will accept a PR implementing this change.

merge families of operators

For example, caffe2op-tan, caffe2op-sin, caffe2op-abs, etc may be better suited in a single caffe2op-math crate.

I don't think we ought to do this everywhere, but for certain groups of operators it makes sense.

Currently, the crate layout is roughly maximally granular. This can be good in certain cases. For certain groups of small operators, though, I don't think it needs to be this way.

Another example is merging caffe2op-do, caffe2op-while, caffe2op-if, etc into caffe2op-controlflow

Open to discussion.

Too many crates?

Searching for "neural" or "tensor" on crates.io almost exclusively yields results from this repository, as you have about 250 crates published on crates.io.

This is a bit much, if you'd ask me. It's flooding the search results and making using crates.io's service harder.

The fact that you had to automate generating the READMEs of all these crates using ChatGPT should have been a hint that this wasn't a good project architecture.

I hope you will listen to my concerns and address this issue.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.