2011-05-18 8 views
17

Acabo de señalar que uno de los primeros idiomas para Connection-Machine de W.D. Hillis era * Lisp, una extensión de Common Lisp con construcciones paralelas. Connection-Machine era una computadora masivamente paralela con arquitectura SIMD, muy similar a las tarjetas GPU modernas.¿Alguna extensión de Lisp para CUDA?

Por lo tanto, esperaría que una adaptación de * Lisp a GPGPU - tal vez a nVidia CUDA, ya que es el estándar de de facto estándar - sería bastante natural.

Hasta ahora, además del nVidia SDK para C/C++, solo encontré PyCUDA, un entorno de Python. ¿Alguien ha escuchado algo sobre Lisp?

Respuesta

8

Recientemente comencé a desarrollar cl-cuda que es una biblioteca para usar NVIDIA CUDA en programas Common Lisp. Aunque acaba de iniciarse y en las primeras etapas de desarrollo, puede probar algunos códigos de muestra simples como la adición de vectores grandes.

Por favor, vea, https://github.com/takagi/cl-cuda

Si usted está interesado en este proyecto, las evaluaciones son bienvenidos.

2

Hace un tiempo creé una biblioteca para llamar a CUDA-functions/libraries de lisp común. Su objetivo era hacer cosas como

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

Compruébelo usted mismo en https://github.com/knutgj/cl-cudalib

Las funciones específicas se limitan actualmente a lo que he tenido un uso para, pero es trivial para extenderse a completar CUBLAS y cuFFT así como lanzar sus propias bibliotecas CUDA. Actualmente solo se admite SBCL, pero esto también debería ser fácil de ampliar.

Estoy considerando hacer un paquete similar para openCL y AMD APPML.