हाइपर-थ्रेडिंग और कई कोर के बीच अंतर क्या है?


42

नेटवर्क प्रशासक के साथ एक बातचीत में, मैंने उल्लेख किया कि मेरी मशीन एक दोहरे कोर थी। उसने मुझे बताया कि यह नहीं था। मैं कार्य प्रबंधक को लाया, परफॉमेंस टैब पर गया, और उसे दिखाया कि दो अलग-अलग सीपीयू उपयोग ग्राफ हैं। मेरे पास घर पर क्वाड-कोर मशीन है और इसके चार ग्राफ हैं। उन्होंने बताया कि हाइपर-थ्रेडिंग के कारण इस विशेष मशीन पर दो ग्राफ थे। मेरे पास दिन में हाइपर-थ्रेड पेंटियम 4 प्रोसेसर था, लेकिन मैं कभी भी पूरी तरह से समझ नहीं पाया कि इसका क्या मतलब है। तो हाइपर थ्रेडिंग और दोहरे कोर के बीच अंतर क्या है? और आप कैसे बताते हैं कि आपके पास कौन सा है?

जवाबों:


20

हाइपर-थ्रेडिंग एकल भौतिक सीपीयू कोर के लिए कई तार्किक कोर को उजागर करता है । सरल शब्दों में, हाइपर-थ्रेडिंग प्रत्येक सीपीयू कोर के लिए संदर्भ-स्विचिंग को अधिक कुशल बनाता है

दूसरी ओर, दोहरे कोर चिप्स में वास्तव में दो भौतिक सीपीयू कोर होते हैं जो एक साथ विभिन्न प्रक्रियाओं को निष्पादित कर सकते हैं।

अन्य मल्टी-कोर चिप्स भी हैं जिनमें दो से अधिक कोर हैं, और - जैसा कि श्वेश ने उल्लेख किया है - इंटेल के नवीनतम मल्टी-कोर प्रसाद भी सभी कोर पर हाइपर-थ्रेडिंग का समर्थन करते हैं।

आपके पास कितने कोर हैं, यह निर्धारित करने के लिए आप सीपीयू-जेड जैसी सीपीयू पहचान उपयोगिता का उपयोग कर सकते हैं। जैसा कि आप स्क्रीनशॉट के नीचे देख सकते हैं, इस मामले में सीपीयू में 2 भौतिक कोर हैं। यदि थ्रेड्स की संख्या कोर की संख्या से अधिक है, तो हाइपर-थ्रेडिंग सक्षम है। प्रति-हाइपर-थ्रेडिंग वाले सभी उपभोक्ता-उन्मुख सीपीयू में प्रति कोर 2 धागे हैं, इसलिए यदि एचटी सक्षम है, तो थ्रेड्स की संख्या 2x कोर की संख्या होगी।

यहाँ छवि विवरण दर्ज करें

यदि आपके पास Intel CPU है, तो आप इसके स्थान पर Intel का CPU ID उपयोगिता डाउनलोड कर सकते हैं ।


और मल्टी-कोर चिप्स जो हाइपर-थ्रेडिंग का समर्थन करता है ताकि आपको तार्किक कोर की मात्रा दोगुनी हो।
स्विश

धन्यवाद! मैं कैसे (ओएस के भीतर से) बताऊं कि मेरे पास किस प्रकार का सीपीयू है?
जोश स्टोडोला

3
UltraSparc T2 + में 8 कोर हैं, जिनमें से प्रत्येक 8 थ्रेड्स का समर्थन करते हुए इसे एक सिंगल चिप पर 64 वर्चुअल CPU
बनाते हैं

सीपीयू को जानने का तरीका आपके द्वारा चलाए जा रहे ओएस पर निर्भर करता है।
jlliagre

@ जीलियाग्रे: अच्छा!
लूट

16

हाइपर-थ्रेडिंग वह जगह है जहां आपका प्रोसेसर 2 भौतिक प्रोसेसर कोर का दिखावा करता है, फिर भी केवल 1 और कुछ अतिरिक्त कबाड़ है।

