x86-64 के एसएसई निर्देश (वेक्टर निर्देश) सामान्य निर्देशों को बेहतर प्रदर्शन करते हैं। क्योंकि मैं जो देख रहा हूं वह यह है कि एसएसई निर्देशों को निष्पादित करने के लिए आवश्यक भार और स्टोर वेक्टर गणना के कारण हमारे पास होने वाले किसी भी लाभ को कम कर रहे हैं। तो क्या कोई मुझे एक उदाहरण एसएसई कोड दे सकता है जहां यह सामान्य कोड से बेहतर प्रदर्शन करता है।एसएसई निर्देश सामान्य निर्देशों से बेहतर प्रदर्शन करते हैं
इसकी शायद क्योंकि मैं प्रत्येक पैरामीटर अलग से गुजर रहा हूँ, इस तरह ...
__m128i a = _mm_set_epi32(pa[0], pa[1], pa[2], pa[3]);
__m128i b = _mm_set_epi32(pb[0], pb[1], pb[2], pb[3]);
__m128i res = _mm_add_epi32(a, b);
for(i = 0; i < 4; i++)
po[i] = res.m128i_i32[i];
नहीं है वहाँ एक तरह से मैं एक बार में सभी 4 पूर्णांकों पारित कर सकते हैं, मैं पूरी 128 बाइट्स पारित मतलब एक बार में pa
का? और एक बार में res.m128i_i32
po
असाइन करें?
मूल रूप से, जब भी आप एक अत्यंत उच्च अभिकलन/लोड स्टोर है अनुपात। – Mysticial
हाँ, आप निश्चित रूप से '_mm_set_epi32()' का उपयोग नहीं करना चाहते हैं। '_mm_load_si128()' का प्रयोग करें।और यदि आप डेटा को संरेखित नहीं कर सकते हैं, तो आप प्रदर्शन दंड पर '_mm_loadu_si128()' का उपयोग कर सकते हैं। – Mysticial
डेटा संरेखित करें? तुम्हारा इससे क्या मतलब है? – pythonic