M
Modular•6mo ago
mad alex 1997

NuMojo Moved into a GitHub Organization Updated to Include access to different backends

NuMojo now exists under the Mojo Numerics and Algorithms group (MoNA). For those of you that haven't heard of NuMojo, we are essentially trying to fill the same niche as numpy does for python. So far we have Tensor input versions of many of the standard library math functions. In the future we will have our own Tensor type and cover most, if not all, of the functionality of numpy and much of the functionality of scipy. As for our new backend functionality, we added a number of function-only structs that conform to a trait called Backend. From my testing, Vectorized is the fastest and is therefore the default backend. * Naive: Just loops * Vectorized: SIMD vectorized * VectorizedUnroll: SIMD vectorized with a user-defined unroll factor. * Parallelized: parallel execution without vectorization This allows users to easily select different backends for different parts of their code and will allow future development to target different backends both at the hardware level and the algorithm level across the entire package by building a backend struct that conforms to Backend. We are now accepting Feature requests, pull requests, and people who want to join our open-source organization. You can find our Discord on the GitHub page. I look forward to working with the members of this community to build the future of high-powered computing for Mojo and meeting people who love making math fast as much as I do.
GitHub
GitHub - Mojo-Numerics-and-Algorithms-group/NuMojo
Contribute to Mojo-Numerics-and-Algorithms-group/NuMojo development by creating an account on GitHub.
5 Replies
tkeitt
tkeitt•5mo ago
I'd be happy to chat about this. I'm working on some codes related to my research. So far, I have ported the xo(or)shiro prng's to native mojo, implemented a toy static matrix (awaiting someone to port Eigen or similar to mojo), and started on some RK integration methods. I also used numojo but changed it to mojosci as I don't prefer numojo. Perhaps we can think of a better name. It may be too soon to create a working group. Seems to be an army-of-one at the moment. 🙂 I'm happy to think about this. Mojo is the language I have always wanted for scientific computing (way too much time in R and C++; I like Julia in broad-strokes, but I don't like the type-system). We should definitely plan a mojo science conference or side-session in the coming years.
mad alex 1997
mad alex 1997OP•5mo ago
If you want to take charge of mojosci (or a Scipy-like library regardless of the name) but put it under the Mojo Numerics and Analysis group (there are 3 active developers including myself at the moment) we could add that repository to the group and feed back and forth between the libraries as one or the other makes improvements. I was actually thinking about splitting into several libraries anyway now that we are planning to make and maintain our own array type, as I think SciPy has too large of a scope by itself let alone when combined with numpy.
tkeitt
tkeitt•5mo ago
Yes, I could do that. It would be good to get the package/module/naming structure right early on. In the R world, packages are fairly broad. Seems that way in Python as well. Rust on the other hand often has quite small and single purpose packages.
mad alex 1997
mad alex 1997OP•5mo ago
Is tkeitt also your github username? Nevermind, I found it.
btokarzewski
btokarzewski•2mo ago
@tkeitt fyi this repo has some BLAS functions ported to mojo https://github.com/codingonion/moblas/tree/main
GitHub
GitHub - codingonion/moblas: BLAS (Basic Linear Algebra Subprograms...
BLAS (Basic Linear Algebra Subprograms) library written in mojo programming language. - codingonion/moblas
Want results from more Discord servers?
Add your server