Pull to refresh

Comments 8

Ну это не полностью разные команды все-таки а разные вариации одних и тех же команд. FMA например это все по сути одна команда. Различия только в знаках (a*b+c, a*b-c, -a*b+c) и типах операндов (fp32, fp64, fp32 packed,....)․ Там декодер по сути достает эту одну команду и пару бит в виде "флагов" управляющих ею. Кроме того не все эти инструкции поддерживаются. Например FMA4 и FMA3 взаимно исключающие (разные реализации одного и того же). AVX512 вообще прям by design состоит из нескольких поднаборов инструкций которые могут поддерживаться не полностью. Наконец в списке инструкции частично "продублированы" - например FMA является частью AVX2․ Так что не все так плохо, да.

Активно использую инструкции SSE/AVX/AVX2/AVX512 для обработки текста. Дают хорошие плюшки в производительсности...

ну для этого оно и придумано ) Вопрос только в том, что эти наборы инструкций перекрывают друг друга и в целом сильно избыточны.

У Риск В минималистичный симд, потому что он состоит из необходимого минимума. Как только у производителей появятся настоящие клиенты, образуется столько расширений, что их в одной статье не перечислишь.

Как это можно удалить x87 FPU, если команд для работы с 80-битным форматом больше ни в одном наборе нет?

Тригонометрические функции это не то что «даже» считается неточно, это единственное что там реализовано не идеально. Но даже эта проблема имеет нулевую практическую значимость и скорее является косяком документации которая гарантировала максимальную ошибку в относительных единицах тогда как реальная реализация fsin обеспечивает ее в абсолютной величине. Ну как бы да, формально нехорошо что величина синуса равная 1e-18 считается для некоторых значений с абсолютной погрешностью 1e-23 а не 1e-30 что формально обещает стандарт ( конкретные значения взяты с потолка чтобы показать принцип). Влияет это на хоть что то? Сомневаюсь. В любом случае в sse и даже в avx вплоть до avx-512 специальных инструкций для подсчета синуса аналогичных fsin просто нету, а любой алгоритм реализованный на обычных инструкциях даст лучшие результаты при использовании long double.

В любом случае в sse и даже в avx вплоть до avx-512 специальных инструкций для подсчета синуса аналогичных fsin просто нету

Потому что они не нужны. программная реализация на SSE2 etc. быстрее того, что в x87 зашито.

Sign up to leave a comment.

Articles