AVX

2012-12-24 8 views
11

में स्कैटर इंट्रिनिक्स मैं उन्हें इंटेल इंट्रिनिक गाइड v2.7 में नहीं ढूंढ सकता। क्या आपको पता है कि AVX या AVX2 निर्देश सेट उन्हें समर्थन देते हैं?AVX

+2

एकत्र भार: http://software.intel.com/sites/products/documentation/studio/composer/en-us/2011Update/compiler_c/intref_cls/common/intref_bk_avx2_masked_gather.htm - मैं डॉन ' बिखरी हुई दुकान instrinsics देखें हालांकि –

+2

आरडब्ल्यूटी से: _ [AVX2 में x86 मेमोरी ऑर्डरिंग मॉडल और लोड/स्टोर बफर के साथ जटिलताओं की वजह से स्कैटर निर्देश (यानी, वेक्टर एड्रेस किए गए स्टोर) शामिल नहीं हैं। (http: // www .realworldtech.com/हैसवेल-सीपीयू/2 /) _ – Stringer

उत्तर

15
  • मूल AVX निर्देश सेट में कोई स्कैटर या एकत्रित निर्देश नहीं हैं।

  • AVX2 इकट्ठा होता है, लेकिन स्कैटर निर्देश नहीं।

  • AVX512F दोनों स्कैटर और निर्देश इकट्ठा करते हैं।

  • AVX512PF अतिरिक्त रूप से एकत्रित और स्कैटर निर्देशों के प्रीफेच प्रकार प्रदान करता है।

  • AVX512CD स्कैटर पते में संघर्ष का पता लगाने के लिए निर्देश प्रदान करता है।

  • इंटेल एमआईसी (उर्फ ज़ीओन फाई, नाइट्स कॉर्नर) में इकट्ठा और स्कैटर निर्देश शामिल हैं, लेकिन यह एक अलग कॉप्रोसेसर है, और यह सामान्य x86-64 कोड नहीं चला सकता है।

+0

क्या केएनसी पर x86_64 कोड नहीं चल रहा है? – Jeff

+1

@ जेफ नहीं यह नहीं करता! केएनसी में एक अलग ईएलएफ मशीन प्रकार भी है –

+1

@ जेफ: केएनएल (नाइट लैंडिंग) x86_64 मशीन कोड चलाएगा, हालांकि, सही? यह सिर्फ कॉम्पोसेसर की बजाय मेजबान सीपीयू के रूप में उपलब्ध होने जा रहा है। –

8

जैसा कि दूसरे उत्तर से संकेत मिलता है, अब AVX2 पर भी स्कैटर को लागू करना संभव नहीं है। हालांकि इंटेल ऑप्टिमाइज़ेशन मैनुअल हमें स्कैटर ऑपरेशन का एक हाथ लिखित संस्करण प्रदान करता है। यह इंटेल ऑप्टिमाइज़ेशन मैनुअल 2013 संस्करण के पेज 11-17 पर है। असल में वे क्या करते हैं, वे हर बार इंडेक्स पढ़ते हैं और इसे सामान्य प्रयोजन के रजिस्टर में संग्रहीत करते हैं, कहते हैं, रैक्स करते हैं और फिर सही संख्या को बदलते हैं जिसे आप xpal रजिस्टर करना चाहते हैं जैसे vpalignr। फिर हम परिणाम को स्मृति स्थान पर vmovss के साथ संग्रहीत करते हैं --- स्केलर सिंगल को स्मृति में ले जाएं। मुझे लगता है कि यह कम दक्षता का होगा लेकिन मुझे लगता है कि X86 CPU आर्किटेक्चर पर डेटा स्कैटर को एहसास करने का यह एकमात्र तरीका है। ज़ीओन फी चीजों पर सुंदर हैं, वे स्कैटर ऑपरेशंस के लिए देशी समर्थन प्रदान करते हैं और निश्चित रूप से पहला ओप एक स्मृति स्थान है। तो मेरा मानना ​​है कि यदि आपके कोड में बहुत सारे इकट्ठा होते हैं और बिखरे हुए हैं, तो ज़ीओन फिई में स्विच करना एक अच्छा विकल्प होगा। कृपया मुझे यह बताने के लिए उत्तर दें कि मेरे उत्तर में कुछ गलत है या नहीं।

शुभकामनाएं!

xiangpisaiMM

+1

आपकी अंतर्दृष्टि के लिए धन्यवाद, मेरी आशा AVX3 में अधिक है (क्योंकि यह शायद कोर और एमआईसी सिम निर्देशों के एकीकरण के साथ देशी स्कैटर लाएगी)। – Stringer

+0

शिफ्ट और फिर स्टोर 'extractps' का उपयोग करने से धीमी गति से लगता है, क्योंकि तत्व निकालने के लिए एक संकलन-समय स्थिर है। या शायद एक ही गति, लेकिन छोटे कोड आकार, क्योंकि इसे अभी भी शफल बंदरगाह का उपयोग करना है। –

+0

@xian, क्या आपसे संपर्क करने का कोई तरीका है? – Royi