2013-10-12 4 views
9

मल्टीकोर मशीन पर समानांतर एल्गोरिदम के प्रदर्शन पर काम कर रहा हूं। मैंने लूप रीडरिंग (ikj) तकनीक के साथ मैट्रिक्स गुणा पर एक प्रयोग किया।एल 2 डेटा और निर्देश कैश अचानक

धारावाहिक निष्पादन परिणाम है छवियों के रूप below.L1 डेटा NxN मैट्रिक्स के सभी आकार के लिए पाश आदेश ikj और Kij के लिए मारा कैश 100% (छवि 1 बॉक्स नंबर 1 & 2) के पास है और आप पाश आदेश देख सकते हैं ikj आकार 2048 और 40 9 6 में अचानक एल 2 डेटा कैश में कमी 50% (छवि 2 बॉक्स नंबर 1 & 2) एल 2 निर्देश कैश में भी हिट है, यह सच है। इन 2 आकारों के लिए L1 डेटा कैश हिट करें, अन्य आकारों की तरह हैं (256,512,1024) लगभग 100% है। मुझे निर्देश और डेटा कैश हिट दोनों में इस ढलान के लिए कोई भी resonable कारण नहीं मिला। क्या कोई मुझे कारण बता सकता है कि कारण कैसे ढूंढें?

क्या आपको लगता है कि समस्या को बढ़ाने पर एल 2 एकीकृत कैश का कोई असर पड़ता है? लेकिन फिर भी इस कमी के कारण एल्गोरिदम की विशेषता और प्रदर्शन को मुझे कारण खोजने के लिए प्रोफाइल करना चाहिए।

प्रयोगात्मक मशीन, 2Mb L2 कैश, कैश लाइन 64 के साथ इंटेल e4500 है ओएस जीसीसी 4.7 -ओ कोई संकलक अनुकूलन

संक्षिप्त & पूरा प्रश्न के साथ फेडोरा 17 x64 है? my problem is that why sudden decrease of about 50% in both L2 data and instruction cache happens in only ikj & kij algorithm as it's boxed and numbered 1 & 2 in images, but not in other loop variation?

        *Image 1* 

enter image description here

        *Image 2* 

enter image description here

        *Image 3* 

enter image description here

        *Image 4* 

enter image description here

        *Image 5* 

उपरोक्त समस्या के बावजूद ikj & किज एल्गोरिदम के समय में कोई वृद्धि नहीं हुई है। लेकिन दूसरों की तुलना में तेज़ है। enter image description here

ikj और Kij एल्गोरिथ्म/

Kij एल्गोरिथ्म पाश पुन: क्रम तकनीक के दो रूपांतर

For (k=0;k<n;k++) 
    For(i=0;i<n;i++){ 
     r=A[i][k]; 
     For (j=0;j<n;j++) 
      C[i][j]+=r*B[k][j] 
    } 

एल्गोरिथ्म ikj

For (i=0;i<n;i++) 
    For(k=0;k<n;k++){ 
     r=A[i][k]; 
     For (j=0;j<n;j++) 
      C[i][j]+=r*B[k][j] 
    } 

धन्यवाद

+0

यह संभव नहीं है, लूप आसानी से एल 1 निर्देश कैश में फिट बैठते हैं ताकि आपको कभी भी एल 2 निर्देश हिट प्रतिशत में कमी दिखाई न दे। आपका प्रोफाइलर बोर्कन होना चाहिए या आप थ्रेड के साइड इफेक्ट को बहुत पहले से खाली कर रहे हैं। –

+0

@ हंस आप कैसे कहते हैं कि लूप निर्देश कैश में फिट होगा? मैं भी समांतर संस्करण चलाता हूं, इसमें एल 1 निर्देश हिट में भिन्नता भी है, एल 2 निर्देश में भी हिट केवल 1 और 2 में ikj और किज एल्गोरिदम में खुश है !! – mjr

+0

मैंने ब्लॉकिंग के एक स्तर के साथ प्रोफाइलिंग किया लेकिन इस बदलाव ने इसलिए नहीं देखा है कि अब मैं उलझन में हूं !!! – mjr

उत्तर

4

मैं शर्त लगा सकता क्योंकि यदि ऐसा होता हैं सुपर के एर-संरेखण समस्या निम्न सवालों का जवाब में चर्चा:

मुझे आशा है कि यह समझा जा सकता है कि मैं उन लोगों से & पेस्ट कॉपी करने के लिए पसंद नहीं है जवाब।

+0

धन्यवाद @विलेकुल्ला यह एक अच्छा प्रयास था और अच्छे लेख भी थे लेकिन मेरी समस्या यह है कि अचानक कमी क्यों लगभग 50% केवल ikj और kij एल्गोरिदम में होता है क्योंकि यह बॉक्सिंग और एल 2 डेटा और निर्देश कैश दोनों में 1 और 2 गिना जाता है लेकिन अन्य लूप भिन्नता में नहीं, मुझे उल्लेख करना चाहिए कि एल 2 में इस चूक के अलावा पूर्व उपरोक्त (ikj और kij) एल्गोरिदम कैश में सीरियल और समांतर संस्करण दोनों में कोई समय की समस्या नहीं है, लेकिन वे डेटा तक पहुंचने के तरीके के कारण भी तेज हैं और साथ ही उन लेखों में कम लोड, स्टोर और मिस हैं। मैंने टाइमलाइन चार्ट चार्ट को छवि 5 के रूप में जोड़ा है, आप इसे देख सकते हैं। – mjr

+0

मुझे यह जोड़ना चाहिए था कि जब मैंने ikj आदेश के साथ अवरुद्ध तकनीक का उपयोग किया तो ऐसे पैटर्न को किसी अवरुद्ध कारकों (बीएफ) या आकार में नहीं देखा गया। हालांकि निश्चित रूप से बीएफ के बीच भिन्नता थी। – mjr

संबंधित मुद्दे