- Telekom mobilszolgáltatások
- Motorola Edge 60 és Edge 60 Pro - és a vas?
- iPhone topik
- Apple Watch
- Huawei Watch Fit 3 - zöldalma
- Samsung Galaxy S25 Ultra - titán keret, acélos teljesítmény
- CMF Buds Pro 2 - feltekerheted a hangerőt
- Samsung Galaxy S22 Ultra - na, kinél van toll?
- Magisk
- Honor 200 Pro - mobilportré
Új hozzászólás Aktív témák
-
dezz
nagyúr
Már látom, hogy már az elején félreértettelek. Azt hittem, hogy a GPU-nál nem foglalkoznak a sorrendiséggel és már eleve ez komoly gondot jelent.
Viszont akkor semmi újat nem mondtál Abunak a #18-asban, hiszen ő is arról beszélt, hogy elméletben hogyan kellene lennie és ehhez képest a gyakorlatban nem úgy van.
"Ez a hozzáállás alapvetően sérül a gyakorlatban, és ez nem a kerekítési probléma miatt van, hanem mert véges az ábrázolható kettedesjegyek száma."
Ha már újra a #18-asnál jártam, erre is reagálnék: persze, hogy nem a kerekítés miatt van. Viszont éppen emiatt van szükség a kerekítésre, aminek a megvalósítása befolyásolja a kapott eredményt, ezért szükséges követni a szabványokat.
-
dezz
nagyúr
Ja, értem, szóval a CPU-k odafigyelnek erre. A GPU-k ugye in-orderesek, nem? Szóval, akkor az OpenCL nem figyel erre oda, vagy mi?
Magam is belefutottam érdekes problémákba ezzel kapcsolatban, amikor annó (90's) átírtam pár kódomat (off-line renderelt grafikai effektek reklámfilmekhez) 68k CPU ASM-ről FPU-sra. Olyannyira számítottak a kerekítés eltérései, hogy egyes grafikus effekteknél meglepő módon jól láthatóan bezavart a végeredménybe és át kellett írni a kódot miatta.
-
Sir Ny
senior tag
,,a példa értelmezése szerint az egyenletrendszernek egyetlen, két értékű megoldása van, az 1 és a -1 páros. Egyetlen pár, amiben két valós szám van. Egyetlen más pár sem megoldása az egyenletrendszernek. Nincs alternatíva."
az a+b+c=x egyenletnek pedig három jó megoldása van, amelyből a programozó csak egyet kér, de azt rábízza a processzorra, hogy melyiket. (mert így gyorsabb)
Az a baj, hogy túl buta vagy, vagy úgy csinálsz (trollkodsz) hogy lopkodd az én időmet. (azaz csak lopkodod az én időmet mindenféle értelem nélkül, nem tudom túl buta vagy-e, vagy ez szándékos). Én abbahagytam.
-
Sir Ny
senior tag
,,A példád irreleváns. Az egyenletrendszernek van két megoldása valós számokon, ez két konkrét megoldás. "
tetszőleges program tetszőlegesen kerekítve véges (illetve ami ennél fontosabb: előre meghatározható) számnyi különböző eredményt adhat, csak a szerencse dönti el, hogy melyiket.
Az analógia nem irreleváns, de teljesen tökéletes.
- Programozó - tanár
- Több lehetséges jó eredménnyel járó feladatot kérnek
- Elfogadnak egy jó megoldást
- Mind a matematikában, mind a számítástechnikában nincs megszabva hogy hogyan kell eljutni addig=> mind a matematikában mind a számítástechnikában a végrehajtó egységtől függ, hogy melyik eredményt adja
- Mind Pistike, mind a GPU belső ütemezése rejtély, azaz tekinthetőek fekete doboznak, amely a tanár/programozó számára teljesen véletlenszerűen ad vissza egy eredményt a lehetséges jó eredmények közül=> az égvilágon semmi különbség nincs a matematikával.ű
,,Schrödinger macskája annak köszönheti a népszerűségét, hogy furcsa, és sokan, köztük te is asszociatívan használják, vagyis "erről eszembe jutott" módon."
Nocsak, de nagy mellénnyel van valaki. Ha nem tudsz szöveget értelmezni, minek ugatsz? Írtam, hogy az egész világ (klasszikus fizikai része) így működik, nem csak a matematika, hogy a lehetséges eredményekből kapsz egyet véletlenszerűen (ha van valahol számodra ismeretlen adat, akkor számodra véletlenszerűen) és írtam, hogy ha belevesszük a nemklasszikus fizikát, akkor is csak a lehetséges állapotok száma nő meg, és azok közül kapunk egy (tényleg)véletlenszerűt. (Azt hiszem hogy most a tér kvantált, de nem teljesen követem, hogy mikor melyik)
,,Abu azt mondta, hogy az baj, ha matekot végigszámolva hol 1, hol 0.999999 jön ki, és ilyen értelemben van több válasz ugyanarra a kérdésre."
Igen, és ebben téved. Ez a példa meg különösen idióta, tekintve hogy 0,999=1, tehát ha van egy 3/3-as kifejezésed, akkor a számolásod módjától függően juthatsz el a 0,999, vagy az 1 alakig (bár megegyeznek úgyhogy lényegtelen).
szerk:,,Ebből következően hiába igaz, hogy a matematikában az összeadás kommutatív, float és double számokra az ADD gépi utasítás nem az."
A matematikában az összeadás
kommutatívasszociatív? Nocsak? Én eddig azt hittem tetszőleges három fixhosszú lebegőpontos számot összeadva sorrendtől függő eredményt kapok -
Sir Ny
senior tag
,,Schrödinger cicája pedig tartja az irreleváns tudományosnak szánt hivatkozások világrekordját, szoros versenyben a Gödel tétellel, és a relativitáselmélettel. Nem csoda, hogy itt is felbukkant
"
Öm. Nem. Schrödinger cicája az egyetlen olyan (gondolat)kísérlet ami egyrészt ölég népszerű, másrészt pedig a determinisztikussághó' van köze.
,,Ez a matematikában tényleg így van. Csak programozásban nem."
Csak akkor, ha matematika = adott aritmetikai műveletek adott sorrendben való végrehajtása. BTW programozástól (programfutástól) is elvárhatnánk ugyanezt.
De ha már a programfutást feladat-centrikussá tesszük, azaz megmondjuk a szegény processzornak hogy micsináljon, és pont leszarjuk hogy hogyan csinálja, (bízunk benne hogy jól majd meglepődünk, hogy nem), akkor a matematikától is el lehet várni ugyanezt.
Például egy feladat: Pistike, itt van az egyenletrendszer, határozd meg egyetlen megoldását. Mondjuk: a=b és a*b=1. És Pistike csűri csavarja és az jön ki, hogy a=b=-1. Katinak meg a=b=1. És itt a hangsúly nem Pistikén van, vagy hogy rosszul számol: ha az a feladat, hogy valahogy határozza meg, és az a feladat, hogy egyetlen megoldást adjon meg a sokból, akkor akármelyik jó. Pont, mint a programozásnál, ott is az a processzor feladata, hogy adjon egy jó eredményt ahogy tud. Abu meg ha a matematikáhó' nem ért, ne szóljon belé.szerk: ha már aritmetika: ugye tudod, hogy a programfutás az az aritmetika és ezáltal a matematika része?
-
dezz
nagyúr
"a GPU atomikus művelete (amivel a párhuzamosan számolt részeredményeket összedolgozni érdemes) ütemezőfüggő sorrendben hajtódik végre, CPU programokban ez általában determinisztikus, hacsaknem több szálú, trükkös kódot csinál az ember."
A komolyabb CPU-k jó ideje out-of-order végrehajtást használnak (feltéve, hogy nincs dependencia). Egy olyan kód, hogy pl.:
a=b+c
d=e+f
g=a+d
lehet, hogy így hajtódik végre:
d=e+f
a=b+c
g=a+d -
polika
senior tag
A probléma amiről írsz akkor valós, ha a kerekítési pontosság közelében szeretnéd a végeredményed pontosságát megkapni. Ahogy írod, ez 1-2 műveletnél közel hozható, viszont kurvasok művelet kis hibája ténylegesen torzíthatja az eredményt, főleg ha a float számaidnál az ábrázolási pontosság határait feszegetik a különböző részösszegek (igen nagy ill igen kicsi számok kevert halmaza).
A vicc ráadásul az egészben hogy a pontos kerekítés hiánya, vagy megléte nem érinti számotevően a kerekítési hibákat, bár kétségtelen hogy a tuncate vs kerekítésnél statisztikailag a truncate egy 2-esnyi deficitben van, de ez jóval 1 tizedesnyi alatt van. Tehát igazából a két módszer összevetésénél csak az a valós hogy nem egyformán produkálja a hibákat. DE hibás a cikknek azon ki nem mondott, konklúziója hogy ha minden hardver a matek szerint kerekítene, akkor az eredmények pontosan ugyanazt adnák, összevethetők lennének.
Én eleve a hardveres kerekítést nem teljesen értem hogy miért van rá szükség ha ennyivel bonyolítja az áramköri elemeket ill tranzisztor számot?
Mert ugyebár az ábrázolásból adódó részösszeg hibákon nem segíthetsz, a kerekítés az bármikor használva csak rontja a kapott értéked pontosságát, részösszegeket kerekíteni pl tök érelmetlen dolog, csak ott van értelme a kerekítésnek ahol emberek számára értelmezhető számmá szeretnénk alakítani az EREDMÉNYT, azaz kerekíteni csak a végeredménynél van értelme. Mind program futás, mind programozási értelemben a részösszegek kerekítése hülyeség (pontatlanabb, lassabb). Mert ha mondjuk van 23 bitnyi értékes információm akkor ha truncatelek, ha kerekítek csak 23 bitnél kisebb hasznos információ lesz ennek az eredménye, azaz értelmetlen. Ahhoz meg hogy legyen egy emberek számára készült végeredmény jellegű outputnál egy kerekített érték azt szoftveresen is simán lehetne kezelni, ugyanis grafikai problémában eleve nincs ilyen érték, GPGPU tipusú problémában ahol KURVASOK számítás van, ott meg pont jellemzően a végeredmény jellegű kerekített értékből van iszonyú kevés.
Én teljesen megértenék egy olyan szavbányosítási verziót ahol a 32 bites pontosságnál a standard a truncate lenne (mobil/grafikára optimalizált alacsony tranzisztor szám, alacsony fogyasztás optimalizált standard), és a dupla pontosságú 64 bitet is tudó hardvernél lehetne csak követelmény a helyes kerekítés (GPGPU matematika, modellezésre használt hardver, ahol elsődleges kicsikarni minden lehetséges pontosságot).
Új hozzászólás Aktív témák
Hirdetés
- Milyen légkondit a lakásba?
- Audi, Cupra, Seat, Skoda, Volkswagen topik
- Telekom mobilszolgáltatások
- Goddess of Victory: Nikke
- ThinkPad (NEM IdeaPad)
- LG LCD és LED TV-k
- Motorola Edge 60 és Edge 60 Pro - és a vas?
- Nagyon érzékeny lett a játékok archiválására a Nintendo
- Windows 7
- Autóhifi
- További aktív témák...
- Telefon felvásárlás!! Apple Watch Series 6/Apple Watch Series 7/Apple Watch Series 8
- Azonnali készpénzes GAMER / üzleti notebook felvásárlás személyesen / csomagküldéssel korrekt áron
- Eladó szép állapotban levő Apple iPhone 12 Pro Max 128GB / 12 hó jótállás
- Telefon felvásárlás!! iPhone 15/iPhone 15 Plus/iPhone 15 Pro/iPhone 15 Pro Max
- LENOVO ThinkSystem NVIDIA Quadro RTX 6000 24GB PCIe Passive GPU
Állásajánlatok
Cég: Promenade Publishing House Kft.
Város: Budapest
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest