1. This site uses cookies. By continuing to use this site, you are agreeing to our use of cookies. Learn More.

Noi apariţii/versiuni de software popular

Discussion in 'Software și sisteme de operare' started by Rabbit, Oct 14, 2003.

  1. whiskas

    whiskas Chronic suicidal

    Acum cine generalizează? :biggrin:
     
  2. _~_

    _~_ Membru

    Nimeni. Eu zic de mine și de Velkan (că el a adus vorba). Bănuiesc că sunt mulți alții pe forum care fac la fel.

     
  3. AdrianB1

    AdrianB1 Membru Senior

    Explicatia ta nu are nici un sens, daca ai un algoritm nu poate sa faca compilatorul pilaf din el ca asa are chef, trebuie sa respecte ordinea si corectitudinea calculelor, altfel 1+1 va avea rezultate impredictibile in functie de ce a baut compilatorul in seara precedenta si ala nu mai e computer, e masinia de calculat probabilitati (adica nu da rezultate exacte, ci aproximari).
     
  4. _~_

    _~_ Membru

    De fapt, floating point nu e determinist. Dacă ai nevoie de un rezultat determinist atunci nu folosești floating point, ci fixed precision arithmetic implementat în integer operations.

    Dar nu acesta e motivul pentru rezultate diferite. Am scris mai devreme, codul e diferit. Pe 32bit se folosește o bibliotecă scrisă în assembly (de către developeri) pe 64 bit se folosesc compiler intrinsecs.

    PS: fără vreo legătură cu problema de mai sus, dar foarte mulți algoritmi depind de rand() și nu sunt determiniști, de exemplu tot ce e legat de criptare.
     
  5. AdrianB1

    AdrianB1 Membru Senior

    Nu am zis ca nu am inteles si nu am acceptat explicatia ta, ci pe a lui whiskas. Procesarea unui mp3 poate fi facuta deterministic, iar tot ceea ce e legat de criptare e intentionat facut asa.
     
  6. whiskas

    whiskas Chronic suicidal

    Adrian, fix ce-a zis _~_, mai zic și eu o dată: degeaba e algoritmul același dacă faci calcule în virgulă mobilă.
    În ceea ce privește LAME, mai citește o dată ce-am zis (și ce-a zis și _~_ mai sus, mai bine și mai la obiect ca mine): diferă implementarea, adică funcțiile alea de matematică care-s unele pe 32 biți și altele pe 64 biți.
     
  7. IceCub

    IceCub Membru Senior

    Sa fie de la faptul ca operatiile cu FPU 64bit au prezicie mai mare? Pana la urma 1.2 + 1.2 ≠ 1.21+1.21
     
  8. AdrianB1

    AdrianB1 Membru Senior

    Operatiile FPU sunt aceleasi pe i86 si pe x64, nu inseama ca pe x64 ai FPU pe 64 si la i86 ai FPU pe 32 de biti :smile: Diferenta intre 32 si 64 e in mare la dimensiunea registrilor si a adreselor de memorie, nu de setul de instructiuni (da, exista variante de instructiuni pentru operatiile pe 64 de biti ca altel nu poti manipula registrii si adresele de memorie, dar nu despre asta e vorba).

    Nu, codul e pur si simplu diferit si gata. La i86 are bucati facute cu manuta, la x64 e cod generat de compilator si nimeni nu isi bate capul sa verifice daca rezultatele sunt egale pentru ca oricum rezultatele sunt in sine o aproximatie ("psihoacustica"). Ma mir ca nu au deja discutii daca variante pe 32 se aude mai bine decat cea pe 64 sau ca una baga distorsiuni audibile pentru lilieci.
     
  9. whiskas

    whiskas Chronic suicidal

    Depinde. În modul x86 se folosește una bucată FPU, în modul x86-64 se folosește una bucată de procesare vectorială cu instrucțiuni SSE. Sînt mai multe opcodes disponibile pentru aceeași operație, chiar dacă e același calcul.

    Da, codul e diferit, că doar asta a zis și dezvoltatorul. Cît despre egalitatea rezultatelor, 1,1 nu e egal cu 1,1 în virgulă mobilă decît dacă [ adaugă multe chestii restrictive pe-aici ].

    Revenind la mesajul inițial: ce contează? :smile:
     
  10. AdrianB1

    AdrianB1 Membru Senior

    Nu depinde de nimic, in ambele moduri ai la dispozitie aceleasi operatii, utilizarea SSE tine de capabilitatea procesorului (existenta instructiunilor) nu de modul de lucru. Or fi mai multe opcodes disponibile pentru aceeasi operatie, daca folosesti operatii diferite nu mai e acelasi cod.

    De ce conteaza? Pentru ca vei obtine rezultate diferite, unul mai bun si unul mai prost (egale - cam greu de crezut). Si de ce sa faci prost cand poti sa faci bine?
     
  11. _~_

    _~_ Membru

    De fapt SSE nu e deloc determinstic, același algoritm cu același input poate să dea rezultate ușor diferite la rulări diferite. x87 are un oarecare mod determinist care e semnificativ mai lent decât modul non-determinist așa că nu e folosit în practică de nimeni. Cine are nevoie de precizie cunoscută folosește integer math anyway.

    Pentru că e mult mai rapid să faci prost. în general nu merită să faci determinist, precizia floating point oricum variază și nu o cunoști dinainte, dacă ai toleranțe mici sau dacă algoritmul e instabil numeric folosești integer math, care e mai lent.

     
  12. Foxter

    Foxter Membru Senior

    CCleaner v3.12.1572.
     
  13. Velkan

    Velkan Moderator

    Ăștia-s ca ăia de la uT - cînd îl deschizi nu poți să dai resume la... distribuția de Linux (sau porn, după caz) că trebuie actualizat. x.x.x.1 zilnic mi se pare cam stresant.
     
  14. whiskas

    whiskas Chronic suicidal

    Aceeași poveste e și cînd folosești Calibre.
    Release early, release often da' parcă nici chiar așa. :biggrin:
     
  15. burebista

    burebista Manic Miner

    WTF is that? :biggrin:
     
  16. Velkan

    Velkan Moderator

    Adaugă traduceri pentru triburile de vînători-culegători. Vor să fie acoperiți juridic.
     
  17. Spawn

    Spawn Membru Senior

  18. Thor

    Thor Membru Senior

    Cam dubioasa miscarea developerilor. Adica inteleg ca e foame de bani, dar acelasi lucru se putea face inainte prin whitelisting.
     
  19. burebista

    burebista Manic Miner

    Rahat. Ce PLM i-a venit lu' Vladimir ala? :frown:
     
  20. ipman

    ipman Membru Senior

    Cam acelasi lucru se intimpla si cu Spamhaus. Si datorita legislatiei interstatale greoaie, nici macar legal nu poti actiona in cazuri justificate.