सवाल एसएसई के साथ शुरू करना


मैं इसका उपयोग करने के बारे में और जानना चाहता हूं SSE

स्पष्ट पढ़ने के अलावा सीखने के लिए क्या तरीके हैं इंटेल 64 और आईए -32 आर्किटेक्चर सॉफ्टवेयर डेवलपर मैनुअल?

मुख्य रूप से मुझे काम करने में दिलचस्पी है जीसीसी एक्स 86 अंतर्निहित कार्य


41
2017-09-07 14:42


मूल




जवाब:


सबसे पहले, मैं अंतर्निहित कार्यों का उपयोग करने की अनुशंसा नहीं करता - वे पोर्टेबल नहीं हैं (उसी आर्क के कंपाइलर्स में)।

उपयोग intrinsics, जीसीसी एक अद्भुत काम करता है एसएसई इंट्रिनिक्स को और भी अनुकूलित कोड में अनुकूलित करना। आप असेंबली में हमेशा एक झलक देख सकते हैं और एसएसई का पूर्ण क्षमता में इसका उपयोग कैसे करें।

इंट्रिनिक्स आसान हैं - सामान्य फ़ंक्शन कॉल की तरह:

#include <xmmintrin.h>

__m128 vector1 = _mm_set1_ps(4, 3, 2, 1); // Little endian, stored in 'reverse'
__m128 vector2 = _mm_set1_ps(7, 8, 9, 0);

// Addition
__m128 result = _mm_add_ps(vector1, vector2); // result = vector1 + vector 2

// A more advanced function, called shuffle
vector1 = _mm_shuf_ps(vector1, vector1, _MM_SHUFFLE(0,1,2,3));
// vector1 is now (1, 2, 3, 4) (above shuffle reversed it)

बेशक वहाँ और विकल्प हैं, एसएसई वास्तव में शक्तिशाली है और मेरी राय में सीखने के लिए अपेक्षाकृत आसान है।


41
2017-09-07 20:05



क्या आप int32 तत्वों के दो सरणी के डॉट उत्पाद को गर्म करने के लिए गर्म जानते हैं? - psihodelia
इसके लिए एक प्रश्न बनाओ, और मैं मदद करने के लिए सुनिश्चित करूँगा :) - LiraNuna


चूंकि आपने संसाधनों के लिए कहा था:

सी ++ के साथ एसएसई का उपयोग करने के लिए एक व्यावहारिक गाइड: उदाहरणों के साथ प्रभावी ढंग से एसएसई का उपयोग करने के तरीके पर अच्छा वैचारिक अवलोकन।

एमएसडीएन कंपाइलर इंट्रिनिक्स की लिस्टिंग: आपकी सभी आंतरिक जरूरतों के लिए व्यापक संदर्भ। यह एमएसडीएन है, लेकिन यहां सूचीबद्ध सभी इंट्रिनिक्स जीसीसी और आईसीसी द्वारा भी समर्थित हैं।

क्रिस्टोफर राइट का एसएसई पेज: एसएसई opcodes के अर्थों पर त्वरित संदर्भ। मुझे लगता है कि इंटेल मैनुअल एक ही कार्य कर सकते हैं, लेकिन यह तेज़ है।

इंट्रिनिक्स में अपना अधिकांश कोड लिखना शायद सबसे अच्छा है, लेकिन यह सुनिश्चित करने के लिए कि यह कुशल कोड तैयार कर रहा है, अपने कंपाइलर के आउटपुट के objdump को जांचें। सिम कोड कोड अभी भी काफी नई तकनीक है और यह बहुत संभव है कि कुछ मामलों में संकलक इसे गलत हो सकता है।


35
2017-11-25 07:21





मुझे डॉ। एग्नेर कोहरे का शोध और अनुकूलन गाइड बहुत मूल्यवान लगता है! उनके पास कुछ पुस्तकालय और परीक्षण उपकरण भी हैं जिन्हें मैंने अभी तक नहीं आजमाया है। http://www.agner.org/optimize/


5
2017-08-29 06:29