mboost-dp1

Rice University

Ny CPU-teknologi kan blive en revolution

- Via DailyTech - , redigeret af Net_Srak

Når de fleste hører ordet processor eller CPU, så tænker de sikkert på en computers hjerne, der med stor præcision og hastighed kan udføre matematiske beregninger; men hvad nu hvis udregningerne ikke behøvedes at være super nøjagtige?

Det princip har professor Krishna Palem fra Rice Universitet forsket i de seneste år, og nu er den første chip lavet, der arbejder på denne metode. Resultatet er en processor, der kan foretage beregninger, som næsten er nøjagtige, men til gengæld gøre det op til syv gange hurtigere end en tilsvarende almindelige CPU, og med et energiforbrug på en 1/30-del.

Forsøgene med den nye chip er så lovende, at de på flere punkter overgår de simulationer, Palem lavede forud for produktionen af chippen.

Krishna Palem, Professor skrev:
The results were far greater than we expected. At first, I almost couldn’t believe them. I spent several sleepless nights verifying the results.

Den nye teknologi vil ikke egne sig til at afvikle alle slags programmer, men f.eks. til billedbehandling mener Palem, at den vil kunne gøre gavn.

Der kan findes mere information om teknologien på Rice Universitets hjemmeside, samt på dette link med videomateriale.





Gå til bund
Gravatar #1 - mathiask
9. feb. 2009 16:00
Jeg fatter hat af det her. Umiddelbart kan jeg ikke se fordelen af dårligere beregninger. Er der én der kan forklare på dansk hvad det går ud på?
Gravatar #2 - caffery
9. feb. 2009 16:04
Det betyder at lommeregneren på computeren er 7 gange hurtigere og bruger 1/30 strøm på at beregne 2+2, resultatet giver bare 5.
Gravatar #3 - dr. jones
9. feb. 2009 16:05
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.
Gravatar #4 - mathiask
9. feb. 2009 16:06
Jeg har lige læst kilden og begynder at forstå hvad man kan bruge det til. Det kan bruges til bedre GPU'er og streaming hvor man så måske mister et par pixels som kan undværes.
Gravatar #5 - mhartvig
9. feb. 2009 16:12
Jeg læser også nyheden mellem linierne:

Supersmå bokse til full hd video afspilning under tv-et. (en slags omvendt NAS - der henter film osv fra nas bokse:P)

Gravatar #6 - Anders Fedеr
9. feb. 2009 16:16
#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.
Gravatar #7 - cmkobel
9. feb. 2009 16:30
#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...
Gravatar #8 - dr. jones
9. feb. 2009 16:35
#7 prøv at kontakte Krishna Palem om et samarbejde. Du lader til at vide utrolig meget om hans opfindelse/opdagelse.
Gravatar #9 - cmkobel
9. feb. 2009 16:37
#8
Lad barnet..
Gravatar #10 - Norrah
9. feb. 2009 16:51
Til computerspil er det jo sikkert fint.
Gravatar #11 - jopsen
9. feb. 2009 16:55
#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).
Gravatar #12 - Hitman Zeus
9. feb. 2009 16:58
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..
Gravatar #13 - Tore
9. feb. 2009 17:05
#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...
Gravatar #14 - Mirk
9. feb. 2009 17:18
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.

Gravatar #15 - zin
9. feb. 2009 17:19
Krishna?! Det her er et TEGN!

Måske er ordet "revolution" bare en anelse overgearet...? ;)
Gravatar #16 - Jace
9. feb. 2009 17:19
#6 og #13:
Jeg kan sagtens følge jer. Men hvad nu hvis usikkerheden i chippen gør at lige præcis det rigtige fingeraftryk ikke går videre til næste runde?
Gravatar #17 - cazper33
9. feb. 2009 17:25
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?!
Gravatar #18 - nezz_dk
9. feb. 2009 17:28
Fordelen er vel bare at for rigtigt mange beregninger har man ikke brug for højere nøjagtighed end 4-5 pladser efter kommaet, og det er her den kan optimere beregningen da der jo ellers normalt spildes krafter på at beregne de sidste 10-20 cifre
Gravatar #19 - Vaya Con Dios
9. feb. 2009 17:32
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.
Gravatar #20 - baxx
9. feb. 2009 17:46
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.
Gravatar #21 - MLA
9. feb. 2009 17:50
#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.
Gravatar #22 - myplacedk
9. feb. 2009 18:15
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.
Gravatar #23 - LER
9. feb. 2009 19:24
Jeg forstår ikke nyskabelsen.

Den teknologi har jeg brugt til mine matematik-opgaver i årevis...
Gravatar #24 - mrF0x
9. feb. 2009 19:41
LER (23) skrev:
Jeg forstår ikke nyskabelsen.

Den teknologi har jeg brugt til mine matematik-opgaver i årevis...


Præcis :)
Gravatar #25 - gentox
9. feb. 2009 20:06
"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.
Gravatar #26 - cwap
9. feb. 2009 20:39
Women-Oriented Programming bliver det næste store! 8 kerner der snakker i munden på hinanden med lav præcision :)
Gravatar #27 - IRGhost
9. feb. 2009 20:53
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...
Gravatar #28 - dr. jones
9. feb. 2009 20:57
#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?
Gravatar #29 - BetaLyte
9. feb. 2009 21:42
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.
Gravatar #30 - Deleet
9. feb. 2009 22:20
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.

Hvis det er et ja/nej resultat. Så kunne man måske bede den om at acceptere flertallet.
Gravatar #31 - Møller
9. feb. 2009 22:35
#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...
Gravatar #32 - gentox
9. feb. 2009 22:42
#31
Hele ideen er at cpu'en får rigeligt med strøm, men ikke nok til at kompensere for elektronisk støj som giver fejl.

Normalt løser man problemet, ved at øge spændingen for at overdøve støjen, dette virker også, men giver et højere forbrug, og varmeudvikling.
Gravatar #33 - Izaaq
10. feb. 2009 00:06
#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.
Gravatar #34 - Izaaq
10. feb. 2009 00:24
#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.
Gravatar #35 - myplacedk
10. feb. 2009 06:34
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". ;-)
Gravatar #36 - PaulPeterPorges
10. feb. 2009 07:33
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

Gravatar #37 - PaulPeterPorges
10. feb. 2009 07:41
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.
Gravatar #38 - Therkules
10. feb. 2009 08:02
Tag det roligt. Det er jo kun et spørgsmål om hvornår fejlen kommer, husk at ALLE CPU'er regner forkert.
Gravatar #39 - jAST
10. feb. 2009 09:53
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..
Gravatar #40 - Izaaq
10. feb. 2009 10:24
#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.
Gravatar #41 - ipwn
10. feb. 2009 10:30
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.
Gå til top

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.

Opret Bruger Login