वेक्टरेशन (जैसे शब्द सामान्य रूप से उपयोग किया जाता है) सिमड (एकल निर्देश, एकाधिक डेटा) ऑपरेशन को संदर्भित करता है।
इसका मतलब है, संक्षेप में, एक निर्देश समानांतर में कई ऑपरेटरों पर एक ही ऑपरेशन करता है। उदाहरण के लिए, एक स्केलर द्वारा आकार एन के एक वेक्टर के लिए, चलो ऑपरेटर की संख्या को उस आकार पर कॉल करें जिसे वह एक साथ चालू कर सकता है। यदि ऐसा है, तो इसे निष्पादित करने के लिए आवश्यक निर्देशों की संख्या लगभग एन/एम है, जहां (पूरी तरह से स्केलर ऑपरेशंस के साथ) इसे एन ऑपरेशंस करना होगा।
उदाहरण के लिए, इंटेल का वर्तमान AVX 2 निर्देश सेट 256-बिट रजिस्टरों का उपयोग करता है। इन्हें 64-बिट्स के 4 ऑपरेटरों के सेट, या 32 बिट्स के 8 ऑपरेटरों को एक सेट (और चालू) करने के लिए उपयोग किया जा सकता है।
तो, मान लीजिए कि आप 32-बिट, सिंगल-प्रेसिजन वास्तविक संख्याओं से निपट रहे हैं, इसका मतलब है कि एक ही निर्देश 8 ऑपरेशन (गुणा, आपके मामले में) एक बार में कर सकता है, इसलिए (कम से कम सिद्धांत में) आप कर सकते हैं केवल एन/8 गुणा निर्देशों का उपयोग करके एन गुणों को खत्म करें। कम से कम सिद्धांत में, यह ऑपरेशन को एक समय में एक निर्देश निष्पादित करने की अनुमति देने के लिए लगभग 8 गुना तेजी से पूरा करने की अनुमति देनी चाहिए।
बेशक, सटीक लाभ इस बात पर निर्भर करता है कि आप प्रति निर्देशों का कितना समर्थन करते हैं। इंटेल के पहले प्रयासों ने केवल 64-बिट रजिस्टरों का समर्थन किया, इसलिए एक बार में 8 आइटमों पर काम करने के लिए, वे आइटम केवल 8 बिट्स ही हो सकते थे। वे वर्तमान में 256-बिट रजिस्टरों का समर्थन करते हैं, और उन्होंने 512-बिट के लिए समर्थन की घोषणा की है (और उन्होंने कुछ उच्च अंत प्रोसेसर में भी भेज दिया होगा, लेकिन कम से कम अभी तक सामान्य उपभोक्ता प्रोसेसर में नहीं)। इस क्षमता का अच्छा उपयोग करना इसे हल्के ढंग से रखने के लिए भी गैर-तुच्छ हो सकता है। शेड्यूलिंग निर्देश ताकि आपके पास वास्तव में एन ऑपरेंड उपलब्ध हों और सही समय पर सही जगहों पर एक आसान कार्य नहीं है (बिल्कुल)।
चीजों को परिप्रेक्ष्य में रखने के लिए, (अब प्राचीन) क्रे 1 ने इस तरह अपनी बहुत सारी गति प्राप्त की है।इसकी वेक्टर इकाई 64 बिट्स के 64 रजिस्टरों के सेट पर संचालित होती है, इसलिए यह प्रति घड़ी चक्र 64 डबल-परिशुद्धता संचालन कर सकती है। बेहतरीन रूप से वेक्टरकृत कोड पर, यह वर्तमान सीपीयू की गति के बहुत करीब था, आप इसकी अपेक्षाकृत (बहुत कम) घड़ी की गति पर आधारित होने की उम्मीद कर सकते हैं। इसका पूरा लाभ लेना हमेशा आसान नहीं था (और अभी भी नहीं है)।
ध्यान रखें, हालांकि, वेक्टरेशन एकमात्र तरीका है जिसमें एक सीपीयू समानांतर में संचालन कर सकता है। निर्देश स्तर समानांतरता की संभावना भी है, जो एक समय में एक से अधिक निर्देश निष्पादित करने के लिए एक एकल सीपीयू (या एक सीपीयू का एकल कोर) को अनुमति देता है। अधिकांश आधुनिक सीपीयू में हार्डवेयर (सैद्धांतिक रूप से) प्रति घड़ी चक्र के लगभग 4 निर्देशों तक निष्पादित होते हैं यदि निर्देश लोड, स्टोर और एएलयू का मिश्रण होते हैं। वे औसत रूप से प्रति घंटे करीब 2 निर्देशों को नियमित रूप से निष्पादित कर सकते हैं, या स्मृति की बाधा नहीं होने पर अच्छी तरह से ट्यून किए गए लूप में अधिक।
फिर, बहु-थ्रेडिंग - अलग-अलग प्रोसेसर/कोर पर (कम से कम तार्किक रूप से) निर्देशों की एकाधिक धाराएं चल रही हैं।
तो, एक आधुनिक सीपीयू कह सकता है, 4 कोर, जिनमें से प्रत्येक प्रति घड़ी 2 वेक्टर गुणा निष्पादित कर सकता है, और उनमें से प्रत्येक निर्देश 8 ऑपरेटरों पर काम कर सकता है। तो, कम से कम सिद्धांत में, यह प्रति घड़ी 4 * 2 * 8 = 64 संचालन कर सकता है।
कुछ निर्देशों में बेहतर या खराब थ्रूपुट होता है। उदाहरण के लिए, एफपी एड थ्रूपुट एफएमए से कम है या स्किलेक से पहले इंटेल पर गुणा करें (2 के बजाय 1 वेक्टर प्रति घड़ी)। लेकिन एंड्रॉइड या एक्सओआर जैसे बुलियन तर्क में प्रति घड़ी थ्रूपुट 3 वैक्टर होते हैं; यह एक एंड/एक्सओआर/या निष्पादन इकाई बनाने के लिए कई ट्रांजिस्टर नहीं लेता है, इसलिए सीपीयू उन्हें दोहराते हैं। एक विशिष्ट निष्पादन इकाई पर बाधाओं के बजाए, उच्च पाइपलाइन निर्देशों का उपयोग करते समय कुल पाइपलाइन चौड़ाई (सामने वाले अंत जो कोर के आउट-ऑफ-ऑर्डर भाग में डीकोड और समस्याएं) पर बोतलबंद होते हैं।
हार्डवेयर समानांतर हो सकता है। आप 1 चक्र में दो 32 बिट संख्याओं को xor कर सकते हैं। आप अभी भी 1 चक्र में दो 1048576 बिट नंबर xor कर सकते हैं। बस चिप पर कुछ और तार जलाओ। – usr
आधुनिक शॉर्ट-वेक्टर सिमड के साथ, आप पूरे सरणी को संसाधित करने के लिए लूप के अंदर वैक्टर का उपयोग करते हैं। पुरानी शैली क्रे वेक्टर मशीनें एक बड़े ऑपरेशन के लिए स्थापित की जा सकती हैं और फिर एक निर्देश लोड/ऑपरेट/स्टोर करेगा, लेकिन ऐसा नहीं है कि x86 एसएसई/एआरएम नियॉन/पावरपीसी अल्टीवीक कैसे काम करता है। –