futswirl | pareas | |
---|---|---|
1 | 1 | |
6 | 280 | |
- | - | |
4.8 | 4.1 | |
4 months ago | 2 months ago | |
Futhark | Futhark | |
GNU General Public License v3.0 only | - |
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.
futswirl
pareas
-
GPU Programming: When, Why and How?
Compared to Halide:
* Futhark does not expose a scheduling language that gives you precise control over code generation. This is probably the main selling point of Halide.
* Futhark has a much broader focus than Halide, which is mainly oriented towards image processing. Futhark wants to support arbitrary data parallel computation. E.g. see this compiler written in Futhark: https://github.com/Snektron/pareas
Compared to Sycl:
* Futhark is a non-embedded language that is more high level than Sycl. The goals are similar in the sense that both systems to try make (data) parallel programming more accessible. The vision behind Futhark is that the conventional functional programming vocabulary is actually a pretty good fit for parallelism, and that an aggressively optimising compiler can reduce or eliminate the overhead of abstraction. I don't think Sycl is as focused on high levels of abstraction, but rather focuses on being a relatively low-level portable programming interface.
What are some alternatives?
HarkDB - Multi-backend GPU query engine written with Futhark
futhark-metal - :boom::computer::boom: A data-parallel functional programming language
hastl - HaSTL: A fast GPU implementation of STL decomposition with missing values and support for both CUDA and OpenCL
diving-beet - A port of Falling Turnip from Haskell to Futhark and Go :car: :boom:
Ark - ArkScript is a small, fast, functional and scripting language for C++ projects
futhark-mode - Emacs major mode for editing Futhark programs
Feral - Feral programming language reference implementation
bfast - GPU Implementation for BFAST
jank - A Clojure dialect hosted on LLVM with native C++ interop