मैंने CUDA C++ का उपयोग करके क्षैतिज या लंबवत छवि को मिरर करने के लिए एक बेवकूफ फ़ंक्शन विकसित किया।एनपीपी कार्यों को पूरी तरह अनुकूलित नहीं कर रहे हैं?
तब मुझे पता चला कि NVIDIA प्रदर्शन प्रिमिटिव लाइब्रेरी भी छवि मिरर के लिए एक समारोह प्रदान करता है आया था।
बस तुलना के लिए, मैंने एनपीपी के खिलाफ अपना कार्यकाल का समय दिया। आश्चर्य की बात है, मेरे समारोह से बेहतर प्रदर्शन (हालांकि एक छोटे मार्जिन से, लेकिन अभी भी ...)।
मैं साथ ही Windows टाइमर का उपयोग, CUDA टाइमर द्वारा परिणाम कई बार की पुष्टि की।
मेरा प्रश्न यह है कि: एनपीआईडीआई जीपीयू के लिए एनपीपी कार्यों को पूरी तरह से अनुकूलित नहीं किया गया है?
मैं CUDA 5.0 का उपयोग कर रहा हूँ, GeForce GTX460M (कंप्यूट 2.1), और विकास के लिए Windows 8।
प्रतिशत में अंतर क्या था? मिररिंग ऑपरेशंस मेमोरी बाउंड होंगे और नए डिवाइस लचीले होते हैं, जिसमें मेमोरी एक्सेस पैटर्न किस तरह से कुशलता से संभाले जाएंगे। एक निष्क्रिय कार्यान्वयन नए उपकरणों पर इष्टतम के करीब हो सकता है। शायद एनपीपी संस्करण पुराने उपकरणों के लिए बेहतर काम करता है। आप प्रोफाइलर से अपने कर्नेल के लिए मेमोरी बैंडविड्थ आंकड़े प्राप्त कर सकते हैं और उन्हें अपने डिवाइस के लिए अधिकतम तुलना कर सकते हैं। –
मैंने 4 प्रकार की छवियों और 2 अलग-अलग आकारों पर परीक्षण किया। 8 बिट, 16 बिट, 1 चैनल, 3 चैनल, (1280 x 720), (1920 x 1080)। मुझे आकार के 16 बिट एकल चैनल छवि (1280 x 720) में अधिकतम गति मिली, जो एनपीपी के बाद 18.75 प्रतिशत तेज था। – sgarizvi
आप सही हैं कि एनपीपी के प्रदर्शन की कमी है। मुझे सीयूडीए छवि प्रसंस्करण करने के लिए वहां बेहतर पुस्तकालय मिल गए हैं। मुझे व्यक्तिगत रूप से ऐरेफ़ीयर के इमेज प्रोसेसिंग चयन पसंद हैं और इसे तेजी से पाया गया है, http://www.accelereyes.com/arrayfire/c/group__image__mat.htm अन्य लोगों ने ओपनसीवी की जीपीयू सुविधाओं का उपयोग करने की सूचना दी है, हालांकि मैंने महान चीजें नहीं सुनी हैं उसके बारे में। पाकिस्तान में ट्यूनैकोड में कुछ सामान भी है। –