"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)?
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.
"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.
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.
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.
11 comments
[ 2.7 ms ] story [ 33.7 ms ] threadSo 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