के लिए कैश करने के लिए डेटा को प्रीफेच करना मेरे आवेदन में, एक बिंदु पर मुझे स्मृति डेटा (एमबी के 100s) के एक बड़े संगत ब्लॉक पर गणना करने की आवश्यकता है। मैं जो सोच रहा था वह ब्लॉक के हिस्से को प्रीफेच करना था, मेरा प्रोग्राम भविष्य में छूएगा, ताकि जब मैं उस हिस्से पर गणना करता हूं, तो डेटा पहले से ही कैश में है।x86-64
क्या कोई मुझे जीसीसी के साथ इसे प्राप्त करने का एक सरल उदाहरण दे सकता है? मैंने कहीं _mm_prefetch
पढ़ा है, लेकिन यह नहीं पता कि इसका सही तरीके से उपयोग कैसे किया जाए। यह भी ध्यान रखें कि मेरे पास एक मल्टीकोर सिस्टम है, लेकिन प्रत्येक कोर समानांतर में स्मृति के एक अलग क्षेत्र पर काम करेगा।
यदि स्मृति पहुंच अनुक्रमिक है, तो हार्डवेयर प्रीफ़ेचर पहले से ही आपके लिए यह करेगा। तो आपको मैन्युअल प्रीफेचिंग के साथ शायद अधिक सुधार नहीं मिलेगा। – Mysticial
इस सवाल को एक उदाहरण के लिए देखें जहां प्रीफेचिंग वास्तव में मदद करता है: http://stackoverflow.com/questions/7327994/prefetching-examples – Mysticial
आपका मतलब है कि हार्डवेयर प्रीफ़ेचर किसी भी तरह से पहचानता है कि मैं स्मृति में संगत क्षेत्रों का उपयोग कर रहा हूं और उन हिस्सों को कैश में ला रहा हूं ? – pythonic