GPU

2012-03-16 19 views
6

पर eigenvalues ​​और eigenvectors की गणना के लिए खराब प्रदर्शन कुछ कोड में हमें समेकित वास्तविक matrices (एक्स = लांबा बीएक्स) के साथ सामान्यीकृत eigenvalue समस्या के लिए ऑटो वैक्टर और ऑटो मान प्राप्त करने की आवश्यकता है। यह कोड LACPACK से डीएसपीजीवीएक्स का उपयोग करता है। हम एक Magma समारोह का उपयोग कर जीपीयू पर इसे गति देना चाहते थे। हम इस मंच पर पूछा और के बारे में इसGPU

http://icl.cs.utk.edu/magma/docs/zhegvx_8cpp.html

हमारे मैट्रिक्स की (एन) आकार चला जाता है 100 से 50000 और भी अधिक करने के लिए, एक अणु में परमाणुओं की संख्या से संबंधित जवाब मिला है। हम देखते हैं:

ए) 2500 (लगभग) से बड़ा एन के लिए, मैग्मा बस काम नहीं करता है; सेगमेंटेशन गलती बी) मैग्मा हमेशा LAPACK अनुक्रमिक से धीमी गति से चलती है, लगभग 10 गुना धीमी

क्या यह व्यवहार सामान्य है और क्या हम इसे दूर कर सकते हैं? क्या कोई भी किसी भी संदर्भ की रिपोर्ट कर सकता है जहां इस तरह की समस्याओं पर काम करने वाले किसी भी व्यक्ति को सभ्य गति मिलती है?

धन्यवाद

+3

आपका क्या मतलब है "काम नहीं करता" ... क्या यह नहीं चलता है? क्या यह गलत परिणाम उत्पन्न करता है, क्या यह रनटाइम पर दुर्घटनाग्रस्त हो जाता है? – prelic

+0

आप किस GPU पर इसे चला रहे हैं? – talonmies

+0

4 जीबी रैम – flow

उत्तर

4

मेरे अनुभव में आप एक बेहतर eigensolver में स्विच करके अधिक से अधिक प्रदर्शन लाभ हासिल करने में सक्षम हो सकता है। मुझे पता है कि सबसे अच्छा सॉल्वर ARPACK है। आपको सबसे अधिक लाभ मिलेगा कि आपके मैट्रिस में कुछ संरचना है, उदाहरण के लिए यदि वे स्पैस हैं। यह सॉल्वर भी सबसे कुशल है यदि आपको केवल ईजिनपेयर की कुल संख्या का एक छोटा सा अंश निकालने की आवश्यकता है।

मैं इस सॉल्वर को केवल CPU पर चलने वाली समस्याओं पर कोशिश करके शुरू कर दूंगा। आप पाते हैं कि यह अकेले आपकी आवश्यकताओं के लिए पर्याप्त प्रदर्शन देता है। यदि नहीं तो एपीपीएसी के लिए जीपीयू में गणना कोर को स्थानांतरित करना अपेक्षाकृत आसान है। या, ARPACK के समानांतर संस्करण उपलब्ध हैं।

+0

क्या आपको लगता है कि घने matrices के मामले में ARPACK लागू किया जा सकता है?यदि हां, तो क्या आप कुछ उदाहरण बता सकते हैं? धन्यवाद – flow

+0

यह matrices के प्रकार पर कोई धारणा नहीं करता है। रिवर्स पासिंग इंटरफेस के बारे में पढ़ें और आप समझेंगे कि ऐसा क्यों है। –

+0

आप केवल उदारता जीतने के लायक हैं, न केवल आपके प्रेरणादायक उत्तर बल्कि आपकी उत्कृष्ट तस्वीर भी दी, धन्यवाद – flow

2

क्या आपने CULA http://www.culatools.com/ को आजमाया है? सीयूएलए लैपैक को एनवीआईडीआईए द्वारा सीयूडीए के लिए परिवर्तित किया गया है, इसलिए कम से कम सिद्धांत में इसे सामान्यीकृत ईजेनवाल समस्या के लिए सबसे अच्छा कार्यान्वयन होना चाहिए। मुझे लगता है कि एकल परिशुद्धता संस्करण मुफ्त है ताकि आप इसे आज़मा सकें।

+0

मुझे एक नज़र थी लेकिन मुझे सामान्यीकृत eigenvalue समस्या के कार्यान्वयन से संबंधित कोई जानकारी नहीं मिली। सरल eigenvalue समस्या के बारे में केवल जानकारी की सूचना दी गई है, क्या मैं सही हूँ? – flow

+2

@flow आप सही हैं। मैंने सामान्यीकृत समस्या के लिए एक सममित eigenvalue समस्या को हल करने के लिए केवल CULA का उपयोग किया है। क्षमा करें गलतफहमी। – mmisu