PIM-Programming-In-Spiral-UPMEM-Demo VS HVM

Compare PIM-Programming-In-Spiral-UPMEM-Demo vs HVM and see what are their differences.

HVM

A massively parallel, optimal functional runtime in Rust (by HigherOrderCO)
InfluxDB - Power Real-Time Data Analytics at Scale
Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.
www.influxdata.com
featured
SaaSHub - Software Alternatives and Reviews
SaaSHub helps you find the best software and product alternatives
www.saashub.com
featured
PIM-Programming-In-Spiral-UPMEM-Demo HVM
5 110
2 7,191
- 2.9%
10.0 8.9
over 1 year ago 4 days ago
Python Cuda
Mozilla Public License 2.0 MIT License
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
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.

PIM-Programming-In-Spiral-UPMEM-Demo

Posts with mentions or reviews of PIM-Programming-In-Spiral-UPMEM-Demo. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2023-01-14.
  • Ask HN: How do I get the most benefit out of my programming language?
    3 projects | news.ycombinator.com | 14 Jan 2023
    I originally started work on [Spiral](https://github.com/mrakgr/The-Spiral-Language) back in late 2016 because I wanted a functional language in which I could program novel AI hardware that hadn't existed at the time, and still doesn't, but it won't be long before it arrives. It took 3 years of full time work to get it to its current standard of quality, and I'd really feel comfortable programming new hardware devices in my favored functional style. I've designed Spiral so it is both extremely powerful, easy to use while being efficient enough to program devices like GPUs that can't even use heap allocation for their objects.

    I am not really concerned about what I'll do when I get access to Tenstorrent chips in six months; my personal needs for the language are met. But I would like it if I could spread the language more broadly, make it useful for people other than myself and get people to sponsor my work on it.

    Here is the value proposition of Spiral.

    It is a high-level functional PL that has some features that other languages don't, but that isn't really the point. On mainstream devices like the x86 ones there are a lot of programming languages that are good, and it would be tedious to use Spiral to compile to such platforms compared to using such languages directly. It is a bit how ReasonML compiles to JS. Back when I tried it I found using Typescript easier to deal with. So that is not where I'd like to go into, though using Spiral would have benefits in certain areas.

    Rather, while reading the [CNX blog](https://www.cnx-software.com/) I realized that while consumer facing AI chips are not here yet, there is a lot of hardware development in the embedded space. They are heterogenous architecture. They have GPU and TPUs in addition to CPUs. And these cross platform interactions within the same system is something that existing languages are really poor at tackling.

    If you look at Python or C#, for example, you can't really program the GPU on them directly. They are CPU focused, and don't have the right semantics and would be too inefficient to program devices like GPUs directly. The way I've designed Spiral is that you can program the CPU and the GPU and whatever else from within the same language.

    It is not suitable for just GPUs, check this [demo out](https://github.com/mrakgr/PIM-Programming-In-Spiral-UPMEM-Demo). I recently did a backend for UPMEM devices, which are the first commercialized Process-In-Memory chips. I've posted the link to this on HN yesterday and on the Reddit embedded sub, but I got zero interest. And this is really a pity because that map kernel I've demoed is actually a big deal. Back when I first started working on Spiral, it took me 1.5 years of full time work to get to the point where I could write a program like that in the language. And without backend nesting of the kind that Spiral offers, it is impossible to write those kinds of programs no matter how skilled one is as a programmer.

    The kind of backend nesting I've demonstrated is not something you can do in F#, Python or any of the languages that I know of. I could easily create such backends for many kinds of hardware. And people would benefit from that because unlike the mainstream computing devices, the hardware coming down the pipeline will have poor language support, nothing on the level of what Spiral offers. For the kinds of heterogeneous architectures I am envisioning, the language designs that are good in the CPU-dominant era, will simply not be suited in the heterogeneous era.

    I need chances to demonstrate how good Spiral is, but I am not sure how to get them. If I do not get them, the future of computing will be a lot worse off. I wasn't there when Cuda was incumbent so I missed the boat on that, but I'd like it if Spiral became dominant on future computing devices. Not because I was the one who made the language, but simply because no other design is as suited for them.

  • Show HN: PIM Programming in Spiral: Upmem Demo
    1 project | news.ycombinator.com | 13 Jan 2023
  • PIM Programming in Spiral: Upmem Demo
    1 project | news.ycombinator.com | 13 Jan 2023
  • PIM Programming In Spiral: UPMEM Demo
    1 project | /r/embedded | 13 Jan 2023
  • PIM (Process In Memory) Programming In Spiral: UPMEM Demo
    2 projects | /r/ProgrammingLanguages | 3 Jan 2023

HVM

Posts with mentions or reviews of HVM. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2023-11-12.
  • SaberVM
    1 project | news.ycombinator.com | 23 Jan 2024
    Reminds me of HVM[0]

    [0]https://github.com/HigherOrderCO/HVM

    Really interesting to see how new lang concepts and refinements keep popping up this last decade, between Vale, Gleam, Hylo, Austral...

    Linear types really opened up lots of ways to improve memory management and compilation improvements.

  • GPU Survival Toolkit for the AI age: The bare minimum every developer must know
    2 projects | news.ycombinator.com | 12 Nov 2023
  • A new F# compiler feature: graph-based type-checking
    9 projects | news.ycombinator.com | 5 Nov 2023
    I have a tangential question that is related to this cool new feature.

    Warning: the question I ask comes from a part of my brain that is currently melted due to heavy thinking.

    Context: I write a fair amount of Clojure, and in Lisps the code itself is a tree. Just like this F# parallel graph type-checker. In Lisps, one would use Macros to perform compile-time computation to accomplish something like this, I think.

    More context: Idris2 allows for first class type-driven development, where the types are passed around and used to formally specify program behavior, even down to the value of a particular definition.

    Given that this F# feature enables parallel analysis, wouldn't it make sense to do all of our development in a Lisp-like Trie structure where the types are simply part of the program itself, like in Idris2?

    Also related, is this similar to how HVM works with their "Interaction nets"?

    https://github.com/HigherOrderCO/HVM

    https://www.idris-lang.org/

    https://clojure.org/

    I'm afraid I don't even understand what the difference between code, data, and types are anymore... it used to make sense, but these new languages have dissolved those boundaries in my mind, and I am not sure how to build it back up again.

  • A History of Functional Hardware
    1 project | news.ycombinator.com | 12 Jul 2023
    Impressive presentation but I find two things missing in particular:

    * GRIN [1] - arguably a breakthrough in FP compilation; there are several implementation based on this

    * HVM [2] - parallel optimal reduction. The results are very impressive.

    [1] https://link.springer.com/chapter/10.1007/3-540-63237-9_19

    [2] https://github.com/HigherOrderCO/HVM

  • Is the abstraction of lazy-functional-purity doomed to leak?
    1 project | /r/ProgrammingLanguages | 11 Jun 2023
    Purity has nothing to do with memoization. Haskell's semantics never "rewrite under a lambda" (unlike, e.g. HVM). Calling (\_ -> e) () twice will (modulo optimizations) always perform the computation in e twice.
  • Can one use lambda calculus as an IR?
    3 projects | /r/Compilers | 6 Jun 2023
    The most recent exploration of this, that I'm aware of is HVM (another intermediate language / runtime), although this one is not actually based on the lambda calculus, but on the interaction calculus.
  • The Rust I Wanted Had No Future
    4 projects | /r/rust | 5 Jun 2023
    Then, actually unrelated but worth mentioning: HVM. Finally, something new on the functional front that isn't dependent types!
  • The Halting Problem Is Decidable on a Set of Asymptotic Probability One (2006)
    2 projects | news.ycombinator.com | 28 May 2023
  • Bachelor Thesis Topic
    1 project | /r/rust | 24 May 2023
    If you are into functional PL, how about https://github.com/HigherOrderCO/HVM? You could experiment if you could schedule that on a GPU?
  • For those of you self taught,how did you cope with distractions while using a computer ?
    2 projects | /r/ADHD_Programmers | 8 May 2023
    In the interest of seeking ways of optimizing my code, I stumbled upon http://www.rntz.net/datafun/ as a means to do incremental computations of fixpoints while avoiding redundant work. And also the idea of automatic parallelism achieved by using Interaction Nets as a model of computation https://github.com/HigherOrderCO/HVM.

What are some alternatives?

When comparing PIM-Programming-In-Spiral-UPMEM-Demo and HVM you can also consider the following projects:

Kind - A next-gen functional language [Moved to: https://github.com/Kindelia/Kind2]

rust-gpu - 🐉 Making Rust a first-class language and ecosystem for GPU shaders 🚧

SICL - A fresh implementation of Common Lisp

Sharp-Bilinear-Shaders - sharp bilinear shaders for RetroPie, Recalbox and Libretro for sharp pixels without pixel wobble and minimal blurring

fslang-suggestions - The place to make suggestions, discuss and vote on F# language and core library features

atom - A DSL for embedded hard realtime applications.

Vale - Compiler for the Vale programming language - http://vale.dev/

jre-missing - Automatically detects and lists episodes of The Joe Rogan Experience podcast that are currently not available on the Spotify platform. Also detects if episodes have been shortened in duration.

frag - Frag is a 3D first person shooting game written in Haskell, by Mun Hon Cheong

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).

imba - 🐤 The friendly full-stack language

Lua - Lua is a powerful, efficient, lightweight, embeddable scripting language. It supports procedural programming, object-oriented programming, functional programming, data-driven programming, and data description.