2011-09-28 26 views
9

की लाइब्रेरी फ़ंक्शन क्षमताओं मैं GPU की शक्ति का उपयोग करने के लिए गणित के लिए बाहरी रैखिक सॉल्वर के रूप में CUSP का उपयोग करने का प्रयास कर रहा हूं। यहां CUSP Project webpage है। मैं कुछ सुझाव मांग रहा हूं कि हम गणित के साथ सीयूएसपी को कैसे एकीकृत कर सकते हैं। मुझे यकीन है कि आप में से कई इस पर चर्चा करने में रुचि रखते हैं। मुझे लगता है कि एक इनपुट मैट्रिक्स लिखना और फिर इसे सीयूएसपी कार्यक्रम में खिलााना जाने का तरीका नहीं है। गणित के LibrarayFunctionLoad का उपयोग मक्खी पर जीपीयू आधारित सॉल्वर को इनपुट मैट्रिक्स को पाइपलाइन करने का एक बेहतर तरीका होगा। गणित से सीधे मैट्रिक्स और दाएं हाथ की ओर मैट्रिक्स की आपूर्ति करने का तरीका क्या होगा?गणित

यहां कुछ सीयूएसपी कोड स्निपेट है।

#include <cusp/hyb_matrix.h> 
#include <cusp/io/matrix_market.h> 
#include <cusp/krylov/cg.h> 

int main(void) 
{ 
// create an empty sparse matrix structure (HYB format) 
cusp::hyb_matrix<int, float, cusp::device_memory> A; 

// load a matrix stored in MatrixMarket format 
cusp::io::read_matrix_market_file(A, "5pt_10x10.mtx"); 

// allocate storage for solution (x) and right hand side (b) 
cusp::array1d<float, cusp::device_memory> x(A.num_rows, 0); 
cusp::array1d<float, cusp::device_memory> b(A.num_rows, 1); 

// solve the linear system A * x = b with the Conjugate Gradient method 
cusp::krylov::cg(A, x, b); 

return 0; 
} 

यह सवाल हमें मेथेमेटिका 8. का संकलन क्षमताओं यह भी एमएमए के mathlink इंटरफेस के विषय को लागू करने के लिए संभव है पर चर्चा के लिए संभावना प्रदान करता है। मुझे आशा है कि यहां लोगों को इस समस्या को समझने के लिए योग्य और दिलचस्प लगेगा।

बीआर

+1

कृपया ध्यान रखें कि स्टैक ओवरव्लो का प्रारूप चर्चाओं के लिए उपयुक्त नहीं है। यह एक मंच नहीं है। यथासंभव क्यू एंड ए प्रारूप में रहने की कोशिश करें। –

+1

@belisarius मुझे तुम्हारा अंक मिला। मुझे कुछ समय दें एक ठोस सवाल फ्रेम। लेकिन सवाल यह था कि इस समस्या पर हमला कैसे करें। याद दिलाने के लिए धन्यवाद.. – PlatoManiac

उत्तर

1

आप LibraryLink (जिसके लिए LibraryFunctionLoad एक मेथेमेटिका downvalue के रूप में एक गतिशील पुस्तकालय समारोह का उपयोग करने के लिए किया जाता है) वहाँ वास्तव में है चर्चा के लिए बहुत ज्यादा नहीं कमरे का उपयोग करने के लिए, LibraryFunctions मशीन युगल या मशीन के मेथेमेटिका tensors प्राप्त कर सकते हैं पूर्णांक और आप कर रहे हैं।

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

पूर्ण विवरण के लिए LibraryLink tutorial का संदर्भ लें।

आप विशेष रूप से ध्यान देने योग्य अनुभाग Interaction with Mathematica पेज में "MTensors की मेमोरी मैनेजमेंट", और "साझा" मोड सिर्फ संदर्भ द्वारा एक मेथेमेटिका टेन्सर पारित करने के लिए चुनें चाहते हैं।