Re:High Performance Array Programming in Lisp
by guenthert on Tuesday May 07, 2024 @04:14AM
(#40283420)
"Not only is this JIT-compiler just 8 lines of code, it is also 20 times faster than invoking GCC or Clang on a roughly equivalent piece of C code."
So about as fast as TinyCcompiler (tcc)? Which produces faster code (in the context of HPC, elegance and ease of development takes a backseat to sheer performance, methinks)?
Re:High Performance Array Programming in Lisp
by guenthert on Tuesday May 07, 2024 @06:12AM
(#40283958)
iiuc, that JIT-compiler uses the CL-image's compile function. That won't do any good, if in a HPC environment the actual heavy lifting is to be done on equipment other than the main CPU, e.g. a GPGPU or (earlier) Xeon Phi.
Re:High Performance Array Programming in Lisp
by guenthert on Tuesday May 07, 2024 @07:24AM
(#40284292)
"We already have code generators for turning kernels into Com-
mon Lisp code and for turning a subset of kernels into C++ or CUDA
code. Right now, our strategy is to use C++ and GCC when possible,
and Common Lisp code otherwise. In the future, we plan to make
the C++ generator obsolete by using SIMD optimized Common Lisp instead. Doing so would build on our previous work on s b - s i m d that
we presented at the 15th European Lisp Symposium in Porto"
My take from that is, that for CUDA external tools are used today. Still, interesting work.
Re:High Performance Array Programming in Lisp
by heisig on Wednesday May 08, 2024 @02:30AM
(#40294969)
Heh, thanks :)
Petalisp author here - this ELS paper is just a preview. I'm also preparing a 160 page document (for my PhD) that will explain everything in more detail. I'll post on HN when it is available.
Re:High Performance Array Programming in Lisp
by EdwardCoffin on Wednesday May 08, 2024 @10:11AM
(#40298323)
I was a bit surprised to see no mention of StarLisp [1]. Is this just a fundamentally different approach? I can imagine that targeting modern machines rather than the Connection Machine would be very different, but I thought the notations used in StarLisp were nice and could be reused.
So about as fast as TinyCcompiler (tcc)? Which produces faster code (in the context of HPC, elegance and ease of development takes a backseat to sheer performance, methinks)?
My take from that is, that for CUDA external tools are used today. Still, interesting work.
Petalisp: A DSL in CL intended for high performance array-based computing - https://news.ycombinator.com/item?id=17170393 - May 2018 (1 comment)
Petalisp author here - this ELS paper is just a preview. I'm also preparing a 160 page document (for my PhD) that will explain everything in more detail. I'll post on HN when it is available.
There is also a recording of my ELS talk on Twitch: https://www.twitch.tv/videos/2138821711?t=00h40m35s
[1] https://en.wikipedia.org/wiki/*Lisp