2009-05-06 20 views
5

मैं glibc पर जानकारी खोजने की कोशिश कर रहा हूं और यह कितनी हद तक एसएसई कार्यक्षमता का उपयोग करता है।glibc और एसएसई कार्यक्षमता

यदि यह अनुकूलित किया गया है, तो क्या मैं इसे आउट-ऑफ-द-बॉक्स का उपयोग कर सकता हूं?

कहें कि मैं बड़े लिनक्स डिस्ट्रोज़ में से एक का उपयोग कर रहा हूं, मुझे लगता है कि इसकी ग्लिबिक जितनी संभव हो सके उतनी सामान्य और पोर्टेबल जितनी संभव हो उतनी संकलित हो सकती है, इसलिए अनुकूलित नहीं किया गया है?

मुझे विशेष रूप से कार्यों में memcpy और memcmp और इन कार्यों को यथासंभव तेज़ी से प्राप्त करने में रुचि है।

उत्तर

5

glibc 2.8 memcpy या memcmp के लिए एसएसई का उपयोग नहीं करता है (x86 या x86_64 में) - यह कुछ हाथ से लिखित असेंबली का उपयोग करता है जो परिवार के सभी CPUs पर समर्थित कुछ भी नहीं बचाता है। Glibc 2.10 में, एक नया प्रकार का स्थानांतरण, STT_GNU_IFUNC समर्थित होगा, जो सीपीयू समर्थन के आधार पर बेहतर अनुकूलन करेगा।

2

यदि आप उच्चतम अनुकूलन सेटिंग्स के साथ संकलित करते हैं, तो memcpy और memcmp को कंपाइलर द्वारा इंट्रिनिक्स के साथ प्रतिस्थापित किया जा सकता है और कभी भी glibc को कॉल नहीं किया जा सकता है। फिर mcpu और मार्च कंपाइलर विकल्प सबसे तेज़ कोड का चयन करेंगे।

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