2011-05-18 119 views
17

我刚才注意到,W.D.Hallis的Connection-Machine的第一种语言是* Lisp,它是Common Lisp的一个扩展,具有并行结构。 Connection-Machine是一款采用SIMD架构的大规模并行计算机,与现代GPU卡非常相似。因此,我认为将* Lisp改编成GPGPU--可能是nVidia CUDA,因为它是最先进的事实上的标准 - 是非常自然的。CUDA的任何Lisp扩展?

到目前为止,除了用于C/C++的nVidia SDK之外,我只能找到Python环境PyCUDA。有没有人听说过关于Lisp的一切?

回答

8

我最近开始开发cl-cuda,它是一个在Common Lisp程序中使用NVIDIA CUDA的库。虽然它刚刚开始,并处于开发的最初阶段,但您可以尝试一些简单的示例代码,如大型矢量添加。

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

如果你有兴趣在此项目中,任何反馈是受欢迎的。

2

前一段时间我做了一个库来调用通用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制作一个类似的包。