सवाल रेतीले पुल और हैसवेल एसएसई 2 / एवीएक्स / एवीएक्स 2 के लिए प्रति चक्र फ्लॉप्स


मैं उलझन में हूं कि सैंडी-ब्रिज और हैसवेल के साथ प्रति चक्र प्रति कोर कितनी फ्लॉप किया जा सकता है। जैसा कि मैं इसे एसएसई के साथ समझता हूं, यह एसईएस के लिए प्रति चक्र प्रति चक्र 4 एवीएक्स और एवीएक्स 2 के लिए प्रति चक्र प्रति चक्र 8 फ्लॉप होना चाहिए।

ऐसा लगता है कि यहां सत्यापित किया गया है, मैं प्रति चक्र सैद्धांतिक अधिकतम 4 एफएलओपी कैसे प्राप्त करूं? ,और यहाँ, सैंडी-ब्रिज सीपीयू विनिर्देश

हालांकि नीचे दिया गया लिंक इंगित करता है कि सैंडी-पुल प्रति कोर प्रति चक्र 16 फ्लॉप कर सकता है और हैसवेल प्रति चक्र प्रति चक्र 32 फ्लॉप http://www.extremetech.com/computing/136219-intels-haswell-is-an-unprecedented-threat-to-nvidia-amd

क्या कोई मुझे ये समझा सकता है?

संपादित करें: मैं अब समझता हूं कि मैं उलझन में क्यों था। मैंने सोचा कि एफएलओपी शब्द केवल एक फ्लोटिंग पॉइंट (एसपी) को संदर्भित करता है। अब मैं देखता हूं कि परीक्षण मैं प्रति चक्र सैद्धांतिक अधिकतम 4 एफएलओपी कैसे प्राप्त करूं? वास्तव में डबल फ्लोटिंग पॉइंट (डीपी) पर हैं ताकि वे एसएसई के लिए 4 डीपी एफएलओपी / चक्र और एवीएक्स के लिए 8 डीपी एफएलओपी / चक्र प्राप्त कर सकें। एसपी पर इन परीक्षणों को फिर से करना दिलचस्प होगा।


44
2018-03-27 09:48


मूल


आपके संपादन के जवाब में: संख्याएं डीपी संख्याओं को बिल्कुल दोगुनी कर देंगी। ऐसा इसलिए है क्योंकि विलंबता और थ्रूपुट सिम निर्देशों के एसपी और डीपी संस्करणों के समान हैं। (कुछ मामलों में, एसपी वाले लोगों में भी कम विलंबता होती है।) - Mysticial
मैंने कोड को एसपी का उपयोग करने के लिए सबसे अच्छा रूप में परिवर्तित किया है जैसा कि मैंने इसे विजुअल स्टूडियो 2012 के साथ समझ लिया है और संकलित किया है। हालांकि, मुझे गति में कोई अंतर दिखाई नहीं देता है और योग एक त्रुटि रिपोर्ट करता है इसलिए मुझे कुछ और कोड बदलने की आवश्यकता है। मुझे इसे वापस लेना होगा।
काउंटर डीपी मानने के बाद से आपको संख्याओं को दोगुनी करने की आवश्यकता है। (परिवर्तन: 48 * 1000 * iterations * tds * 2 सेवा मेरे 48 * 1000 * iterations * tds * 4) इसके अलावा, आपको एसपी पर काम करने के लिए Renormalization मुखौटा बदलने की जरूरत है: uint64 iMASK = 0x800fffffffffffffull; - Mysticial
4 एसएसई रजिस्टर प्रति एसपी फ्लोट के कारण 4। एक बार फिर धन्यवाद। मैंने असाइन किए गए int iMASK = 0x80fffffu को Renormalization मुखौटा भी बदल दिया। अब यह काम करता है और मुझे दो बार मिलता है जैसा आपने कहा था।


जवाब:


यहां हालिया प्रोसेसर माइक्रोआर्किटेक्चर और स्पष्टीकरण के लिए एफएलओपी की गणना की गई है कि उन्हें कैसे प्राप्त किया जाए:

इंटेल कोर 2 और नेहलेम:

  • 4 डीपी एफएलओपी / चक्र: 2-चौड़ा एसएसई 2 अतिरिक्त + 2-चौड़ा एसएसई 2 गुणा
  • 8 एसपी एफएलओपी / चक्र: 4-चौड़ा एसएसई अतिरिक्त + 4-चौड़ा एसएसई गुणा

इंटेल सैंडी ब्रिज / आइवी ब्रिज:

  • 8 डीपी एफएलओपी / चक्र: 4-चौड़ा एवीएक्स अतिरिक्त + 4-चौड़ा एवीएक्स गुणा
  • 16 एसपी एफएलओपी / चक्र: 8-चौड़ा एवीएक्स अतिरिक्त + 8-चौड़ा एवीएक्स गुणा

