Arraymancer
cmdchallenge | Arraymancer | |
---|---|---|
2 | 21 | |
- | 1,309 | |
- | - | |
- | 8.2 | |
- | 6 days ago | |
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.
cmdchallenge
-
Trying to use inotify + cp to move file upon creation.. cp can't reach source
~/git/cmdchallenge master ± inotifywait -m --event create,modify,delete . & [1] 110764 Setting up watches. Watches established. ~/git/cmdchallenge master ± git pull remote: Enumerating objects: 768, done. remote: Counting objects: 100% (209/209), done. remote: Compressing objects: 100% (24/24), done. remote: Total 768 (delta 200), reused 185 (delta 185), pack-reused 559 Receiving objects: 100% (768/768), 323.39 KiB | 16.17 MiB/s, done. Resolving deltas: 100% (474/474), completed with 10 local objects. From https://gitlab.com/jarv/cmdchallenge e97638c3..2c059b85 master -> origin/master * [new branch] next -> origin/next * [new branch] renovate/github.com-docker-docker-23.x -> origin/renovate/github.com-docker-docker-23.x * [new branch] renovate/github.com-mattn-go-sqlite3-2.x -> origin/renovate/github.com-mattn-go-sqlite3-2.x Updating e97638c3..2c059b85 ./ DELETE .asdf-plugins ./ CREATE .asdf-plugins ./ MODIFY .asdf-plugins ./ DELETE .envrc.example ./ CREATE .envrc.example ./ MODIFY .envrc.example ./ DELETE .gitignore ./ CREATE .gitignore ./ MODIFY .gitignore ./ DELETE .tool-versions ./ CREATE .tool-versions ./ MODIFY .tool-versions ./ DELETE Makefile ./ CREATE Makefile ./ MODIFY Makefile ./ DELETE README.md ./ CREATE README.md ./ MODIFY README.md ./ DELETE challenges.yaml ./ CREATE challenges.yaml ./ MODIFY challenges.yaml ./ MODIFY challenges.yaml ./ MODIFY challenges.yaml ...
-
Nim Version 1.6 Released
I have written a bit of both, recently re-wrote a command runner for a side-project https://gitlab.com/jarv/cmdchallenge in Nim and found it very pleasant and much less verbose, which was a nice change from GoLang while keeping type safety. A good example is parsing JSON https://nim-by-example.github.io/json/ as you can do a lot with fewer lines of code. I think the main disadvantage of Nim is that there is less out there in the ecosystem, libraries, and it's more likely you will run into quirks and bugs in the standard library.
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"
https://github.com/mratsim/Arraymancer
-
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?
wrk - Modern HTTP benchmarking tool
nimtorch - PyTorch - Python + Nim
nlvm - LLVM-based compiler for the Nim language
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).
treesitter-unit - A Neovim plugin to deal with treesitter units
nimble - Package manager for the Nim programming language.
nvim-treesitter - Nvim Treesitter configurations and abstraction layer
awesome-tensor-compilers - A list of awesome compiler projects and papers for tensor computation and deep learning.
nvim-treesitter-textobjec
prologue - Powerful and flexible web framework written in Nim