2009-05-06 4 views
5

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

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

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

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

ответ

5

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

2

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

Смежные вопросы