Extended = Double

Вопросы программирования на Free Pascal, использования компилятора и утилит.

Модератор: Модераторы

Re: Extended = Double

Сообщение Sergei I. Gorelkin » 25.08.2025 17:03:23

Microsoft при выпуске 64-битной винды объявила x87 устаревшим и намекнула, что его поддержка может быть со временем исключена из системы.
Разработчики FPC решили следовать этой "генеральной линии" и не использовать x87 для x86_64-win64.
Аватара пользователя
Sergei I. Gorelkin
энтузиаст
 
Сообщения: 1409
Зарегистрирован: 24.07.2005 14:40:41
Откуда: Зеленоград

Re: Extended = Double

Сообщение sts » 25.08.2025 17:07:43

Sergei I. Gorelkin писал(а):Microsoft при выпуске 64-битной винды объявила x87 устаревшим

наскока я понял там используется SSE, т.е. не совсем x87

Добавлено спустя 4 минуты 52 секунды:
т.е. на SSE под винду64 тоже можно было имитировать, или вообще сменить тип extended на 16 байтный, и под вин и под лин
sts
постоялец
 
Сообщения: 479
Зарегистрирован: 04.04.2008 12:15:44
Откуда: Тольятти

Re: Extended = Double

Сообщение Sergei I. Gorelkin » 25.08.2025 18:10:07

sts писал(а):наскока я понял там используется SSE, т.е. не совсем x87


Совсем не x87. SSE2, если быть точнее.

sts писал(а):т.е. на SSE под винду64 тоже можно было имитировать, или вообще сменить тип extended на 16 байтный, и под вин и под лин

SSE2 поддерживает только single и double. Все его более современные инкарнации (AVX...) увеличивают только длину вектора, но не точность. Эмуляция extended с ним будет ровно такая же, как и без него.

extended c выравниванием на 16 байт назвается cextended и существует в компиляторе с первых дней.
Аватара пользователя
Sergei I. Gorelkin
энтузиаст
 
Сообщения: 1409
Зарегистрирован: 24.07.2005 14:40:41
Откуда: Зеленоград

Re: Extended = Double

Сообщение sts » 26.08.2025 12:33:57

Sergei I. Gorelkin писал(а):SSE2 поддерживает только single и double.

разве? там же 128bit регистры

Добавлено спустя 4 минуты 25 секунд:
действительно, вот жулики, имея 128bit регистры не работать с long double
sts
постоялец
 
Сообщения: 479
Зарегистрирован: 04.04.2008 12:15:44
Откуда: Тольятти

Re: Extended = Double

Сообщение WAYFARER » 26.08.2025 14:54:49

sts писал(а): имея 128bit регистры не работать с long double

Скорее всего потому, что получился бы тот же x87. SSE (и AVX позже) проектировался для векторных вычислений.

Добавлено спустя 27 минут 5 секунд:
SSE2 это 4×32 или 2×64 в регистре.
AVX-512 это 16×32 или 8×64 в регистре.
Длина вектора растет, точность остается прежней, как выше отмечено.
Аватара пользователя
WAYFARER
энтузиаст
 
Сообщения: 550
Зарегистрирован: 09.10.2009 00:00:04
Откуда: г. Курган

Re: Extended = Double

Сообщение sts » 26.08.2025 15:45:55

WAYFARER писал(а):Скорее всего потому, что получился бы тот же x87

почему? там 80 битный костыль, логично было от него избавится (заменив на fp128), он же непросто так появился, а потому что реально нужен а вот мощи сделать по нормальному тогда не хватало.
sts
постоялец
 
Сообщения: 479
Зарегистрирован: 04.04.2008 12:15:44
Откуда: Тольятти

Re: Extended = Double

Сообщение WAYFARER » 27.08.2025 08:48:23

sts писал(а):почему? там 80 битный костыль, логично было от него избавится (заменив на fp128), он же непросто так появился, а потому что реально нужен а вот мощи сделать по нормальному тогда не хватало.

SIMD (SSE/AVX) не про 1 число, он про векторность, параллелизм.
В SSE XMM = 4xfloat32 или 2xfloat64 -> 1 регистр = несколько чисел.
Если сделать 128, в 128-битный регистр влезет ровно 1 число и тогда векторность теряется, SIMD превращается в обычный скалярный FPU, что противоречит идее SSE.

Про "нехватало мощи сделать нормально", я так думаю её и сейчас не хватает. Вычислительный блок получится огромный, дорогой и медленный, и при этом маловостребованный.
По моему только у IBM POWER/zSeries есть quad-precision (binary128), но по факту это тоже аналог x87, тоже скалярная арифметика.
Аватара пользователя
WAYFARER
энтузиаст
 
Сообщения: 550
Зарегистрирован: 09.10.2009 00:00:04
Откуда: г. Курган

Пред.

Вернуться в Free Pascal Compiler

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 0

Рейтинг@Mail.ru