Discussion:
Kiedy 128 bitów koprocesora ?
(Wiadomość utworzona zbyt dawno temu. Odpowiedź niemożliwa.)
Borneq
2019-11-07 18:59:33 UTC
Permalink
Moim pierwszym komputerem na studiach był w 1992 czy 1993 roku 386sx
33MHZ, z dość dużym dyskiem 80 MB.
W tym także czasie przeczytałem w czasopiśmie "Komputer" że powstał
koprocesor ziennoprzecinkowy 80387 z niesamowitymi możliwościami: 80
bitów, największe liczby to ponad 10^4000, 18-19 cyfr dokładności (a
może więcej, bo 18-19 double?), wiele funkcji.
Potem w 486dx już miałem wbudowany koprocesor.
Tyle że przez lata nie podbito dokładności.Z 80 bitów i tak głownie
używam 64 bity, jak w c/c++ użyć 80? bo w starym pascalu był typ
extended, a w C z powodów przenośności nie używa się jakoś 80 bitów.
A przydałoby się 128 bitów, może 160 i 256?
Wprawdzie GMP/MPIR+MPFR nie takie długie liczby potrafi liczyć, ale
zawsze jest to software a nie hardware i koprocesor mógłby liczyć szybciej.
heby
2019-11-07 19:50:16 UTC
Permalink
Post by Borneq
A przydałoby się 128 bitów, może 160 i 256?
https://en.wikipedia.org/wiki/IEEE_754-2008_revision

[w sekcji See also są przykłady implementacji w hardware]

Chwilowo support hardware jest tylko w jakiś mainframe. Suweren do
oglądania porno i grania w CS nie potrzebuje wiec nikłe szanse na
popularyzację w domowym złomie.
Tomasz Kaczanowski
2019-11-08 07:41:19 UTC
Permalink
Post by Borneq
Moim pierwszym komputerem na studiach był w 1992 czy 1993 roku 386sx
33MHZ, z dość dużym dyskiem 80 MB.
W tym także czasie przeczytałem w czasopiśmie "Komputer" że powstał
koprocesor ziennoprzecinkowy 80387 z niesamowitymi możliwościami: 80
bitów, największe liczby to ponad 10^4000, 18-19 cyfr dokładności (a
może więcej, bo 18-19 double?), wiele funkcji.
Potem w 486dx już miałem wbudowany koprocesor.
Tyle że przez lata nie podbito dokładności.Z 80 bitów i tak głownie
używam 64 bity, jak w c/c++ użyć 80? bo w starym pascalu był typ
extended, a w C z powodów przenośności nie używa się jakoś 80 bitów.
A przydałoby się 128 bitów, może 160 i 256?
Wprawdzie GMP/MPIR+MPFR nie takie długie liczby potrafi liczyć, ale
zawsze jest to software a nie hardware i koprocesor mógłby liczyć szybciej.
96 bitów miał Coldfire z tego co pamietam, ale 128 bitów też miał któryś
z koprocesorów riscowych pod koniec lat 90... ale już nie pamiętam,
który to był.
--
http://kaczus.ppa.pl
g***@gmail.com
2019-11-08 08:56:39 UTC
Permalink
Post by Borneq
Moim pierwszym komputerem na studiach był w 1992 czy 1993 roku 386sx
33MHZ, z dość dużym dyskiem 80 MB.
W tym także czasie przeczytałem w czasopiśmie "Komputer" że powstał
koprocesor ziennoprzecinkowy 80387 z niesamowitymi możliwościami: 80
bitów, największe liczby to ponad 10^4000, 18-19 cyfr dokładności (a
może więcej, bo 18-19 double?), wiele funkcji.
Potem w 486dx już miałem wbudowany koprocesor.
Tyle że przez lata nie podbito dokładności.Z 80 bitów i tak głownie
używam 64 bity, jak w c/c++ użyć 80? bo w starym pascalu był typ
extended, a w C z powodów przenośności nie używa się jakoś 80 bitów.
Używa się. Tylko to użycie nie jest bezpośrednio wyeksponowane dla użytkownika.
Koprocesor używa 80 bitów w obliczeniach pośrednich liczb 64-bitowych, żeby minimalizować błędy wprowadzane przez zaokrąglenia.
Post by Borneq
A przydałoby się 128 bitów, może 160 i 256?
Przydałoby się do czego?

Raczej trendy w przemyśle są takie, że w wielu zastosowaniach (głównie deep learning) używa się liczb zmiennopozycyjnych o zmniejszonej precyzji:

https://en.wikipedia.org/wiki/Half-precision_floating-point_format

Producenci hardware'u śledzą trendy w przemyśle. I dla przemysłu, najwidoczniej, typ "double" jest w większości przypadków zadowalający.
Post by Borneq
Wprawdzie GMP/MPIR+MPFR nie takie długie liczby potrafi liczyć, ale
zawsze jest to software a nie hardware i koprocesor mógłby liczyć szybciej.
No właśnie tutaj jest "Hund begraben".

Precyzja koprocesora ma to do siebie, że jaka by nie była, będzie zawsze skończona. Co więcej, liczby zmiennopozycyjne *z definicji* reprezentują niedokładną arytmetykę, w której 1 + 2 nie zawsze równa się 3.

Liczby zmiennopozycyjne charakteryzują się tym, że można ich używać zarówno w skali mikro, jak i w skali makro -- ale gdy przechodzimy od jednej skali do drugiej, tracimy precyzję.

Źródłowym pytaniem jest to, co chcesz liczyć, w jaki sposób, i do czego chcesz tych wyników używać - i dlaczego to, co daje GMP, jest niewystarczające.
Antoni
2020-04-04 20:49:03 UTC
Permalink
Post by Borneq
Moim pierwszym komputerem na studiach był w 1992 czy 1993 roku 386sx
33MHZ, z dość dużym dyskiem 80 MB.
Mój miał 12
A teraz w modzie są tribity

Kontynuuj czytanie narkive:
Loading...