Accelerate

(github.com)

40 points | by tosh 2 hours ago

5 comments

  • cpa 30 minutes ago
    For those wondering what it's for: it's basically NumPy + a JIT compiler with standard Haskell syntax (you mostly just need to change the type signatures, not the code).

    It can vectorize, parallelize on the CPU, or offload to the GPU automatically.

    It's a very mature project, maybe 10+ years old.

  • nine_k 27 minutes ago
    If the weird syntax of APL and J bothers you, you can use the familiar Haskell syntax!

    Jokes aside, types should help a lot.

  • dcrazy 26 minutes ago
    I guess the author is unaware of Accelerate.framework, the vector library that has shipped with Mac OS since Jaguar.
    • LatencyKills 11 minutes ago
      Heh... I just spent 5 minutes looking at the repo, wondering the same thing. (I was a dev on the performance team at Apple) ;-)
    • nozzlegear 11 minutes ago
      Were the authors of Accelerate.framework unaware of the word Accelerate, which has shipped with the English language since the 1500s?

      /s

      Overlaps in naming happen, especially when we all want to choose simple and catchy words like "Accelerate."

  • ruguo 36 minutes ago
    What’s the main use case for this?
    • Athas 0 minutes ago
      Making Haskell programs go faster. I will say that Accelerate is in most cases not faster than similar libraries for other languages (e.g. Jax), but the integration with normal Haskell is very pleasant. As Haskell is a very nice and practical language for general-purpose programming, it's convenient to be able to use Accelerate for those parts where numerical performance is critical (but not so critical that you rewrite the entire program in CUDA or C).
  • mgaunard 2 hours ago
    aren't there like dozens of similar things with pretty much the same name?
    • arjie 10 minutes ago
      Yes, and that’s fine. There are many notable Michael Jordans for instance. Maybe they could have taken the opportunity to call this one Haccelerate or Haskellerate or something like that but there is no reason for everything to have a distinct name. Context has sufficient namespacing.
    • whateveracct 1 hour ago
      Maybe. Nothing else in Haskell named similarly, so it's not confusing.

      also, accelerate was first published to Hackage in 2009 though so it isn't an especially new thing.

    • embedding-shape 1 hour ago
      I think we ran out of `$NameFast` and `Fast$Name`, so people are just using plain verbs as names now, ideally as similar to something existing as possible, so you can attempt to steal their SEO and similar nifty "growth hacking" stuff.