mboost-dp1

Rice University
- Forside
- ⟨
- Forum
- ⟨
- Nyheder
Mon den er præcis nok til at udføre SuperPI eller prime95.
#1 forestil dig, at du skal opmåle et bræt. Det er hurtigere at anslå brættets længde til 1,5 m end 1,55 m. Hvis du alligevel ikke har brug for den ekstra præcision, så sparer du tid og energi på at finde den eksakte længde.
#1 forestil dig, at du skal opmåle et bræt. Det er hurtigere at anslå brættets længde til 1,5 m end 1,55 m. Hvis du alligevel ikke har brug for den ekstra præcision, så sparer du tid og energi på at finde den eksakte længde.
#1
Lad os sige du har 10 millioner billeder af ansigter. Du vil gerne gennemsøge disse billeder og rangere dem efter hvor godt hvert billede matcher et bestemt billede fra dit kamera, så du kan identificere personen på billedet. Vil du helst bruge 7 timer på gennemføre denne rangering 100% nøjagtigt, og få ét billede ud som højestrangerende, eller vil du hellere bruge 1 time på at gøre det nogenlunde nøjagtigt, få 10-20 billeder ud som højestrangerende, og så efterfølgende gennemføre en ganske kort (få minutter) præcisions-rangering af disse 10-20 billeder, og så få det højeste rangerede billede ud? Hvis algoritmerne er i orden er den ene måde 7 gange hurtigere end den anden, men slutresultatet er det samme.
Lad os sige du har 10 millioner billeder af ansigter. Du vil gerne gennemsøge disse billeder og rangere dem efter hvor godt hvert billede matcher et bestemt billede fra dit kamera, så du kan identificere personen på billedet. Vil du helst bruge 7 timer på gennemføre denne rangering 100% nøjagtigt, og få ét billede ud som højestrangerende, eller vil du hellere bruge 1 time på at gøre det nogenlunde nøjagtigt, få 10-20 billeder ud som højestrangerende, og så efterfølgende gennemføre en ganske kort (få minutter) præcisions-rangering af disse 10-20 billeder, og så få det højeste rangerede billede ud? Hvis algoritmerne er i orden er den ene måde 7 gange hurtigere end den anden, men slutresultatet er det samme.
#6
Okay, det lyder smart - men vil det nogensinde komme til at fungere i praksis?!
Det ville jo fx. kræve utroligt meget at konstruere programmer som kan udnytte teknologien effektivt. Tænk på alle de prøvekørsler programmet skal igennem før man kan bruge det til bare simple formål..
Det er måske smart i en central supercomputer, men kan det tidsmessigt ikke bedre betale sig at spare den ellers genvundne tid, ved at undgå at kode programmet?!
og det er desuden meget sjældent man får brug for at rangere 10'000'000 billeder...
Okay, det lyder smart - men vil det nogensinde komme til at fungere i praksis?!
Det ville jo fx. kræve utroligt meget at konstruere programmer som kan udnytte teknologien effektivt. Tænk på alle de prøvekørsler programmet skal igennem før man kan bruge det til bare simple formål..
Det er måske smart i en central supercomputer, men kan det tidsmessigt ikke bedre betale sig at spare den ellers genvundne tid, ved at undgå at kode programmet?!
og det er desuden meget sjældent man får brug for at rangere 10'000'000 billeder...
#1
Jeg formoder at noget af det man kan gøre er at sætte spændingen i CPU ned og så bare ignorer de fejl som der kommer pga. elektrisk støj... På den måde vil det være muligt at bruge mindre energi og sætte flere ting sammen i en processor der tilmed vil kunne kører hurtigere fordi den ikke bliver nær så varm... (Da den ikke bruger så meget energi).
Jeg formoder at noget af det man kan gøre er at sætte spændingen i CPU ned og så bare ignorer de fejl som der kommer pga. elektrisk støj... På den måde vil det være muligt at bruge mindre energi og sætte flere ting sammen i en processor der tilmed vil kunne kører hurtigere fordi den ikke bliver nær så varm... (Da den ikke bruger så meget energi).
Nu er det jo ikke ligefrem NASA eller CERN der skal bruge den CPU og hvis de gjorde ville det få den mission til Mars for nogen år siden til at være vand i forhold til de forkerte udregninger de ville få af den..
#6 er inde på noget af det rigtige, ang. anvendelse.
F.eks Fingeraftryk det tager meget lang tid at lave et fuld scan på f.eks. den amerikanske fingeraftryks database hos FBI.. Med denne processor vil man kunne få 1000 hits som igen bliver kørt igennem en reel processor, som indsnævre det til 50 hits, som til sidst bliver analyseret af eksperter..
Det vil ikke være specielt besværligt i forhold til det nuværende system at omprogrammere til de nye chips.. du bruger jo samme kode, der er bare chance for beregningsfejl fra chippens side...
F.eks Fingeraftryk det tager meget lang tid at lave et fuld scan på f.eks. den amerikanske fingeraftryks database hos FBI.. Med denne processor vil man kunne få 1000 hits som igen bliver kørt igennem en reel processor, som indsnævre det til 50 hits, som til sidst bliver analyseret af eksperter..
Det vil ikke være specielt besværligt i forhold til det nuværende system at omprogrammere til de nye chips.. du bruger jo samme kode, der er bare chance for beregningsfejl fra chippens side...
0101010101010101010110101101012error0101
01010101010101011100015error101010100.....
? : p.
Men spændende nyhed. Måske kan det blive bedre når de har forsket noget mere på det. Jeg forestiller mig noget med en controller eller anden cpu ved siden af der opsnapper de enkelte fejl, retter dem, og sender videre. Ved ikke om det bare er fantasi.
01010101010101011100015error101010100.....
? : p.
Men spændende nyhed. Måske kan det blive bedre når de har forsket noget mere på det. Jeg forestiller mig noget med en controller eller anden cpu ved siden af der opsnapper de enkelte fejl, retter dem, og sender videre. Ved ikke om det bare er fantasi.
Mirk (14) skrev:Jeg forestiller mig noget med en controller eller anden cpu ved siden af der opsnapper de enkelte fejl, retter dem, og sender videre. Ved ikke om det bare er fantasi.
Hvis du skal ha' en controller eller anden cpu ved siden af, der skal "opsnappe" fejl - skal den jo kende det rigtige resultat af alle beregninger... => Den skal beregne ALT => Den bliver flaskehalsen, og vi har samme hastighed som uden den nye type cpu?!
Det ville da være en fin CPU at kører Vista på.
Der er vel en chance for, at den rent faktisk fejler på samme tid som Vista, så systemet derved faktisk ikke fejler? Fejl synkronisering (der var en fremtid for MS)
I det mindste ville man da komme 7 gange så hurtigt videre til næste fejl ! Man sidder jo alligevel og venter på den.
Der er vel en chance for, at den rent faktisk fejler på samme tid som Vista, så systemet derved faktisk ikke fejler? Fejl synkronisering (der var en fremtid for MS)
I det mindste ville man da komme 7 gange så hurtigt videre til næste fejl ! Man sidder jo alligevel og venter på den.
Jeg kan forestille mig at man kunne lave hurtigere encoders/decoders til lossy komprimering. F.eks. HD decoders i fjernsyn eller JPEG encoders i digital kameraer.
Da man i lossy komprimering alligevel kvantisere beregningerne så en fejl på et par % i resultat værdien ikke vil få nogen betydning.
Da man i lossy komprimering alligevel kvantisere beregningerne så en fejl på et par % i resultat værdien ikke vil få nogen betydning.
#18 det kan man sagtens klarer uden denne cpu/gpu.
Det som der er tale om her er f.eks. når man skal beregne polynomier til grafik i spil (det kan også være meget andet, men dette er et eks. som mange let kan forholde sig til) så får gpu'erne nogle opgaver som er meget sværere end bare at lægge 2 og 2 sammen. Man kan vel sige at de opgaver som bliver stillet er mere "abstrakte", altså beregningen indeholder et antal operationer (det kan være rigtig mange). Tit kan man bruge mere simple metoder der så bare ikke resultere i den samme præcision som de tungere.
En anden ting. Der er faktisk rigtig meget ECC i en processor som #11 er inde på. Hvis I kan huske det så var her en nyhed for noget tid siden hvor en admin i et datacenter kunne måle udslag hvis han råbet af hdd'erne. Det er faktisk lidt af det samme. Hvis en hdd fungerede som denne processer ville han ikke kunne måle udslag da hdd'en ville være ligeglad med at den ikke fik fat i de helt rigtige data. Den ville bare tage det den nu fik fat i, (vigtigt->) og det ville ikke være helt skidt... til nogle opgaver.
Det som der er tale om her er f.eks. når man skal beregne polynomier til grafik i spil (det kan også være meget andet, men dette er et eks. som mange let kan forholde sig til) så får gpu'erne nogle opgaver som er meget sværere end bare at lægge 2 og 2 sammen. Man kan vel sige at de opgaver som bliver stillet er mere "abstrakte", altså beregningen indeholder et antal operationer (det kan være rigtig mange). Tit kan man bruge mere simple metoder der så bare ikke resultere i den samme præcision som de tungere.
En anden ting. Der er faktisk rigtig meget ECC i en processor som #11 er inde på. Hvis I kan huske det så var her en nyhed for noget tid siden hvor en admin i et datacenter kunne måle udslag hvis han råbet af hdd'erne. Det er faktisk lidt af det samme. Hvis en hdd fungerede som denne processer ville han ikke kunne måle udslag da hdd'en ville være ligeglad med at den ikke fik fat i de helt rigtige data. Den ville bare tage det den nu fik fat i, (vigtigt->) og det ville ikke være helt skidt... til nogle opgaver.
Folk ser ud til at være meget utrygge ved hvad "unøjagtighed" gør ved beregninger.
Mange beregninger er i forvejen baseret på tilsnigelser, estimater, gætværk, trend-beregninger osv.
Hvis du har data som alligevel kan være op til fx. 4% forkert, og resultatet må være op til 10% forkert, så vil fx. 1% unøjagtighed i beregningen være ligegyldigt.
Hvor mange decimaler har i lært i skolen at bruge i pi? Mange har lært at 2 er fint. Jeg bruger gerne 7, men er klar over at det er meget unøjagtigt. Men når jeg har beregnet at jeg skal bruge et hul på 7,37565244 mm, og jeg kun har 7 eller 8mm bor, så er den præsision ret ligegyldig.
Fingeraftryk er en grundlæggende analog og meget unøjagtig ting. At presse matematik ned over det er ikke praktisk, blot en nødvendighed for at få computeren til at klare de store datamængder.
Ansigtsgenkendelse - same thing.
Der er rigtigt mange steder, hvor en maskines præcision ikke er nødvendig. De fleste af de fine decimaler der bliver beregnet, bliver alligevel afrundet væk på en eller anden måde i den sidste ende.
Mange beregninger er i forvejen baseret på tilsnigelser, estimater, gætværk, trend-beregninger osv.
Hvis du har data som alligevel kan være op til fx. 4% forkert, og resultatet må være op til 10% forkert, så vil fx. 1% unøjagtighed i beregningen være ligegyldigt.
Hvor mange decimaler har i lært i skolen at bruge i pi? Mange har lært at 2 er fint. Jeg bruger gerne 7, men er klar over at det er meget unøjagtigt. Men når jeg har beregnet at jeg skal bruge et hul på 7,37565244 mm, og jeg kun har 7 eller 8mm bor, så er den præsision ret ligegyldig.
Fingeraftryk er en grundlæggende analog og meget unøjagtig ting. At presse matematik ned over det er ikke praktisk, blot en nødvendighed for at få computeren til at klare de store datamængder.
Ansigtsgenkendelse - same thing.
Der er rigtigt mange steder, hvor en maskines præcision ikke er nødvendig. De fleste af de fine decimaler der bliver beregnet, bliver alligevel afrundet væk på en eller anden måde i den sidste ende.
"PCMOS is fundamentally different," Palem said. "We lower the voltage dramatically and deal with the resulting computational errors by embracing the errors and uncertainties through probabilistic logic."
Udover det skrevne så bliver der i det meget korte video interview nævnt applikationer, som høreapparater, mobiltelefoner osv. Altså transportable produkter, hvor småfejl ikke er altafgørende.
Fordelene der bliver nævnt er standbytid for en mobiltelefon på f.eks 20-30 dage, i stedet for 2-3 dage.
surt at man ikke kan lade den samme processor lave den samme beregning flere gange og så tage gennemsnittet. (da den alligevel vil være ca 10 gange hurtigere at lave)
http://en.wikipedia.org/wiki/Infinite_monkey_theor...
http://en.wikipedia.org/wiki/Infinite_monkey_theor...
#26 og så er Men-Oriented-Programming kerner, der fokuserer på, at cpu-blæseren giver et godt blowjob, og kun har resultaterne 0110001001100001011010100110010101110010, 011100110110010101111000, 011011010110000101100100, 0111010001110110 eller en kombination af disse?
Dette er jo præcis det princip som ruteplanlægning er udført på.
Det ville tage overdrevet lang tid, hvis du skulle have google maps til at beregne den mest optimale rute fra punkt A til punkt B, derfor er algoritmen skrevet efter den tilnærmelsesvis hurtigste rute, for netop at spare på tiden.
Kunne godt forstille mig at normale computere vil kunne bruge sådan en processor, da meget nøjagtige beregninger sjælendt er nødvendige for hverdagsfolk, så ser det som en meget acceptabel løsning, for at nøjes med 1/30-del strømforbrug og 1/7-del tid.
Det ville tage overdrevet lang tid, hvis du skulle have google maps til at beregne den mest optimale rute fra punkt A til punkt B, derfor er algoritmen skrevet efter den tilnærmelsesvis hurtigste rute, for netop at spare på tiden.
Kunne godt forstille mig at normale computere vil kunne bruge sådan en processor, da meget nøjagtige beregninger sjælendt er nødvendige for hverdagsfolk, så ser det som en meget acceptabel løsning, for at nøjes med 1/30-del strømforbrug og 1/7-del tid.
#11 Man skal huske på, at hvis spændingen for en normal CPU bare sænkes, bliver fejlen ikke nødvendigvis særlig lille.
Jeg må indrømme, at jeg ikke er helt inde i hvordan f.eks. additioner udføres i nutidens CPU'er, men er ganske simpel metode vil være at begynde at addere bit for bit fra højre mod venstre (fra mindst- til mest betydende bit). Derfor, hvis spændingen bliver for lav, vil det tage længere tid før hvert bit skifter, og i sidste ende vil det gå mest ud over de mest betydende bit. Altså, vil du ikke kunne bruge resultatet til noget som helst, da du ikke vil vide, om resultatet burde være 2.35675 eller 5.35675. Så der er lidt mere i det end blot at sænke spændingen...
Jeg må indrømme, at jeg ikke er helt inde i hvordan f.eks. additioner udføres i nutidens CPU'er, men er ganske simpel metode vil være at begynde at addere bit for bit fra højre mod venstre (fra mindst- til mest betydende bit). Derfor, hvis spændingen bliver for lav, vil det tage længere tid før hvert bit skifter, og i sidste ende vil det gå mest ud over de mest betydende bit. Altså, vil du ikke kunne bruge resultatet til noget som helst, da du ikke vil vide, om resultatet burde være 2.35675 eller 5.35675. Så der er lidt mere i det end blot at sænke spændingen...
#25 Det er ikke helt korrekt, at "...hvor småfejl ikke er altafgørende."
Jo altså ud fra et perspektiv om, at "det jo bare bliver til lidt akustisk støj, og nok drukner i mikronstøjen alligevel", så er det jo meget fint, men vi taler her ikke om lydstøj, men støj i selve beregningerne. Jeg kan slet ikke forestille mig alle de mulige hensyn, man skal tage, når man designer eksempelvist et digitalt filter, der skal køre som en eller anden state machine i noget hardware. Hvis man aldrig kan stole på resultatet af bereningen, så bliver det da uhyre kompliceret at skulle garantere, at filteret er stabilt. Normalt er det jo nok at garantere at filteret er stabilt (eller stabilt inden for nogle rammer) som funktion af inputtet over tid. Men hvis også de interne knudepunkter kan skifte værdi ret sporadisk, så skal alle interne værdier faktisk betragtes som en slags input, hvorved analysen bliver overdreven kompliceret.
Jeg vil gerne se det, før jeg tror det. Ofte kommer et eller andet universitet ud med et eller andet for at skabe en masse opmærksomhed og 'revolutionerende' produkter, og så kommer der aldrig videre end et støvet PhD-projekt et sted. Så jeg tager det her med ophøjet ro og ser, hvad der sker.
Glem nu ikke, at hvis man ikke får programmørerne til at klappe i hænderne over at "vi nu ikke længere kan stole 100% på de beregninger, vi foretager", så dør ideen ligesom der jo.
Jo altså ud fra et perspektiv om, at "det jo bare bliver til lidt akustisk støj, og nok drukner i mikronstøjen alligevel", så er det jo meget fint, men vi taler her ikke om lydstøj, men støj i selve beregningerne. Jeg kan slet ikke forestille mig alle de mulige hensyn, man skal tage, når man designer eksempelvist et digitalt filter, der skal køre som en eller anden state machine i noget hardware. Hvis man aldrig kan stole på resultatet af bereningen, så bliver det da uhyre kompliceret at skulle garantere, at filteret er stabilt. Normalt er det jo nok at garantere at filteret er stabilt (eller stabilt inden for nogle rammer) som funktion af inputtet over tid. Men hvis også de interne knudepunkter kan skifte værdi ret sporadisk, så skal alle interne værdier faktisk betragtes som en slags input, hvorved analysen bliver overdreven kompliceret.
Jeg vil gerne se det, før jeg tror det. Ofte kommer et eller andet universitet ud med et eller andet for at skabe en masse opmærksomhed og 'revolutionerende' produkter, og så kommer der aldrig videre end et støvet PhD-projekt et sted. Så jeg tager det her med ophøjet ro og ser, hvad der sker.
Glem nu ikke, at hvis man ikke får programmørerne til at klappe i hænderne over at "vi nu ikke længere kan stole 100% på de beregninger, vi foretager", så dør ideen ligesom der jo.
#31 Det er helt rigtigt, som du skriver, at jo mere man sænker spændingen, jo lavere er drivstyrken af transistorerne, og dermed stiger den tid, det tager at lade interne knudepunkter om fra 1 til 0 eller omvendt. Og da Additioner, som du skriver, foretages fra mindstbetydende frem mod mestbetydende (afbrudt af carry lookaheads), og man skruer spændingen for langt ned, så vil man netop kunne miste de mestbetydende bit, hvilket giver maksimal fejl på beregningen.
En del af den forskning, de har gang i, er utvivlsomt forskning i, hvordan man laver beregninger, hvor disse fejltilstande giver den mindste relative fejl. Hermed kan man tolerere x bits fejl, da man ved at det i værste fald kun kan blive til y% fejl på resultatet.
En del af den forskning, de har gang i, er utvivlsomt forskning i, hvordan man laver beregninger, hvor disse fejltilstande giver den mindste relative fejl. Hermed kan man tolerere x bits fejl, da man ved at det i værste fald kun kan blive til y% fejl på resultatet.
Deleet (30) skrev:Måske kunne man bede den om at regne det samme ud tre gange og derefter vælge en gennemsnitsværdi af de tre resultater. Dette vil stadig spare tid.
For mig lyder det som et stort spild, at gøre det samme tre gange. Der er mange andre meget smartere måder at begrænse problemet.
Deleet (30) skrev:Hvis det er et ja/nej resultat. Så kunne man måske bede den om at acceptere flertallet.
Der findes ikke små unøjagtigheder hvad "ja/nej". ;-)
dr. jones (28) skrev:#26 og så er Men-Oriented-Programming kerner, der fokuserer på, at cpu-blæseren giver et godt blowjob, og kun har resultaterne 0110001001100001011010100110010101110010, 011100110110010101111000, 011011010110000101100100, 0111010001110110 eller en kombination af disse?
Ja, det er en god kombination, ligesom: 11011000011011000010110000100000011001100110100101110011011100110110010100100000
01101111011001110010000001101000011011110111001001101110011011010111010101110011
0110100101101011
Forresten så er et enormt potentiale i tilnærmede beregninger til at løse problemer som alligevel ikke kan løses præcist. Sammanligning af data er éen ting, andre er traveling salesman problem, internet søgninger (også en form for sammenligning, clustering af data (opdeling efter hvad der ligner hinanden), vejret, osv.
Tag det roligt. Det er jo kun et spørgsmål om hvornår fejlen kommer, husk at ALLE CPU'er regner forkert.
Hvis CPUen kan lave 7 gange så mange beregninger så kunne jeg godt forestille mig at den kunne bruges til utroligt mange ting, selvom den er knapt så præcis. En almindeligt CPU er heller ikke præcis.. her tænker jeg f.ek.s på den klassiske "double"-datatype.
Jeg forestiller mig at denne kunne forsøge at verificere sine egne resultater -- men jeg ser en hage ved det. Hvis den metode hvorved der verificeres ligeledes er upræcis, så er det lidt svært... men ja.. til grafik ville den sikkert være fin nok..
Jeg forestiller mig at denne kunne forsøge at verificere sine egne resultater -- men jeg ser en hage ved det. Hvis den metode hvorved der verificeres ligeledes er upræcis, så er det lidt svært... men ja.. til grafik ville den sikkert være fin nok..
#39 Jeg tror, at du forveksler begreberne præcision og determinisme. Det er rigtigt at normale CPUer har en endelig præcision, hvilket gør, at man altid må runde af et eller andet sted, eller håndtere et overløb. Dog er beregningerne fuld deterministiske, således at man kan forudse og håndtere de fejl, der måtte opstå.
PCMOS er en metode til at lave laveffektchips, hvor det ikke er deterministisk, hvad resultatet af en beregning bliver.
PCMOS er en metode til at lave laveffektchips, hvor det ikke er deterministisk, hvad resultatet af en beregning bliver.
Gief til computerspil. Der behøves ikke noget som helst der minder om præcision der. Der foregår ingen fysiske simulationer af nogen art, blot en masse simplifikationer baseret på naturlige fænomener, hvor nøjagtighed er ligegyldig :)
Man skal bare passe mere på afrundingfejlene, som hober sig op efterhånden, men siden den regner hurtigere, kan man smække lidt flere formler ind.
Man skal bare passe mere på afrundingfejlene, som hober sig op efterhånden, men siden den regner hurtigere, kan man smække lidt flere formler ind.
Opret dig som bruger i dag
Det er gratis, og du binder dig ikke til noget.
Når du er oprettet som bruger, får du adgang til en lang række af sidens andre muligheder, såsom at udforme siden efter eget ønske og deltage i diskussionerne.