2009-05-06 14 views
5

Estoy tratando de encontrar información sobre glibc y hasta qué punto usa la funcionalidad SSE.funcionalidad glibc y SSE

Si está optimizado, ¿puedo usarlo desde el primer momento?

Digamos que estoy usando una de las distribuciones de Linux más grandes, supongo que su glibc se compila para ser lo más genérico posible y para ser lo más portátil posible, por lo tanto no optimizado.

Estoy particularmente interesado en las funciones memcpy y memcmp y cómo obtener estas funciones lo más rápido posible.

Respuesta

5

glibc 2.8 no utiliza SSE para memcpy o memcmp en absoluto (en x86 o x86_64) - que utiliza un poco de montaje escrita a mano, lo que evita cualquier cosa que no apoyado en todas las CPUs de la familia. En glibc 2.10, se admitirá un nuevo tipo de reubicación, STT_GNU_IFUNC, que optimizará las optimizaciones basadas en el soporte de la CPU.

2

Si compila con la configuración de optimización más alta, memcpy y memcmp podrían ser reemplazados por intrínsecos por el compilador y nunca llamar a glibc. A continuación, las opciones del compilador mcpu y marzo seleccionarán el código más rápido.