इंटेल हैसवेल / ब्रॉडवेल / स्काइलेक / कबी झील:

  • 16 डीपी एफएलओपी / चक्र: दो 4-चौड़े एफएमए (मिश्रित गुणा-जोड़) निर्देश
  • 32 एसपी एफएलओपी / चक्र: दो 8-चौड़े एफएमए (मिश्रित गुणा-जोड़) निर्देश

एएमडी के 10:

  • 4 डीपी एफएलओपी / चक्र: 2-चौड़ा एसएसई 2 अतिरिक्त + 2-चौड़ा एसएसई 2 गुणा
  • 8 एसपी एफएलओपी / चक्र: 4-चौड़ा एसएसई अतिरिक्त + 4-चौड़ा एसएसई गुणा

एएमडी बुलडोजर / पिलड्रिवर / स्टीमरोलर / खुदाई, प्रति मॉड्यूल (दो कोर):

  • 8 डीपी एफएलओपी / चक्र: 4-चौड़ा एफएमए
  • 16 एसपी एफएलओपी / चक्र: 8-चौड़ा एफएमए

एएमडी रेजेन

  • 8 डीपी एफएलओपी / चक्र: 4-चौड़ा एफएमए
  • 16 एसपी एफएलओपी / चक्र: 8-चौड़ा एफएमए

इंटेल एटम (बोनेल / 45 एनएम, साल्टवेल / 32 एनएम, सिल्वरमोंट / 22 एनएम):

  • 1.5 डीपी एफएलओपी / चक्र: स्केलर एसएसई 2 अतिरिक्त + स्केलर एसएसई 2 गुणा हर दूसरे चक्र
  • 6 एसपी एफएलओपी / चक्र: 4-चौड़ा एसएसई अतिरिक्त + 4-चौड़ा एसएसई गुणा हर दूसरे चक्र

एएमडी बॉबकैट:

  • 1.5 डीपी एफएलओपी / चक्र: स्केलर एसएसई 2 अतिरिक्त + स्केलर एसएसई 2 गुणा हर दूसरे चक्र
  • 4 एसपी एफएलओपी / चक्र: 4-चौड़ा एसएसई अतिरिक्त हर दूसरे चक्र + 4-चौड़े एसएसई गुणा हर दूसरे चक्र

एएमडी जगुआर:

  • 3 डीपी एफएलओपी / चक्र: चार-चक्रों में 4-चौड़ा एवीएक्स अतिरिक्त हर दूसरे चक्र + 4-चौड़ा एवीएक्स गुणा
  • 8 एसपी एफएलओपी / चक्र: 8-चौड़ा एवीएक्स अतिरिक्त हर दूसरे चक्र + 8-चौड़ा एवीएक्स गुणा हर दूसरे चक्र

एआरएम कॉर्टेक्स-ए 9:

  • 1.5 डीपी एफएलओपी / चक्र: स्केलर अतिरिक्त + स्केलर गुणा हर दूसरे चक्र
  • 4 एसपी एफएलओपी / चक्र: 4-चौड़ी नीयन प्रत्येक अन्य चक्र + 4-चौड़ी नीयन गुणा हर दूसरे चक्र के अलावा

एआरएम कॉर्टेक्स-ए 15:

  • 2 डीपी एफएलओपी / चक्र: स्केलर एफएमए या स्केलर गुणा-जोड़
  • 8 एसपी एफएलओपी / चक्र: 4-चौड़ा NEONv2 एफएमए या 4-चौड़ा नीयन गुणा-जोड़

क्वालकॉम क्रेट:

  • 2 डीपी एफएलओपी / चक्र: स्केलर एफएमए या स्केलर गुणा-जोड़
  • 8 एसपी एफएलओपी / चक्र: 4-चौड़ा NEONv2 एफएमए या 4-चौड़ा नीयन गुणा-जोड़

आईबीएम पावरपीसी ए 2 (ब्लू जीन / क्यू), प्रति कोर:

  • 8 डीपी एफएलओपी / चक्र: हर चक्र 4-चौड़ा क्यूपीएक्स एफएमए
  • एसपी तत्व डीपी तक बढ़ाए जाते हैं और एक ही इकाइयों पर संसाधित होते हैं

आईबीएम पावरपीसी ए 2 (ब्लू जीन / क्यू), प्रति थ्रेड:

  • 4 डीपी एफएलओपी / चक्र: 4-चौड़ा क्यूपीएक्स एफएमए हर दूसरे चक्र
  • एसपी तत्व डीपी तक बढ़ाए जाते हैं और एक ही इकाइयों पर संसाधित होते हैं

इंटेल ज़ीओन फाई (नाइट्स कॉर्नर), प्रति कोर:

  • 16 डीपी एफएलओपी / चक्र: हर चक्र 8-चौड़ा एफएमए
  • 32 एसपी एफएलओपी / चक्र: हर चक्र 16-चौड़ा एफएमए

