Torch.jl
Clang.jl
Torch.jl | Clang.jl | |
---|---|---|
6 | 2 | |
205 | 216 | |
2.0% | 0.0% | |
4.2 | 8.3 | |
12 days ago | 9 days ago | |
Julia | Julia | |
GNU General Public License v3.0 or later | MIT License |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
Torch.jl
- Julia 1.10 Released
- Julia 1.9: A New Era of Performance and Flexibility
- How usable is Julia for Natural Language Processing Machine learning?
-
Does Julia Have a Chance to Overthrown Python in the Machine Learning Industry?
For frontends Python has quite some head-start. In principle it would be possible to write Julia frond-ends to existing ML libraries (written e.g. in C), for example https://github.com/FluxML/Torch.jl , but the advantages over Python frontends would be very limited. Only a front-to-back Julia implementation leverages most of the language advantages like composibility and flexibility.
-
Julia: faster than Fortran, cleaner than Numpy
PyTorch for example is a C++ library with a Python user interface, see e.g. the language shares in GitHub (https://github.com/pytorch/pytorch ). There is also a Julia binding for Torch (https://github.com/FluxML/Torch.jl), but I do not know how up-to-date it is.
Clang.jl
-
Julia 1.10 Released
Are there solid C interfaces that can be used?
A large part of why I started using Julia is because calling into other languages through the C FFI is pretty easy and efficient. Most of the wrappers are a single line. If there is not existing driver support, I would pass the C headers through Clang.jl, which automatically wraps the C API in a C header.
https://github.com/JuliaInterop/Clang.jl
I most recently did this with libtiff. Here is the Clang.jl code to generate the bindings. It's less than 30 lines of sterotypical code.
https://github.com/mkitti/LibTIFF.jl/tree/main/gen
The generated bindings with a few tweaks is here:
https://github.com/mkitti/LibTIFF.jl/blob/main/src/LibTIFF.j...
-
A new C++ <-> Julia Wrapper: jluna
If you are interested in C++ interop you can also have a look at Clang.jl and CxxWrap.jl (the usual Julia package chaos applies, where the package mentioned in old talks and docs that you find on google is superseded by some others...)
What are some alternatives?
Flux.jl - Relax! Flux is the ML library that doesn't make you tensor
CxxWrap.jl - Package to make C++ libraries available in Julia
Pytorch - Tensors and Dynamic neural networks in Python with strong GPU acceleration
jluna - Julia Wrapper for C++ with Focus on Safety, Elegance, and Ease of Use
gluon-nlp - NLP made easy
Lux.jl - Explicitly Parameterized Neural Networks in Julia
SciPyDiffEq.jl - Wrappers for the SciPy differential equation solvers for the SciML Scientific Machine Learning organization
LibTIFF.jl - Clang.jl generated wrapper around Libtiff_jll.jl
JuliaTorch - Using PyTorch in Julia Language
threads - Threads for Lua and LuaJIT. Transparent exchange of data between threads is allowed thanks to torch serialization.