हाइपरथ्रेडिंग की बात यह है कि कई बार जब आप प्रोसेसर में कोड निष्पादित कर रहे होते हैं, तो प्रोसेसर के कुछ हिस्से होते हैं जो निष्क्रिय होते हैं। सीपीयू रजिस्टरों के एक अतिरिक्त सेट को शामिल करके, प्रोसेसर कार्य कर सकता है जैसे कि इसमें दो कोर हैं और इस प्रकार प्रोसेसर के सभी हिस्सों को समानांतर में उपयोग करें। जब 2 कोर दोनों को प्रोसेसर के एक घटक का उपयोग करने की आवश्यकता होती है, तो एक कोर पाठ्यक्रम के इंतजार को समाप्त करता है। यही कारण है कि यह दोहरे कोर और ऐसे प्रोसेसर को प्रतिस्थापित नहीं कर सकता है।

यह भी देखें: यह सवाल


6

हाइपरथ्रेडिंग दोहरे कोर होने का एक सस्ता और धीमा विकल्प है

इंटेल मैनुअल माप 3 प्रणाली गाइड प्रोग्रामिंग - 325384-056US सितंबर 2015 8.7 "इंटेल हाइपर-थ्रेडिंग टेक्नोलॉजी वास्तुकला" हिंदुस्तान टाइम्स संक्षिप्त वर्णन करता है। इसमें निम्नलिखित चित्र शामिल हैं:

यहाँ छवि विवरण दर्ज करें

TODO यह वास्तविक अनुप्रयोगों में औसत से कितने प्रतिशत कम है?

हाइपरथ्रेडिंग संभव है क्योंकि आधुनिक एकल सीपीयू कोर पहले से ही निर्देश पाइपलाइन के साथ एक साथ कई निर्देश निष्पादित करते हैं https://en.wikipedia.org/wiki/Instruction_pipelining

निर्देश पाइपलाइन एक कोर के अंदर कार्यों का एक पृथक्करण है यह सुनिश्चित करने के लिए कि सर्किट के प्रत्येक भाग का उपयोग किसी भी समय किया जाता है: मेमोरी पढ़ना, डिकोडिंग निर्देश, निर्देश निष्पादित करना, आदि।

हाइपरथ्रेडिंग का उपयोग करके कार्यों को अलग करता है:

  • एक एकल बैकएंड, जो वास्तव में अपनी पाइपलाइन के साथ निर्देशों को चलाता है।

    दोहरे कोर में दो बैकएंड हैं, जो अधिक लागत और प्रदर्शन की व्याख्या करते हैं।

  • दो सामने समाप्त होता है, जो निर्देश की दो धाराओं ले सकते हैं और एक तरह से उन्हें ऑर्डर से परहेज द्वारा एकल बैकएंड के उपयोग को अधिकतम करने के pipelining खतरों

    डुअल कोर में 2 फ्रंट-एंड, प्रत्येक बैकएंड के लिए एक होगा।

    ऐसे किनारे मामले हैं जहां अनुदेश पुन: व्यवस्थित करने से कोई लाभ नहीं होता है, जिससे हाइपरथ्रेडिंग बेकार हो जाता है। लेकिन यह औसत में एक महत्वपूर्ण सुधार पैदा करता है।

एक ही कोर में दो हाइपरथ्रेड आगे कैश स्तर साझा करते हैं (TODO कितने? L1?) दो अलग-अलग कोर की तुलना में, जो केवल L3 साझा करते हैं, देखें:

प्रत्येक हाइपरथ्रेड जो ऑपरेटिंग सिस्टम को उजागर करता है वह वास्तविक कोर के समान है, और दोनों को अलग से नियंत्रित किया जा सकता है। इस प्रकार cat /proc/cpuinfoमुझे 4 प्रोसेसर दिखाते हैं, भले ही मेरे पास केवल 2 हाइपरथ्रेड्स वाले 2 कोर हैं।

हालाँकि ऑपरेटिंग सिस्टम यह जानने का लाभ उठा सकते हैं कि किसी एक कोर पर दिए गए प्रोग्राम के कई थ्रेड्स चलाने के लिए कौन से हाइपरथ्रेड्स एक ही कोर पर हैं, जिससे कैश उपयोग में सुधार हो सकता है।

इस LinusTechTips वीडियो में एक हल्की-फुल्की गैर-तकनीकी व्याख्या है: https://www.youtube.com/watch?v=wnS50lJicXc


1
क्या आप अपने "TODO" सवालों के जवाब देने जा रहे हैं?
pacoverflow

1
@pacoverflow अगर मैं किसी दिन जवाब सीखता हूं, या अगर कोई मेरे लिए जवाब संपादित करेगा :-)
Ciro Santilli 中心 if if if 事件
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.