2011-05-18 123 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製作一個類似的包。