इंटेल ज़ीओन फाई (नाइट्स कॉर्नर), प्रति थ्रेड:

  • 8 डीपी एफएलओपी / चक्र: 8-चौड़ा एफएमए हर दूसरे चक्र
  • 16 एसपी एफएलओपी / चक्र: 16-चौड़ा एफएमए हर दूसरे चक्र

इंटेल ज़ीओन फाई (नाइट्स लैंडिंग), प्रति कोर:

  • 32 डीपी एफएलओपी / चक्र: प्रत्येक चक्र में दो 8-चौड़े एफएमए
  • 64 एसपी एफएलओपी / चक्र: प्रत्येक चक्र में दो 16-चौड़े एफएमए

आईबीएम ब्लू जीन / क्यू और इंटेल ज़ीओन फाई (नाइट्स कॉर्नर) के लिए प्रति-थ्रेड और प्रति-कोर डाटाम का कारण यह है कि प्रति कोर एक से अधिक थ्रेड चलाने पर इन कोरों में उच्च निर्देश समस्या दर होती है।


100
2017-07-24 13:35



डीएसई समर्थन एसएसई 2 में भी जोड़ा गया था - Marat Dukhan
कॉर्टेक्स-एम 0 और एम 3 में एफपीयू भी नहीं है, इसलिए वे शून्य एफएलओपी / चक्र करते हैं। एम 4 पर भी एफपीयू वैकल्पिक है। कॉर्टेक्स-ए 8 नीयन के साथ 2 एसपी एफएलओपी / चक्र कर सकता है। डबल-परिशुद्धता ... अच्छा, वीएफपी पाइपलाइन नहीं है ए 8 पर, तो यह लगभग 1/8 डीपी एफएलओपी / चक्र है। - Stephen Canon
@netvope वे प्रति मॉड्यूल हैं - Marat Dukhan
यह जानकारी प्राप्त करने के तरीके के बारे में कुछ संदर्भ या स्पष्टीकरण के साथ सहायक होगी।
Skylake-X या तो 1 या 2 AVX512 एफएमए इकाइयों के साथ विन्यास में आता है ... software.intel.com/en-us/forums/intel-isa-extensions/topic/... - michaf


गुणा के लिए थ्रूपुट गुणा और एफएमए के अलावा अतिरिक्त है। दो गुणा / एफएमए इकाइयां हैं, लेकिन केवल एक एफपी। इकाई जोड़ें यदि आपके कोड में मुख्य रूप से जोड़ शामिल हैं तो अधिकतम थ्रूपुट प्राप्त करने के लिए आपको 1.0 के गुणक के साथ एफएमए निर्देशों द्वारा जोड़ों को प्रतिस्थापित करना होगा।

हैसवेल पर एफएमए निर्देशों की विलंबता 5 है और थ्रूपुट प्रति घड़ी 2 है। इसका मतलब है कि आपको अधिकतम थ्रूपुट प्राप्त करने के लिए 10 समानांतर संचालन करना होगा। यदि, उदाहरण के लिए, आप f.p की एक बहुत लंबी सूची जोड़ना चाहते हैं। संख्याएं, आपको इसे दस भागों में विभाजित करना होगा और दस संचयक रजिस्टरों का उपयोग करना होगा।

यह वास्तव में संभव है, लेकिन एक विशिष्ट प्रोसेसर के लिए इस तरह के अजीब अनुकूलन कौन करेगा?


18



आपको लूप को मैन्युअल रूप से तोड़ने की ज़रूरत नहीं है, कुछ संकलक अनलॉकिंग और आउट-ऑफ-ऑर्डर एचडब्ल्यू (मान लीजिए कि आपके पास निर्भरता नहीं है) आपको काफी थ्रूपुट बाधा तक पहुंचने दे सकती है। उस हाइपरथ्रेडिंग में जोड़ें और प्रति घंटे 2 ऑपरेशन काफी आवश्यक हो जाते हैं। - Leeor
@ लियोर, शायद आप इसे दिखाने के लिए कुछ कोड पोस्ट कर सकते हैं? एफएमए के साथ 10 बार अनलोल करना मुझे सबसे अच्छा परिणाम देता है। मेरा जवाब देखें stackoverflow.com/questions/21090873/... - Z boson
अधिकांश एचपीसी कोड जो गणना-बाध्य होते हैं (यानी फ्लॉप-बाउंड) बहुत सारे एफएमए करते हैं। मेरे अनुभव में, जिन स्थानों पर कोई भी बहुत कुछ जोड़ता है, वे बैंडविड्थ-बाध्य हैं जैसे कि अधिक जोड़ने के माध्यम से मदद नहीं करेगा। - Jeff
नवीनतम इंटेल पीढ़ी के पास एक संतुलित संतुलित थ्रूपुट है। फ़्लोटिंग प्वाइंट एडिशन, गुणा और एफएमए में प्रति घड़ी चक्र के 2 निर्देशों का एक थ्रूपुट होता है और 4 की विलम्ब होती है। - A Fog