CUDA是否有Lisp扩展名?

问题描述 投票:17回答:4

我刚刚注意到,W.D。Hillis的Connection-Machine的第一种语言是* Lisp,它是Common Lisp的并行结构扩展。 Connection-Machine是具有SIMD架构的大型并行计算机,与现代GPU卡大致相同。

所以,我希望* Lisp适应GPGPU-也许适应nVidia CUDA,因为它是最先进的deacto标准-会很自然。

到目前为止,除了用于C / C ++的nVidia SDK外,我只发现了Python环境PyCUDA。有人听说过Lisp吗?

lisp cuda parallel-processing gpgpu simd
4个回答
22
投票

PenumbraClojure中OpenGL的惯用包装器。 Calx是OpenCL的惯用包装器,用于目标CPU,GPU和更多奇特的硬件。另请参阅calling CUDA from Clojure

CL-OPENGL是对OpenGL,GLU和GLUT API的一组Common Lisp绑定。 CL-GPU是从Common Lisp子集到CUDA的转换器,用于编写GPU内核。 ECL-COMPUTE是用于Embeddable Common Lisp中SSE / CUDA计算的DSL。


11
投票

我最近开始开发cl-cuda,这是一个在Common Lisp程序中使用NVIDIA CUDA的库。尽管它刚刚开始并且处于开发的早期阶段,但是您可以尝试一些简单的示例代码,例如大向量加法。

请看,https://github.com/takagi/cl-cuda

如果您对此项目感兴趣,欢迎您提供任何反馈。


3
投票

不久前,我建立了一个库,以从通用Lisp调用CUDA函数/库。它的目的是做类似的事情

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

https://github.com/knutgj/cl-cudalib签出

特定功能目前仅限于我曾经使用过的功能,但是扩展以完成cuBLAS和cuFFT以及滚动自己的CUDA库是微不足道的。当前仅支持SBCL,但这也应该易于扩展。

我正在考虑为openCL和AMD APPML创建类似的软件包。


0
投票

对于Clojure,使用Dragan Djuric的gpu,neanderthalclojureCUDA进行快速矩阵计算即可。来自同一作者的clojurecl适用于OpenGL。对于张量和神经网络deep-diamond

© www.soinside.com 2019 - 2024. All rights reserved.