eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.comp.programmingNowoczesne procesory - jak to z nimi jest?Re: Nowoczesne procesory - jak to z nimi jest?
  • X-Received: by 10.49.29.99 with SMTP id j3mr1209753qeh.38.1364333389628; Tue, 26 Mar
    2013 14:29:49 -0700 (PDT)
    X-Received: by 10.49.29.99 with SMTP id j3mr1209753qeh.38.1364333389628; Tue, 26 Mar
    2013 14:29:49 -0700 (PDT)
    Path: news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed.pionier.net.pl!news.glorb.com!
    t2no17948911qal.0!news-out.google.com!k8ni11100qas.0!nntp.google.com!ca1no84815
    59qab.0!postnews.google.com!glegroupsg2000goo.googlegroups.com!not-for-mail
    Newsgroups: pl.comp.programming
    Date: Tue, 26 Mar 2013 14:29:49 -0700 (PDT)
    In-Reply-To: <9...@g...com>
    Complaints-To: g...@g...com
    Injection-Info: glegroupsg2000goo.googlegroups.com; posting-host=178.36.110.253;
    posting-account=xjvq9QoAAAATMPC2X3btlHd_LkaJo_rj
    NNTP-Posting-Host: 178.36.110.253
    References: <5148d9db$0$26710$65785112@news.neostrada.pl>
    <4...@g...com>
    <1...@g...com>
    <kihto6$q3f$1@mx1.internetia.pl>
    <c...@g...com>
    <3...@g...com>
    <a...@g...com>
    <e...@g...com>
    <7...@g...com>
    <kipkjv$uf$1@speranza.aioe.org>
    <5...@g...com>
    <kipm0j$5bi$1@speranza.aioe.org>
    <5...@g...com>
    <kipoe5$cfe$1@speranza.aioe.org>
    <4...@g...com>
    <kiq26c$aqp$1@speranza.aioe.org>
    <b...@g...com>
    <515168b3$0$26703$65785112@news.neostrada.pl>
    <a...@g...com>
    <5151a5b1$0$1248$65785112@news.neostrada.pl>
    <kis906$ok$1@speranza.aioe.org>
    <e...@g...com>
    <f...@g...com>
    <c...@g...com>
    <9...@g...com>
    User-Agent: G2/1.0
    MIME-Version: 1.0
    Message-ID: <3...@g...com>
    Subject: Re: Nowoczesne procesory - jak to z nimi jest?
    From: "M.M." <m...@g...com>
    Injection-Date: Tue, 26 Mar 2013 21:29:49 +0000
    Content-Type: text/plain; charset=ISO-8859-2
    Content-Transfer-Encoding: quoted-printable
    Xref: news-archive.icm.edu.pl pl.comp.programming:202302
    [ ukryj 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: