2011-05-18 8 views
17

मैंने अभी ध्यान दिया है कि डब्ल्यूडी हिलिस की कनेक्शन-मशीन के लिए पहली भाषाओं में से एक * लिस्प, समानांतर संरचनाओं के साथ आम लिस्प का विस्तार था। कनेक्शन-मशीन सिमड आर्किटेक्चर के साथ एक बड़े पैमाने पर समांतर कंप्यूटर था, जो आधुनिक जीपीयू कार्ड के समान ही था।CUDA के लिए कोई लिस्प एक्सटेंशन?

तो, मैं उम्मीद करता हूं कि * लिस्प को जीपीजीपीयू के लिए एक अनुकूलन - शायद एनवीडिया सीयूडीए के रूप में, क्योंकि यह सबसे उन्नत डी फैक्टो मानक है - काफी प्राकृतिक होगा।

अब तक, सी/सी ++ के लिए एनवीडिया एसडीके के अलावा, मुझे केवल पायक्यूडा, पायथन पर्यावरण मिला। क्या किसी ने लिस्प के बारे में कुछ सुना है?

उत्तर

21

PenumbraClojure में ओपनजीएल के लिए एक बेवकूफ रैपर है। Calx सीपीयू, जीपीयू, और अधिक विदेशी हार्डवेयर को लक्षित करने के लिए ओपनसीएल के लिए एक बेवकूफ रैपर है। calling CUDA from Clojure भी देखें।

CL-OPENGL ओपनजीएल, जीएलयू और जीएलयूटी एपीआई में Common Lisp बाइंडिंग का एक सेट है। CL-GPU जीपीयू कर्नल लिखने के लिए सामान्य लिस्प से सीयूडीए के उप-समूह से अनुवादक है। ECL-COMPUTEEmbeddable Common Lisp में एसएसई/सीयूडीए गणना के लिए एक डीएसएल है।

8

मैंने हाल ही में सीएल-क्यूडा विकसित करना शुरू किया जो आम लिस्प कार्यक्रमों में एनवीडिया सीयूडीए का उपयोग करने के लिए एक लाइब्रेरी है। यद्यपि यह अभी शुरू हो गया है और विकास के शुरुआती चरण में, आप कुछ सरल नमूना कोड जैसे बड़े वेक्टर जोड़ों को आजमा सकते हैं।

कृपया देखें, https://github.com/takagi/cl-cuda

आप इस परियोजना में रुचि रखते हैं, किसी भी फीडबैक का स्वागत है।

2

कुछ समय पहले मैंने सामान्य लिस्प से CUDA-functions/पुस्तकालयों को कॉल करने के लिए एक लाइब्रेरी बनाई थी। इसका उद्देश्य की तरह

(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 पुस्तकालयों के रूप में रोल। वर्तमान में केवल एसबीसीएल समर्थित है, लेकिन इसे विस्तारित करना भी आसान होना चाहिए।

मैं ओपनसीएल और एएमडी एपीएमएल के लिए एक समान पैकेज बनाने पर विचार कर रहा हूं।

संबंधित मुद्दे