eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.comp.programmingNowoczesne procesory - jak to z nimi jest?Re: Nowoczesne procesory - jak to z nimi jest?
  • Data: 2013-03-26 22:29:49
    Temat: Re: Nowoczesne procesory - jak to z nimi jest?
    Od: "M.M." <m...@g...com> szukaj wiadomości tego autora
    [ pokaż wszystkie nagłówki ]

    W dniu wtorek, 26 marca 2013 22:01:28 UTC+1 użytkownik Adam Klobukowski napisał:

    > Standard definiuje miedzy innymi typy danych (np 32, 64, 80 bit float), i w
    > jego zakresie nie da się zmienić dokładności.
    Dla mnie z tego nic nie wynika. Nie wiem co znaczy "zmienić dokładność".

    Jeśli typ składa się z iluś tam bitów, jedyną sensowną dokładnością jaką
    jestem sobie w stanie wyobrazić, jest dokładność co do najmniej znaczącego
    bitu. Jeśli liczba jest sumą całkowitych potęg dwójki i mieści się w zakresie
    typu, to nie ma żadnego ważnego powodu aby obliczenia nie były przeprowadzone
    dokładnie. Można to osiągnąć i sprzętowo, i software'ow - np. w kompilatorze,
    albo w bibliotece do obliczeń zmiennoprzecinkowych. Podobnie sprawa ma
    się w każdej innej reprezentacji niż dwójkowa.

    Mogę zrozumieć że przyjmuje się różną strategię zaokrągleń ostatniego bitu,
    ale jeśli mogą pojawiać się jakieś losowe/deterministyczne i zarazem
    niedokładne wartości w najmniej znaczących bitach to sorry, ale dlaczego
    mam to nazywać inaczej niż "niedokładne obliczenia tam, gdzie dokładnie
    policzyć można"?



    > Rózne procesory tej samej architektury mogą wykonywać te same operacji
    > tożsamo ale nie identycznie, choćby dlatego że jedna liczba może mieć kilka
    > reprezentacji zmiennoprzecinkowych. To się kumuluje w ciągu kilku operacji
    > zmiennoprzecinkowych. Do niwelowania tego typu problemów (między innymi)
    > służy opcja -march w kompilatorach. Jak się robi krytyczne obliczenia, to się
    > mierzy błąd operacji zmiennoprzecinkowych i jak wychodzi za dużo to się
    > kombinuje.
    Tematyka jest ciekawa, ale byśmy musieli uściślić to o czym rozmawiamy. Ja
    trochę się gubię, czasami nie wiem czy w tym wątku rozmawiamy o złym
    szkolnictwie, czy o procesorach, czy o kompilatorach. Podobno mam się
    czegoś nauczyć, strasznie boli mnie to, że nie wiem czego, tym bardziej
    że chcę :)

    Że błędy mogą się nakładać - to wiem. Z opcją march kombinowałem,
    kilka razy i nie zaobserwowałem żadnych różnic - może trafiłem na
    specyficzne kompilatory/procesory/obliczenia - nie wiem. Z opcją
    fast-math też kombinowałem - tam gdzie sprawdziłem, też nie było
    najmniejszych różnic. Jeśli w jakimś przypadku traciłem dokładność
    obliczeń, to kombinowałem - czyli robiłem tak jak mówisz. Przywracałem
    stabilność jakimś technikami, nie tylko przy pomocy abs(v1-v2) < epsilon.

    W to że 2+2==4.0000000001 nie oznacza niedokładnych obliczeń jak niektórzy
    (chyba) sugerowali, nie uwierzę na pewno :)

    Więc czego powinienem się douczyć?

    Pozdrawiam

Podziel się

Poleć ten post znajomemu poleć

Wydrukuj ten post drukuj


Następne wpisy z tego wątku

Najnowsze wątki z tej grupy


Najnowsze wątki

Szukaj w grupach

Eksperci egospodarka.pl

1 1 1

Wpisz nazwę miasta, dla którego chcesz znaleźć jednostkę ZUS.

Wzory dokumentów

Bezpłatne wzory dokumentów i formularzy.
Wyszukaj i pobierz za darmo: