मैंने हमेशा सोचा था कि शाखा विचलन केवल "अगर", "अन्य", "के लिए", "स्विच" आदि जैसे ब्रांचिंग कोड के कारण होता है। हालांकि मैंने हाल ही में एक पेपर पढ़ा है जिसमें यह कहता है:सीयूडीए में, गैर-कोलेस्ड मेमोरी एक्सेस शाखा विचलन का कारण बनता है?
" कोई स्पष्ट रूप से देख सकता है कि प्रत्येक पहले अन्वेषण-आधारित एल्गोरिदम में धागे द्वारा ली गई अलग-अलग शाखाओं की संख्या पूर्ण अन्वेषण रणनीति से कम से कम दो गुना अधिक महत्वपूर्ण है। यह आमतौर पर अतिरिक्त गैर-कोलेस्ड पहुंच से परिणाम होता है वैश्विक स्मृति इसलिए, इस तरह के धागे विचलन से कई मेमोरी एक्सेस होते हैं जिन्हें क्रमबद्ध किया जाना चाहिए, निष्पादित निर्देशों की कुल संख्या में वृद्धि।
कोई यह देख सकता है कि गैर-कोलेस्ड एक्सेस का उपयोग कर संस्करण के लिए वार्प सीरियलाइजेशन की संख्या इसके समकक्ष के मुकाबले सात से सोलह गुना अधिक महत्वपूर्ण है। दरअसल, गैर-कोलेस्ड एक्सेस के कारण एक थ्रेड विचलन कई स्मृति एक्सेसों को जन्म देता है जिन्हें क्रमबद्ध किया जाना चाहिए, निर्देशों को निष्पादित करना बढ़ाना है। "
यह की तरह लगता है लेखक के अनुसार, गैर एकत्रित पहुंच विभिन्न शाखाओं पैदा कर सकता है। यह सच? मेरा प्रश्न है, कितने कारणों वास्तव में शाखा विचलन के लिए देखते हैं है? अग्रिम धन्यवाद।
क्या आप मूल संदर्भ से लिंक कर सकते हैं? – talonmies
+1 मैं वास्तव में जानना चाहता हूं कि अलग-अलग शाखाओं के लिए मेमोरी एक्सेस रणनीति कैसे जिम्मेदार होगी। कृपया संदर्भ जोड़ें। –
यह थीसिस संदर्भ होना चाहिए। 2 पैराग्राघ क्रमश: पी 80 और पी 107 से आते हैं। http://mistic.heig-vd.ch/luong/thesis.pdf – kangshiyin