x86: задержка и пропускная способность трансцендентных функций

Intel В Справочном руководстве по оптимизации архитектур ® 64 и IA-32 приведены показатели задержки и пропускной способности для различных инструкций ЦП.

Для трансцендентных функций (FSIN и т. д.) некоторые цифры указаны как диапазоны (стр. C-29). Сноска 4 поясняет:

Задержка и пропускная способность трансцендентных инструкций могут существенно различаться в динамической среде выполнения. В этих инструкциях дается только приблизительное значение или диапазон значений.

Мой вопрос: какие факторы влияют на пропускную способность и задержку таких инструкций? Я полагаю, что ценность аргумента — это один из факторов. Есть ли другие?


person NPE    schedule 22.01.2013    source источник


Ответы (2)


Помимо аргумента, сочетание других инструкций, находящихся в процессе выполнения, может влиять на задержку и пропускную способность. Эти инструкции микрокодированы, что означает, что они генерируют последовательность микроопераций, которые должны конкурировать с другими инструкциями для ресурсов АЛУ; в случае такого разногласия производительность может быть неблагоприятно затронута.

person Stephen Canon    schedule 22.01.2013
comment
Опереди меня - я собирался сказать то же самое. Единственное, что я бы добавил, это подчеркнуть, что такие операции, как FSIN, могут быть реализованы с помощью некоторого последовательного приближения, такого как оценка короткого ряда, что означало бы несколько шагов, требующих внутренних ресурсов, и, таким образом, больше шансов «столкнуться» с другими. опс. - person JasonD; 23.01.2013

Управляющее слово x87 определяет точность вычислений (64-битная, 53-битная или 24-битная мантисса) и может влиять на производительность трансцендентных функций, особенно тех из них, которые внутренне используют деление или квадратный корень. В общем, я советую избегать использования тригонометрических инструкций x87, потому что по своей природе они очень неточны для больших входных значений.

person Marat Dukhan    schedule 23.01.2013