मैं जीपीयू (अधिमानतः ओपनसीएल) के लिए एक प्रोग्राम लिखना चाहता हूं और गणना के एक बड़े हिस्से में थोड़ा सरणी (लंबे या int के रूप में पैक) में 1 की संख्या की गणना करना शामिल है।ओपनसीएल: जीपीयू पर 32-बिट और 64-बिट पॉपकंट निर्देश?
तो, आधुनिक सीपीयू पर मैं स्पष्ट रूप से देशी __popcnt निर्देश का उपयोग करता हूं। मैंने इंटरनेट पर कई स्थानों पर पढ़ा है कि आधुनिक जीपीयू, यह निर्देश हार्डवेयर में भी मौजूद है, जो मेरे लिए एक बड़ी गति होगी। (कम से कम 32-बिट के लिए, 64 के बारे में सुनिश्चित नहीं है)
हालांकि, मुझे यह निर्देश कहीं नहीं मिला है। तो:
1) मुझे यह पता लगाना चाहिए कि कौन से जीपीयू के पास यह निर्देश है? (मुझे अभी भी अपना जीपीयू खरीदने की ज़रूरत है, इसलिए यह एक आधुनिक उच्च अंत वाला होगा ... शायद राडेन एचडी 7000 श्रृंखला या एनवीडिया केप्लर)
2) ओपनसीएल (या इसी तरह की जीपीयू भाषा) से इस निर्देश को कैसे कॉल करें ?