2009-05-06 20 views
5

Sto cercando di trovare informazioni su glibc e in che misura utilizza la funzionalità SSE.funzionalità glibc e SSE

Se è ottimizzato, è possibile utilizzarlo immediatamente?

Dire che sto usando una delle maggiori distribuzioni Linux, presumo che il suo glibc sia compilato per essere il più generico possibile e per essere il più portabile possibile, quindi non ottimizzato?

Sono particolarmente interessato alle funzioni memcpy e memcmp e come ottenere queste funzioni il più velocemente possibile.

risposta

5

glibc 2.8 non utilizza SSE per memcpy o memcmp (in x86 o x86_64) - utilizza un assembly scritto a mano che evita qualsiasi cosa non supportata su tutte le CPU della famiglia. In glibc 2.10, sarà supportato un nuovo tipo di riposizionamento, STT_GNU_IFUNC, che consentirà di ottimizzare meglio il supporto della CPU.

2

Se si compila con le impostazioni di ottimizzazione più elevate, memcpy e memcmp potrebbero essere sostituiti con elementi intrinseci dal compilatore e non chiamare mai glibc. Quindi le opzioni del compilatore mcpu e marzo selezioneranno il codice più veloce.