हाय सब :)
मैं फ्लोटिंग पॉइंट, सिमड/गणित इंट्रिनिक्स और जीसीसी के लिए फास्ट-मैथ फ्लैग के बारे में कुछ अवधारणाओं पर लटका पाने की कोशिश कर रहा हूं। अधिक विशेष रूप से, मैं x86 cpu पर gcc v4.5.0 के साथ MinGW का उपयोग कर रहा हूं।जीसीसी, सिमड इंट्रिनिक्स और फास्ट-गणित अवधारणाएं
मैं चारों ओर थोड़ी देर के लिए खोज की है अब, और कहा कि क्या मैं (लगता है कि मैं) इस समय को समझने है:
जब मैं कोई झंडे के साथ संकलन, किसी भी fp कोड मानक x87 हो जाएगा, कोई SIMD intrinsics, और math.h फ़ंक्शन msvcrt.dll से लिंक किए जाएंगे।
जब मैं mfpmath उपयोग करते हैं, mssen और/या मार्च ताकि MMX/SSE/AVX कोड सक्षम हो जाता है, जीसीसी वास्तव में, SIMD निर्देश केवल का उपयोग करता है, तो मैं भी कुछ अनुकूलन झंडे निर्दिष्ट पर की तरह या ftree-vectorize। इस मामले में अंतर्निहित जीसीसी द्वारा आंतरिक रूप से चुने गए हैं, और कुछ गणित कार्य (मैं अभी भी गणित पर मानक गणित funcs के बारे में बात कर रहा हूं) इनलाइन कोड द्वारा अंतर्निहित या ऑप्टिमाइज़ हो जाएगा, कुछ अन्य अभी भी msvcrt से आएंगे। dll। यदि मैं अनुकूलन झंडे निर्दिष्ट नहीं करता हूं, तो क्या इनमें से कोई भी परिवर्तन करता है?
जब मैं विशिष्ट SIMD डेटा प्रकार का उपयोग करें (उन जीसीसी एक्सटेंशन के रूप में उपलब्ध है, जैसे v4si या v8qi), मैं फिर से सीधे आंतरिक funcs कॉल करने के लिए, या जीसीसी के लिए automagic निर्णय छोड़ विकल्प होता है। यदि मैं उचित झंडे के माध्यम से सिमड निर्देश सक्षम नहीं करता हूं तो जीसीसी अभी भी मानक x87 कोड चुन सकता है। फिर, अगर मैं अनुकूलन झंडे निर्दिष्ट नहीं करता हूं, तो क्या इनमें से कोई भी परिवर्तन करता है?
आपने जो मुझे ठीक कर लें मेरा कोई भी कथन गलत है: पी
अब सवाल:
- मैंने कभी intrinsics का उपयोग करने के x86intrin.h शामिल करने के लिए है?
- क्या मुझे कभी भी libm को लिंक करना होगा?
- किसी भी चीज़ के साथ तेजी से गणित करना क्या है? मैं समझता हूं कि यह आईईईई मानक को आराम देता है, लेकिन, विशेष रूप से, कैसे? अन्य मानक कार्यों का उपयोग किया जाता है? कुछ अन्य lib जुड़ा हुआ है? या बस कुछ झंडे सेट हैं और मानक lib अलग तरीके से व्यवहार करता है?
किसी के लिए धन्यवाद, जो मदद करने के लिए जा रहा है: डी
जीसीसी पुस्तिका 3. यहां एक उदाहरण के लिए देखें: http://stackoverflow.com/questions/4956033/multiply-by-0-optimization – Anycorn