функциональность glibc и SSE - PullRequest
5 голосов
/ 07 мая 2009

Я пытаюсь найти информацию о glibc и в какой степени он использует функциональность SSE.

Если он оптимизирован, могу ли я использовать его "из коробки"?

Скажем, я использую один из более крупных дистрибутивов Linux, и я предполагаю, что его glibc скомпилирован так, чтобы быть максимально универсальным и максимально переносимым, а значит, не оптимизированным?

Меня особенно интересуют функции memcpy и memcmp и как получить эти функции максимально быстро.

Ответы [ 2 ]

5 голосов
/ 07 мая 2009

glibc 2.8 вообще не использует SSE для memcpy или memcmp (в x86 или x86_64) - он использует некоторую рукописную сборку, которая позволяет избежать всего, что не поддерживается всеми процессорами семейства. В glibc 2.10 будет поддерживаться новый тип перемещения, STT_GNU_IFUNC , что позволит улучшить оптимизацию на основе поддержки ЦП.

2 голосов
/ 07 мая 2009

Если вы компилируете с самыми высокими настройками оптимизации, memcpy и memcmp могут быть заменены встроенными компиляторами и никогда не вызывать glibc вообще. Тогда опции компилятора mcpu и march выберут самый быстрый код.

...