2012-05-21 9 views
16

जीसीसी CFLAGS विकल्पों के लिए: -msse, -msse2, -mssse3, -msse4, -msse4.1, -msse4.2। क्या वे अपने उपयोग में अनन्य हैं या एक साथ इस्तेमाल किया जा सकता है?-msse, -msse2, -mssse3, -msse4 rtc के cflgs sse विकल्पों में अंतर क्या है ..? और कैसे निर्धारित करें?

मेरी समझ यह है कि सेट करने का चयन इस बात पर निर्भर करता है कि लक्ष्य आर्क, जो प्रोग्राम चलाएगा, इसका समर्थन करता है या नहीं, क्या यह सही है?

यदि हां, तो मुझे कैसे पता चलेगा कि मेरा लक्षित आर्क किस प्रकार का समर्थन करता है? लिनक्स में, मैं बिल्ली/proc/cpuinfo, लेकिन मैक या विंडोज क्या होगा?

धन्यवाद!

+0

एसएसई निर्देशों को सीपीयू की विभिन्न पीढ़ियों में बढ़ाया/संशोधित किया गया है। एक 4.2 लक्ष्य के लिए संकलन पुरानी पीढ़ियों पर जेनरेट कोड का उपयोग कर रोकता है। –

+0

पहले उत्तर के लिए धन्यवाद। तो मुझे क्या चुनना चाहिए? बस नवीनतम (क्या यह -msse4.2 है)? – yaya

+0

जब तक आपके पास कोई विशिष्ट सिमड आवश्यकता न हो तो बस सबसे कम आम denominator के लिए संकलित करें, यानी .msse स्विच छोड़ दें। –

उत्तर

27

-m स्विच समानांतर में उपयोग किया जा सकता है, इसके अलावा उनमें से कुछ वास्तुकला या अन्य स्विच द्वारा निहित हैं। उदाहरण के लिए, यदि आप x86_64 के लिए कोड बनाते हैं, तो -msse -msse2 हमेशा सक्षम होता है।

आपके सिस्टम पर चलाने के लिए कोड के लिए आपको -march=native चुनना चाहिए, जो आपके प्रोसेसर पर उपलब्ध होगा का चयन करेगा। उदाहरण के लिए, यदि आपके पास एक सैंडी ब्रिज है, तो यह -msse -msse2 -msse3 -mssse3 -msse4 -msse4.1 -msse4.2 -mavx सक्षम करेगा।

यदि आप विस्तार से निर्दिष्ट करना चाहते हैं कि कौन सा निर्देश उपयोग करने के लिए सेट है, तो आपको केवल "नवीनतम" नहीं, केवल उपलब्ध होने का उपयोग करना चाहिए। "नवीनतम" वर्तमान में -mavx2 है, जो मैं अनुशंसा नहीं करता: पहला प्रोसेसर जो इसका समर्थन करेगा 2013 में उपलब्ध होगा।

+0

'msse4' का क्या मतलब है? जहां तक ​​मैं इसे बता सकता हूं वह 'msse4.2' जैसा ही है। शायद यह एक मैक्रो '__SSE4__' बनाता है? ऐसा लगता है जैसे यह भ्रम पैदा करता है। –

+0

@Zboson मुझे नहीं पता कि बिंदु क्या है। आपको यह पूछना चाहिए कि जीसीसी मेलिंग सूची पर, वास्तव में कोई अंतर नहीं है (अभी तक?)। आप इसे 'gcc -dM -E -msse4.2 - 1 जैसे कुछ के साथ देख सकते हैं; gcc -dM -E -msse4 - 2; diff 1 2' – hirschhornsalz

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