2011-04-03 13 views
9

क्या किसी को भी CUDA डिवाइस पर हैश मानचित्र लागू करने का कोई अनुभव है? विशेष रूप से, मैं सोच रहा हूं कि डिवाइस पर मेमोरी आवंटित करने और परिणाम को वापस होस्ट पर कैसे कॉपी किया जा सकता है, या क्या कोई उपयोगी पुस्तकालय है जो इस कार्य को सुविधाजनक बना सकता है।CUDA - डिवाइस हैश मैप लागू करना?

ऐसा लगता है कि मुझे डिवाइस मेमोरी आवंटित करने के लिए हैश मानचित्र का अधिकतम आकार एक प्राथमिकता जानने की आवश्यकता होगी। मेरे पिछले सभी CUDA प्रयासों ने सरणी और memcpys का उपयोग किया है और इसलिए काफी सरल है।

इस समस्या में कोई अंतर्दृष्टि की सराहना की जाती है। धन्यवाद।

उत्तर

8

जेसन सैंडर्स और एडवर्ड क्रांडरोट से "उदाहरण के अनुसार सीयूडीए" में प्रस्तुत एक जीपीयू हैश टेबल कार्यान्वयन है।

सौभाग्य से, आप इस पुस्तक के बारे में जानकारी प्राप्त कर सकते हैं और इस पृष्ठ पर स्वतंत्र रूप से उदाहरण स्रोत कोड डाउनलोड:
http://developer.nvidia.com/object/cuda-by-example.html

इस कार्यान्वयन में, तालिका पूर्व आवंटित पर सीपीयू और सुरक्षित बहु-क्रम का उपयोग कर सकते है परमाणु कार्य परमाणु सीएएस (तुलना और स्वैप) के आधार पर एक ताला समारोह द्वारा सुनिश्चित किया गया।

इसके अलावा, सीयूडीए = = 4.0 के साथ संयुक्त नई हार्डवेयर पीढ़ी (2.0 से) GPU (http://developer.nvidia.com/object/cuda_4_0_RC_downloads.html?utm_source=http://forums.nvidia.com&utm_medium=http://forums.nvidia.com&utm_term=Developers&utm_content=Developers&utm_campaign=CUDA4) पर सीधे नए/हटाए गए ऑपरेटरों का उपयोग करने में सक्षम होना चाहिए, जो आपके कार्यान्वयन की सेवा कर सकता है। मैंने अभी तक इन सुविधाओं का परीक्षण नहीं किया है।

3

मुझे याद है कि किसी ने thrust के शीर्ष पर एक सीधा नक्शा कार्यान्वयन विकसित किया है। इसके लिए here के लिए कुछ कोड है, हालांकि यह वर्तमान जोर रिलीज के साथ काम करता है, जो कुछ मुझे नहीं पता है। यह कम से कम आपको कुछ विचार दे सकता है।

+0

अद्यतन: चूंकि Google कोड प्लेटफ़ॉर्म बंद होने वाला है, इसलिए आप इस गिटहब भंडार में: https://github.com/djebm2/cuda-thrust-extensions/tree/master/hash%20map कर सकते हैं – Madhatter

1

AFAIK, हैश "उदाहरण के द्वारा Cuda" में दी गई सारणी भी अच्छा प्रदर्शन नहीं करता। वर्तमान में, मुझे विश्वास है, CUDA पर सबसे तेजी से हैश तालिका Dan Alcantara's PhD dissertation में दी गई है। अध्याय 6 देखें।

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