Я читал сегодня о исследователях, обнаруживших, что библиотеки NVidia Phys-X используют x87 FP против SSE2. Очевидно, что это будет субоптимально для параллельных наборов данных, где скорость превосходит точность. Однако автор статьи далее цитирует:
Intel начала обескураживать использование x87 с введением P4 в конце 2000 года. AMD отказалась от x87 с K8 в 2003 году, поскольку x86-64 определен с поддержкой SSE2; VIAs C7 поддерживает SSE2 с 2005 года. В 64-разрядных версиях Windows x87 устарел для пользовательского режима и полностью запрещен в режиме ядра. Практически все в отрасли рекомендовали SSE по сравнению с x87 с 2005 года, и нет причин использовать x87, если только программное обеспечение не должно работать на встроенном Pentium или 486.
Я подумал об этом. Я знаю, что x87 использует 80-битные расширенные двойники для вычисления значений, а SSE2 - нет. Разве это никому не важно? Мне это кажется удивительным. Я знаю, когда я выполняю вычисления по точкам, линиям и полигонам в плоскости, значения могут быть неожиданно ошибочными при выполнении вычитаний, а области могут разрушаться, а линии - друг другу из-за отсутствия точности. Я бы предположил, что использование 80-битных значений по сравнению с 64-битными значениями может помочь.
Это неверно? Если нет, что мы можем использовать для выполнения расширенных двойных операций FP, если x87 будет отменено?