में optimization guide of Beignet, an open source implementation of OpenCL targeting Intel GPUsओपनसीएल में सिम के अधिकांश को कैसे बनाया जाए?
कार्य समूह का आकार 16 से भी बड़ा हो सकता है और 16.
के गुणांक में होनी हैं जनरल पर दो संभावित SIMD गलियों 8 या 16 के रूप में SIMD गलियों बर्बाद नहीं करने के लिए करना चाहिए, हमें इस नियम का पालन करना होगा।
इसके अलावा Compute Architecture of Intel Processor Graphics Gen7.5 में उल्लेख किया है:
Gen7.5 आधारित उत्पादों के लिए, प्रत्येक यूरोपीय संघ (GRF) सामान्य प्रयोजन रजिस्टर फ़ाइल के 28 Kbytes के लिए कुल सात सूत्र है।
...
Gen7.5 गणना वास्तुकला पर, सबसे SPMD प्रोग्रामिंग मॉडल इस शैली कोड पीढ़ी और यूरोपीय संघ के प्रोसेसर निष्पादन को रोजगार। प्रभावी रूप से, प्रत्येक एसपीएमडी कर्नेल उदाहरण अपने स्वयं के सिम लेन के भीतर क्रमशः और स्वतंत्र रूप से निष्पादित होता प्रतीत होता है।
वास्तविकता में, प्रत्येक थ्रेड कर्नेल उदाहरणों की एक सिम-चौड़ाई संख्या को निष्पादित करता है> समवर्ती रूप से। इस प्रकार एक गणना गिरी का एक SIMD -16 संकलन के लिए , यह SIMD -16 x 7 धागे = 112 गिरी उदाहरणों एक भी यूरोपीय संघ पर समवर्ती क्रियान्वित होने के लिए संभव है। इसी प्रकार, सिम -32 x 7 धागे = 224 कर्नेल उदाहरण एक साथ ईयू पर समवर्ती रूप से निष्पादित करने के लिए।
अगर मैं इसे सही ढंग से समझते हैं, आदेश में एक यूरोपीय संघ पर 224 धागे को चलाने के लिए, एक उदाहरण के रूप में SIMD-16 x 7 threads = 112 kernel instances
का उपयोग कर, कार्य समूह आकार 16. होने की जरूरत है तो फिर OpenCL संकलक एक 16 में 16 गिरी उदाहरणों गुना होगा लेन सिमड थ्रेड, और 7 कार्य समूहों पर यह 7 बार करें, और उन्हें एक ईयू पर चलाएं?
प्रश्न 1: क्या मैं यहां तक सही हूं?
हालांकि OpenCL spec वेक्टर डेटा प्रकार भी प्रदान करते हैं। इसलिए यूरोपीय संघ में पारंपरिक सिम प्रोग्रामिंग (एनईओएन और एसएसई में) द्वारा सिम -16 कंप्यूटिंग संसाधनों का पूरा उपयोग करना संभव है।
प्रश्न 2: इस मामले में, वेक्टर -16 डेटा प्रकार उपयोग कर रहा है यदि पहले से ही इसलिए कम से कम-16-मद-प्रति-कार्य-समूह प्रतिबंध को हटा, SIMD -16 संसाधनों का स्पष्ट उपयोग करता है। क्या यह मामला है?
प्रश्न 3: तो सब से ऊपर एक सही है, तो कैसे दो दृष्टिकोण एक दूसरे के साथ तुलना: 1) 112 धागे 7 SIMD -16 धागे OpenCL संकलक द्वारा में गुना; 2) 7 मूल धागे वेक्टर -16 डेटा प्रकारों और सिम -16 परिचालनों का स्पष्ट रूप से उपयोग करने के लिए कोडित हैं?