SIMD और वेक्टर प्रोसेसर
SIMD और वेक्टर प्रोसेसर एक ही निर्देश को एक साथ कई डेटा तत्वों पर लागू करके डेटा-स्तर समानांतरता का लाभ उठाते हैं, जिससे मल्टीमीडिया, वैज्ञानिक और मशीन-लर्निंग कर्नेल जैसी नियमित, दोहराव वाली गणनाओं में तेजी आती है।
Definition
SIMD (सिंगल-इंस्ट्रक्शन मल्टीपल-डेटा) और वेक्टर प्रोसेसिंग वास्तुशिल्प तकनीकें हैं जिनमें एक निर्देश एक साथ व्यापक वेक्टर रजिस्टरों या SIMD लेन में रखे गए कई डेटा तत्वों पर एक ही ऑपरेशन करता है, जिससे डेटा-स्तर समानांतरता का लाभ उठाया जाता है।
Scope
यह विषय एकल-निर्देश बहु-डेटा निष्पादन को शामिल करता है: वेक्टर रजिस्टर और पाइपलाइन वाली लेन के साथ क्लासिक वेक्टर प्रोसेसर, कमोडिटी सीपीयू में SIMD एक्सटेंशन, मास्किंग और प्रेडिकेशन, और वे स्थितियाँ जिनके तहत डेटा समानांतरता लाभदायक होती है। यह डेटा-समानांतर हार्डवेयर की वास्तुकला का वर्णन करता है। यह कोर (मल्टीकोर और चिप मल्टीप्रोसेसर) में थ्रेड-स्तर समानांतरता और बड़े पैमाने पर मल्टी-कोर जीपीयू मॉडल (जीपीयू वास्तुकला) को बाहर करता है, जिसके साथ यह ओवरलैप होता है।
Core questions
- एक निर्देश को कई डेटा तत्वों पर लागू करने से समानांतर गति कैसे प्राप्त होती है?
- वेक्टर प्रोसेसर कमोडिटी सीपीयू में SIMD एक्सटेंशन से कैसे भिन्न होते हैं?
- मास्किंग और प्रेडिकेशन के साथ सशर्त संचालन को कैसे संभाला जाता है?
- किस प्रकार की गणनाओं को डेटा-समानांतर निष्पादन से सबसे अधिक लाभ होता है?
Key concepts
- सिंगल-इंस्ट्रक्शन मल्टीपल-डेटा (SIMD)
- वेक्टर रजिस्टर और लेन
- वेक्टर लंबाई और स्ट्रिप माइनिंग
- मास्किंग और प्रेडिकेशन
- गैदर/स्कैटर
- SIMD सीपीयू एक्सटेंशन
- डेटा-स्तर समानांतरता
- थ्रूपुट-उन्मुख निष्पादन
Key theories
- सिंगल-इंस्ट्रक्शन मल्टीपल-डेटा के माध्यम से डेटा-स्तर समानांतरता
- जब एक ही ऑपरेशन एक सरणी के कई तत्वों में स्वतंत्र रूप से लागू होता है, तो एक निर्देश कई समानांतर लेन या एक पाइपलाइन वाली वेक्टर इकाई को चला सकता है, जिससे बड़े डेटा पर निर्देश प्राप्त करने और नियंत्रण को कम किया जा सकता है और नियमित गणनाओं के लिए उच्च थ्रूपुट प्राप्त किया जा सकता है।
Mechanisms
एक वेक्टर प्रोसेसर वेक्टर रजिस्टरों में तत्वों के सरणियों को रखता है और उन्हें पाइपलाइन वाली या प्रतिकृति कार्यात्मक इकाइयों के माध्यम से संसाधित करता है, जिसमें एक निर्देश पूरे वेक्टर पर एक ऑपरेशन निर्दिष्ट करता है; लंबे वैक्टर को टुकड़ों में संसाधित किया जाता है (स्ट्रिप माइनिंग)। सीपीयू में SIMD एक्सटेंशन निश्चित-चौड़ाई वाले रजिस्टर प्रदान करते हैं जो तत्व-वार संचालित होते हैं। मास्किंग प्रति-तत्व सशर्त निष्पादन को सक्षम बनाता है, और गैदर/स्कैटर ऑपरेशन गैर-सन्निहित मेमोरी एक्सेस को संभालते हैं।
Clinical relevance
डेटा-समानांतर हार्डवेयर आधुनिक प्रोसेसरों की अधिकांश चरम थ्रूपुट प्रदान करता है। SIMD एक्सटेंशन मीडिया कोडेक्स, इमेज प्रोसेसिंग, भौतिकी और डीप लर्निंग के अंतर्निहित सघन रैखिक बीजगणित को गति देते हैं, जबकि वेक्टर आर्किटेक्चर सुपरकंप्यूटिंग को शक्ति प्रदान करते हैं। प्रभावी उपयोग कंपाइलर और प्रोग्रामर पर निर्भर करता है जो नियमित, वेक्टर करने योग्य गणना को उजागर करते हैं।
History
वेक्टर प्रोसेसिंग का बीड़ा 1970 के दशक में CDC STAR-100 और विशेष रूप से Cray-1 जैसे सुपरकंप्यूटरों ने उठाया था। डेटा समानांतरता 1990 के दशक के अंत से SIMD एक्सटेंशन (MMX, SSE, AVX, NEON) के माध्यम से कमोडिटी सीपीयू में फिर से प्रवेश कर गई, और स्केलेबल वेक्टर एक्सटेंशन और सघन संख्यात्मक वर्कलोड के पुनरुत्थान ने वेक्टर आर्किटेक्चर में रुचि को नवीनीकृत किया।
Key figures
- Seymour Cray
- Michael J. Flynn
- John L. Hennessy
- David A. Patterson
Related topics
Seminal works
- hennessy2019
- patterson2020
Frequently asked questions
- SIMD एक्सटेंशन और वेक्टर प्रोसेसर में क्या अंतर है?
- SIMD एक्सटेंशन एक पारंपरिक सीपीयू में निश्चित-चौड़ाई वाले रजिस्टर (उदाहरण के लिए 128 या 256 बिट) जोड़ते हैं, जो प्रति निर्देश तत्वों की एक निर्धारित संख्या पर काम करते हैं। एक वेक्टर प्रोसेसर वेक्टर रजिस्टरों और निर्देशों के आसपास बनाया गया है जो लंबी, अक्सर परिवर्तनीय-लंबाई वाले वैक्टर पर काम करते हैं, आमतौर पर गहरी पाइपलाइन वाली लेन के माध्यम से।
- सभी प्रोग्राम SIMD से लाभ क्यों नहीं उठाते हैं?
- SIMD उन गणनाओं को गति देता है जो नियमित मेमोरी एक्सेस के साथ कई स्वतंत्र डेटा तत्वों पर एक ही ऑपरेशन लागू करते हैं। ब्रांचिंग, अनियमित डेटा निर्भरता, या बिखरी हुई मेमोरी एक्सेस से प्रभावित प्रोग्रामों को बहुत कम लाभ होता है, क्योंकि समानांतर लेन को उपयोगी रूप से व्यस्त नहीं रखा जा सकता है।