【问题标题】:Any Lisp extensions for CUDA?CUDA 的任何 Lisp 扩展?
【发布时间】:2011-08-28 04:10:08
【问题描述】:

我刚刚注意到 W.D. Hillis 的 Connection-Machine 的首批语言之一是 *Lisp,它是具有并行结构的 Common Lisp 的扩展。 Connection-Machine 是具有 SIMD 架构的大规模并行计算机,与现代 GPU 卡非常相似。

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

到目前为止,除了nVidia SDK for C/C++,我只找到了Python环境PyCUDA。有人听说过 Lisp 吗?

【问题讨论】:

    标签: lisp cuda parallel-processing gpgpu simd


    【解决方案1】:

    PenumbraClojure 中 OpenGL 的惯用包装器。 Calx 是 OpenCL 的惯用包装器,用于针对 CPU、GPU 和更奇特的硬件。另见calling CUDA from Clojure

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

    【讨论】:

      【解决方案2】:

      我最近开始开发 cl-cuda,这是一个在 Common Lisp 程序中使用 NVIDIA CUDA 的库。虽然刚刚起步,处于开发的初期阶段,但是可以尝试一些简单的示例代码,比如大向量加法。

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

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

      【讨论】:

        【解决方案3】:

        不久前,我创建了一个库来从 common 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 制作一个类似的包。

        【讨论】:

          【解决方案4】:

          对于 Clojure,Dragan Djuric 使用 gpu、neanderthalclojureCUDA 的快速矩阵计算将带来它。 来自同一作者,clojurecl 用于 OpenGL。 对于张量和神经网络deep-diamond.

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2013-12-09
            • 1970-01-01
            • 1970-01-01
            • 2022-06-14
            • 2021-09-02
            • 2010-09-27
            相关资源
            最近更新 更多