rnim
Arraymancer
Our great sponsors
rnim | Arraymancer | |
---|---|---|
6 | 21 | |
24 | 1,298 | |
- | - | |
5.2 | 8.2 | |
over 2 years ago | 5 days ago | |
Nim | Nim | |
- | Apache License 2.0 |
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.
rnim
-
Deeplearning in Nim?
While indeed we are less people developing stuff in Nim compared to even the Julia community (which itself is of course much smaller than say Python), we do have cover a large amount of the typical needs in the scientific computing domain. And where we miss stuff it's a) easy to wrap C/C++ or b) simply call Julia, R or Python (As a personal reference I'm doing data analysis & numerical physics stuff in context of my PhD in physics and I literally do everything in Nim. The only significant C dependency {and only as a shared lib} I depend on is libhdf5 via nimhdf5).
-
Stan in Nim?
use Rnim to access the R bindings
-
Anyone attempted to make Nim serve R's role? How is it currently?
If you're willing to help out, you'll surely be able to do anything you need. If Nim libraries fail, you can also always call R directly from Nim via Rnim!
-
Generate Python extensions using Nim language
Maybe also of interest is a nascent package for R calling Nim (or vice versa): https://github.com/SciNim/rnim
-
Nim -- a modern "glue" language like Python
c2nim is a tool to translate ANSI C code to Nim. The output is human-readable Nim code that is meant to be tweaked by hand after the translation process. If you are tired of wrapping C library, you can try futhark which supports "simply import C header files directly into Nim". Similar to futhark, cinterop allows one to interop with C/C++ code without having to create wrappers. nimLUA is a glue code generator to bind Nim and Lua together using Nim's powerful macro. nimpy and nimporter is a bridge between Nim and Python. rnim is a bridge between R and Nim. nimjl is a bridge between Nim and Julia! Last but not least, genny generates a shared library and bindings for many languages such as Python, Node.js, C.
-
What would you like to see from an R2 / R++ / R#
I am risking to be offtopic, but there is somenthing interesting happening in Nim, where someone wrote a wrapper to R: https://github.com/SciNim/rnim
Arraymancer
-
Arraymancer – Deep Learning Nim Library
It is a small DSL written using macros at https://github.com/mratsim/Arraymancer/blob/master/src/array....
Nim has pretty great meta-programming capabilities and arraymancer employs some cool features like emitting cuda-kernels on the fly using standard templates depending on backend !
-
Go, Python, Rust, and production AI applications
Nim has also a powerful deep learning library called Arraymancer. It's selling point is that you don't have to rewrite your code from research to production. It's used in various machine learning projects, but one recent one that caught my eye was https://github.com/amkrajewski/nimCSO "Composition Space Optimization"
-
D Programming Language
- https://github.com/mratsim/Arraymancer/blob/master/src/array...
It's worth noting that nim async/await transformation is fully implemented as a library in macros.
- Prospects of utilising Nim in scientific computation?
-
How to write performant Nim?
https://github.com/mratsim/Arraymancer 11. « Premature optimisation is the root of all evil », Donald Knuth, The art of computer Programming It would be quite useful that someone writes one with examples for all these recommendations and more ...
-
Deeplearning in Nim?
In particular for deep learning as bobsyourunkl already mentioned there is arraymancer on the one hand and also flambeau on the other. The latter is a Nim wrapper around libtorch (i.e. the PyTorch C++ backend). It is missing things (to be wrapped by adding a few lines) and has some rough edges, but if one needs to get stuff done, it's possible.
-
Mastering Nim – now available on Amazon
how are u compiling (optimization, custom compilation flags etc.?) In my case https://github.com/mratsim/Arraymancer big project compile under your 4.2s so or you have like 10k+ lines of codes with macros or you just pass some debug flags to compiler :D
- Nim Version 1.6.6 Released
- The counter-intuitive rise of Python in scientific computing (2020)
-
Computer Programming with Nim
We have both raw wrappers for BLAS:
https://github.com/andreaferretti/nimblas
as well as LAPACK:
https://github.com/andreaferretti/nimlapack
For an example, consider calling the least squares routine `dgelsd` in arraymancer:
https://github.com/mratsim/Arraymancer/blob/master/src/array...
wrapped up in a nicer user facing API.
Feel free to hop onto matrix, if you have more questions!
What are some alternatives?
genny - Generate a shared library and bindings for many languages.
nimtorch - PyTorch - Python + Nim
c2nim - c2nim is a tool to translate Ansi C code to Nim. The output is human-readable Nim code that is meant to be tweaked by hand before and after the translation process.
Nim - Nim is a statically typed compiled systems programming language. It combines successful concepts from mature languages like Python, Ada and Modula. Its design focuses on efficiency, expressiveness, and elegance (in that order of priority).
nimpy - Nim - Python bridge
nimble - Package manager for the Nim programming language.
Datamancer - A dataframe library with a dplyr like API
awesome-tensor-compilers - A list of awesome compiler projects and papers for tensor computation and deep learning.
nimLUA - glue code generator to bind Nim and Lua together using Nim's powerful macro
nvim-treesitter - Nvim Treesitter configurations and abstraction layer
stan - Stan development repository. The master branch contains the current release. The develop branch contains the latest stable development. See the Developer Process Wiki for details.
application - Buckets Desktop Application