Any Lisp extensions for CUDA?

Penumbra is an idiomatic wrapper for OpenGL in Clojure. Calx is an idiomatic wrapper for OpenCL to target CPUs, GPUs, and more exotic hardware. See also calling CUDA from Clojure.

CL-OPENGL is a set of Common Lisp bindings to the OpenGL, GLU and GLUT APIs. CL-GPU is a translator from a subset of Common Lisp to CUDA for writing GPU kernels. ECL-COMPUTE is a DSL for SSE/CUDA computation in Embeddable Common Lisp.


A while ago I made a library to call CUDA-functions/libraries from common lisp. Its purpose was to do things like

(let ((myarray (make-array ...))
      (another-array (make-array ...)))
  ;fill myarray
  (cublas-saxpy n -1.0 another-array 1 myarray 1)
  (cufft-nocopy myarray n :forward t :normalize nil)
  ;use results
  )

Check it out at https://github.com/knutgj/cl-cudalib

The specific functions are currently limited to what I have had use for, but it is trivial to extend to complete cuBLAS and cuFFT as well as roll your own CUDA libraries. Currently only SBCL is supported, but this should also be easy to extend.

I am considering to make a similar package for openCL and the AMD APPML.


I recently start developing cl-cuda which is a library to use NVIDIA CUDA in Common Lisp programs. Although it has just been started and in the very early stage of development, you can try some simple sample codes like large vector addition.

Please see, https://github.com/takagi/cl-cuda

If you are interested in this project, any feedbacks are welcome.