Hoofdcategorieën
Device Settings

Zuinige chips mogelijk door slordig te rekenen

Door Hielko van der Hoorn, maandag 10 maart 2008 20:17
Submitter: storeman, views: 25.851

Onderzoekers hebben een nieuw type chip ontwikkeld die rekennauwkeurigheid inlevert voor een aanzienlijk lager energieverbruik. De chip is vooral geschikt voor taken waarbij een kleine hoeveelheid fouten geen probleem vormt.

Normaal werken chips op een relatief hoog voltage om te voorkomen dat ruis van een nul een één maakt, of omgekeerd. Er is echter exponentieel meer energie nodig voor het verhogen van de correctheid van de uitkomsten van de berekeningen, waardoor het in bepaalde gevallen aantrekkelijk is om een chip te maken die de meeste antwoorden niet exact berekent.

Krishna PalemVolgens de onderzoekers, onder leiding van Krishna Palem, zijn er veel applicaties denkbaar waarbij het geen probleem is dat de uitkomsten niet honderd procent kloppen. Bij het decoderen van bijvoorbeeld audio of video zorgen kleine rekenfouten niet direct voor zichtbare of hoorbare fouten. Ook bij het genereren van 'random' getallen is een maximale precisie niet noodzakelijk.

De onderzoekers zijn in staat om te bepalen wat de kans is dat een circuit het juiste antwoord oplevert. Dit maakt het mogelijk om gericht chips te ontwerpen met een bepaald energieverbruik en een bepaalde precisie. Zo kan er bijvoorbeeld voor gekozen worden om alleen de minst significante bits, zoals de 3 in het getal 21.693 met een lagere precisie uit te rekenen.

Krishna Palem gelooft dat de techniek, pcmos genaamd, binnen drie à vier jaar zijn weg kan vinden richting draagbare elektronica zoals mobiele telefoons. De onderzoekers hebben al met succes een chip ontworpen die streaming video kan decoderen en werken nu aan een cryptografieprocessor en een grafische chip.

Volgende 21:31 Europa dreigt VS met WTO-zaak vanwege online gokbeleid
Vorige 19:54 TNO gaat beveiliging ov-chip opnieuw onderzoeken
Advertentie

Reacties

«  1  2  3  4  »

Als ze dat zouden doen en op de markt brengen, dan wordt je toch echt heel erg verdrietig? Het is nou juist de taak van een processor dat hij alles uitrekend. Waarom zou hij het dan opeens fout mogen zijn?

Ik heb soms het idee dat deze generatie niets meer geeft om kwaliteit.

Wat maakt het nou uit voor toepassingen waar helemaal niet zo'n nauwkeurigheid nodig is? Het is niet zo dat hij het heeft over computerprocessoren ofzo.

En noem nou eens een typisch voorbeeld van een toepassing waarbij die nauwkeurigheid niet nodig is?

MP3 spelers gebruiken tegenwoordig vaak 1 processor voor het "besturingssysteem" en het decoderen etc. In dat besturingssysteem wil je geen fouten, dat ie vastloopt doordat er bitjes omvallen, of dat ie de verkeerde muziek afspeelt.

Voor de meeste microcontrollers (die toch al zuinig zijn), gaat het ook niet, gezien je niet wilt hebben dat ze hun taken verkeerd uit gaan vallen.

Videodecodering en beeldbewerking wil je juist correct hebben omdat je fouten echt wel kan zien, en als het verkeerde bitje omvalt kan het een wereld van verschil zijn.


Ik zie hier cht het nut niet van in. Ze zeggen wel mooi dat ze dit op de minst significante bits toepassen, maar er is nooit te garanderen dat die minst significante bits niet belangrijk zijn bij alle berekeningen.

[Reactie gewijzigd door knirfie244 op dinsdag 11 maart 2008 09:13]


Voor mij bij sommige games denk ik. Als ik al schietend achter een poppetje aan ren, ga ik echt niet stil staan omdat het water, de grasspriet, de kogel, de straat, of whatever nu toch net even een groene ipv een rode pixel bevat... (maar goed een 'game-tweaker' zal hier wsl wel van wakker liggen)

Zoals in het artikel ook staat, in het decoderen van geluid en beeld mag voor mij best wel eens een afwijking zitten. Een tweede processor kan de besturingssysteem-processor ontlasten van zijn taken om onnauwkeurige berekeningen te doen.

Een mp3 is een codering die van zijn eigen al bepaalde zaken weglaat. Wat maakt het dan uit dat er nog een foutje inzit dat niet hoorbaar is, het is ook niet zo dat als je Tiesto draait je Frans Bauer te horen krijgt. Of wat maakt het uit dat als je een video afspeelt, dat het hoofdpersonage in haar gezicht een pixel heeft die 164 roodwaarde heeft ipv 165. Niet alsof je oppeens Matthew Perry ipv Angelina Jolie te zien krijgt.

Het gaat hier om fouten die voor het menselijk oog/oor niet op te merken zijn.

Zie het als een 2de core (of in jaren 90 termen een co-processor ;) ). Het OS gebruikt de exacte processor maar voor het uitvoeren van de decodering van een mp3 of video de co-processor. Dan kan zelfs de processor voor het OS lager geklokt worden als je alleen maar muziek aan het luisteren bent....

Lijkt me dus ideaal, straks maar 1x per maand de ipod opladen !

Vermits deze processoren mijn vakgebied zijn neem ik graag de handschoen op...

De meeste high end mp3 spelers gebruiken een aparte processor om de decoding te doen. Deze zijn ontworpen om ook nog vb aac encoding te kunnen doen (owv herbruikbaarheid en hoge volumes). Deze dsp achtige processoren moeten minder controletaken uitvoeren en hebben de potentie om op lagere voltages te kunnen draaien. Vergis je niet, dit is HEEL wat waard, zelfs 0.1mW/Mhz is significant te noemen in chips voor mobiele toepassingen.

Enkele restricties:
*Niet de hele dsp zal op lagere voltages draaien. programma geheugen,decoder en controller typisch NIET. Maar een mac of alu WEL.
*de meeste applicaties zijn hier niet voor geschikt. Je zal ze moeten grondig herstructureren zodat je stukken van je programma met lage precisie kan uitrekenen. Want je wilt natuurlijk niet dat de msb bit van het volume fout staat en je oorvlies eruit blaast...

fouten tolerantie hedendaage:
*vooral in GSMs worden veel benaderings algoritmes gebruikt welke fouten tolereren. (trade-off v fouten tov berekeningstijd)
*veel floating point berekeningen zijn (mwv lage precisie) ook maar benaderingen.(trade-off v fouten tov berekeningstijd)
*de meeste physical libraries firma's onderzoeken dit (TI, intel, artisan,...) niet alleen voor dsp's maar zelfs voor controle processoren, in combinatie met error correction, detection & error recovery. We zijn er hier al jaren mee bezig...

In je mobieltje, in de TV, bijna OVERAL gebruikt men een lagere precisie zonder problemen.Of het kleine kleurverschil op de foto komt van lossy compression, lens onzuiverheden, ccd fouten, kosmische straling of van lagere voltages, maakt het iets uit?

Toekomstig gebruik:
Het nut ervan is beperkt maar zeer zeker aanwezig. We komen stil aan mobieltjes met 100Giga operations per second capaciteiten, nodig voor 4G, video decoding,image processing ... Vooral in dat segment van signaalverwerking is dit nuttig.
Vermits elk algoritme herschreven wordt als het op een andere processor moet draaien, kan de programmeur met zekerheid weten wanneer welke bits minder significant te noemen zijn.

Netwerkchips bijvoorbeeld. Netwerken (vooral wireless) hebben per definitie al last van loss, dus of je dan af en toe een packet verkeerd decodeert maakt ook niet uit. Gooi het weg en er volgt wel een hertransmissie.

Dat zou dan in the long run waarschijnlijk toch meer energie kosten.

Op netwerkchips juist niet, lijkt me. Dat is een beetje je eigen ruiten ingooien aangezien er op de meeste netwerkchips (wireless of niet) allerlei checks zitten die bij 1 verkeerd bitje al over de fout gaan.
Daarnaast zit het grote energie verbruik bij wireless devices bij het verzenden van dingen (niet de berekeningen daarvoor, maar het daadwerkelijk versturen van radiogolfjes), energiewinst bij het decoden van berichten zal je waarschijnlijk niet eens merken.

Bij online gaming kun je ook prima spelen met een beperkt packetloss, evenals online streams bekijken. Het is niet kritisch voor de uitkomst omdat de uitkomst niet opvalt in het grotere geheel.

Goh ... laten we even de WSN's in beschouwing nemen, een toepassing waar energie zowat de belangrijkste factor is.
Of de temperatuur nu wordt doorgestuurd als 28,7 °C of 28,3°C ... het maakt niet zoveel uit in de meeste toepassingen, want standaard worden er tien metingen gedaan, daarvan het gemiddelde genomen en dan wordt dat gemiddelde doorgestuurd.
Bij WSN's wordt trouwens al een gelijkaardige oplossing gebruikt.

Bij video en audio op draagbare mediaspelers maakt het ook niet veel uit. Je verliest door het comprimeren sowieso al een stuk van de originele kwaliteit, maar daar geeft de eindgebruiker ook niet om, omdat een kleurwaarde RGB van (152, 63, 133) nu ook weer niet ongelooflijk veel verschilt van (145, 61, 125). Teken het maar eens uit ... op grote vlakken zie je het verschil nauwelijks ... wat geeft het dan als dit gebeurt op een pixel ?

Het is gewoon een techniek die echt wel zijn nut kan hebben, maar langs de andere kant ook niet echt heel nieuw is. Het vernieuwende aan deze technologie is eerder dat de programmeur kan kiezen welke delen in zijn applicatie juist met een lagere precisie moeten worden uitgerekend.

Wat ben je met kwaliteit waar je niets van merkt maar die wel stroom vreet ;)

Als iemand vraagt "Hoe laat is het?" ben je dan alleen maar tevreden als het antwoord tot op de milliseconde nauwkeurig is, of is "5 voor half 9" ook wel goed (om 20:26). Kan jij op de snelheidsmeter van je auto zien of je 119,345 km/u rijdt of dat het misschien 120,861 is? Als iemand de maten van je kamer vraagt, krijgt die dan in vierkante millimeters antwoord? (Met uiteraard de kamertemperatuur op 3 cijfers achter de komma nauwkeurig erbij, want er zal ongetwijfeld variatie in zitten).
Kortom: soms hoeft niet alles met de hoogste precisie gedaan te worden om toch een voldoende correct antwoord te hebben.

heb je liever een horloge dat je om het jaar misschien bij moet stellen, of stel je je tevreden met het bijstellen om de 2 dagen ?

is een ritje van utrecht naar berlijn nou 564 km, of 631 km?

soms wil je wel precies. tja, en soms niet.

En als je precies wilt koop je een duur stroomvretend horloge, en als je een milliseconde kan missen een goedkoper nietstroomvretend.

Dat noemen ze een atoomklok ;) Maar zelfs die klokken zijn niet precies.

[Reactie gewijzigd door KoeNijn op maandag 10 maart 2008 23:39]


.. en met een dual-processor systeem met een beetje slimme energieleverning zou je een (meestal) zuiniger systeem kunnen bouwen dat (meestal) sneller is door de minder belangrijke berekeningen aan de extra proc over te laten.

Een horloge bevat gegevens die over langere tijd uitgerekt wordt, zodat ze na een bepaalde tijd een (voorspelbare) afwijking kunnen hebben. Berekeningen in processoren hebben dat niet, en leven, als ze geluk hebben, een aantal milliseconden. Als er hier en daar een fout in zit heeft dat (meestal) geen merkbare invloed op de langere duur, wat wel het geval is bij een horloge.

ho ho, het ging om 631 of 632 km. de verschillen die jij hier geeft zin véél groter dan in het artikel genoemd worden.

Jij hebt het nog over hele getallen... ik denk meer dat je moet denken aan:
heb je liever een horloge dat je om het jaar misschien bij moet stellen, of stel je je tevreden met het bijstellen om de 2.312534 dagen ?

is een ritje van utrecht naar berlijn nou 564.3567247 km, of 631.25843368 km?
Deze chip berekend denk ik meer/liever hele getallen dan floating point getallen (een floating point getal is bijvoorbeeld 15.256744 (getallen met komma's dus))

:)

jouw processortje snapt ook geen floating point hoor, daar zitten nog wat laagjes emulatie enzo tussen ;)

leuke ontwikkeling, al is hij niet zomaar overal toepasbaar. er zijn genoeg toepassingen die geen hoge precisie vereisen

Ja dr Claw, (je overdrijft wel een beetje met je verschillen ;) ) maar dat veel energie wordt bespaard maar precisie compenseerd kan ook als voordeel hebben dat je minder hoeft af te koelen en dus ook nóg meer energie bespaard. Ik vindt het top!

De taak van de processor is in sommige gevallen niet het 'precies uitrekenen'.
Het gaat om deze gevallen om verspilling van extra kwaliteit, en daarmee verspilling van stroom. Als het voor het eindresultaat niet uitmaakt, dan is het toch een win-win situatie?
Dat heeft helemaal niks met generaties te maken.

Het is wel belangrijk da tje weet of iets nauwkeurig is, zolang je ook over die informatie beschikt, kan de kwaliteit best af en toe lager gemaakt worden. Als je vanaf het ontwerp bij je processor rekening kan houden met het aangeven van nodige nauwkeurigeheid, en automatisch het stroomverbruik laag houdt, heb je idd een enorm leuke win-win situatie.

Je moet je software ook aanpassen: die moet aangeven wat significant is en dus welke uitkomsten worden geaccepteerd.

[Reactie gewijzigd door Fireshade op dinsdag 11 maart 2008 13:53]


Mijn voorganger heeft wel gelijk. Kijk naar dingen als gsm's of pda's. Wat maakt het daar uit als er mss een miniscuul foutje in de data (beeld/geluid) zit? Wil je echt films gaan renderen op een computer, dan zal je die dingen echt niet willen hebben, maar daar zullen ze ook niet voor ingezet worden.

men heeft het daarom ook over decoderen en niet encoderen, dat laatste doe je natuurlijk zo precies mogelijk

Je moet het vooral zien in het kader van decoden van muziek, plaatjes en video. Kleine fouten daarin leiden slechts tot iets meer ruis... Voorbeeld: 832247 * 892126 = 742469187122. 832000 * 892000 = 742144000000. Door bij beide getallen alles onder de duizendtallen te negeren kunnen we veel sneller rekenen, en toch is de afwijking maar 0,04%. Als je nu kijkt waarmee je je mobiel snel leegtrekt dan is dat voornamelijk juist in die multimedia toepassingen. Aangezien het uiteindelijk toch door onze verre-van-perfecte ogen en oren (en op een klein scherm of met oordopjes) moet worden verwerkt maakt dat kleine beetje ruis niet zoveel uit. De veel langere accuduur echter...

[Reactie gewijzigd door Bugu op maandag 10 maart 2008 20:34]


Ik denk dat je dat verkeerd opvat.

Een processor in een PC kan het niet permiteren lijkt mij om fouten te gaan zitten maken. Denk maar aan een Overclockte CPU op een te laag voltage waardoor je chrashes krijgt en dergelijk. Het ergste geval een BSOD / reboot.

Nu gaat het er dus om mobiele apparatuur die niet meteen chrasht als een rekeninstructie met een foute uitkomst er is. Zoals dat voorbeeld in het nieuwsitem over die video-encoding, dat kan toch prima dan als er geen zienswaardige of hoorbare fouten in optreden? Als je daarmee je energieverbruik lager kan zetten maar wel meer kan berekenen dan is dat toch goed?

Je zou deze CPU's ook prima in kunnen zetten voor dedicated werk, ipv een 32/64bits Processor die van alle gemakken feilloos moet kunnen werken.

Ik weet niet of 1 van jullie er ooit bij stil heeft gestaan... Een cpu maakt aan de lopende band fouten. Dit buiten de bugs die CPU's op zijn tijd bevatten. Omdat een PC nu eenmaal binair werkt is het niet mogelijk om alle getallen achter de komma weer te geven en op te tellen. Er zit altijd een bepaalde precisie in de berekening ga je daarboven dan ben je weg, kun je overflow of underflows krijgen en ben je niet meer precies. En dit is helemaal niet erg.. Programmeurs zijn zich daar eigenlijk continue van bewust en bouwen daar hun software op. Een double heeft een precisie van zoveel bits, een int minder en wel zoveel bits.. Het voorstel is hier eigenlijk gewoon om die grenzen te gaan opzoeken en er van gebruik te maken. Iets wat in embedded systems veel vaker gebeurd..

"Oke.. een char is dit geval minder precisie maar het beeldscherm heeft minder pixels.. oke who cares?"

[Reactie gewijzigd door martijnvanegdom op maandag 10 maart 2008 21:36]


Ik denk niet dat je dit kunt zien als "fouten" aangezien de toepassingen heel goed weten waar ze mee te maken hebben. Gehele getallen kunnen precies worden weergegeven, tot een bepaalde grootte. Floating point getallen is een ander verhaal, maarja, schrijf jij eens pi exact op of sqrt(2)?

Bij deze dan:
- (ln (-1) i)

Met bovenstaande string had mijn CPU echt geen moeite, hoor. En toch heb ik precies gedaan wat je vroeg, π exact opschrijven.

Ok, genoeg flauwe grappen. Wanneer ik 9 door 2 deel en het resultaat in een integer opsla, dan zal ik inderdaad geen 4,5 kunnen uitlezen. In dat opzicht zou je kunnen betogen dat een processor die fouten maakt, niets nieuws is. Dit gedrag is echter voorspelbaar: zou ik die berekening een loopje zetten, dan heeft mijn integer een dag later nog steeds de waarde 4. Dit bericht beschrijft echter een geheel ander principe. Er zijn wel voldoende bits beschikbaar om het antwoord correct te noteren, maar de processor werkt op zo'n laag voltage, dat deze bits onder invloed van ruis kunnen omklappen. Negen gedeeld door twee zou ineens -4 kunnen opleveren.

en zolang je dan maar uitgaat van |4| is dat geen probleem? Begrijp ik het dan een beetje goed?

Hoe een float zich gedraagt is exact te voorspellen. De afrondingsfouten waarjij het over hebt zijn meer 'by design'. Zou je 1000x dezelfde berekening uitvoeren dan zal daar ook weer 1000x hetzelfde antwoord uitkomen met dezelfde afwijking van het werkelijke antwoord.

Waar het in dit artikel om gaat zijn juist de omvallende bitjes. Dat je 1000x een berekening doet en dat daar enkele keren gewoon een ander antwoord uit komt. Dit zijn dingen die je niet in Excel wilt hebben, maar voor het decoderen van geluid of video maakt het niet zo veel uit zolang het binnen bepaalde grenzen blijft. Voor Random generatie is het trouwens ideaal.

Met fout bedoelen ze dat de precisie omlaag gaat...

Volgens mij niet de precisie, maar echte fouten.

Dus niet het aantal getallen achter de komma reduceren, maar accepteren dat een 1 in een 0 kan veranderen. Dus dat bijvoorbeeld 10101010 in de processor ineens (onvoorspelbaar) als 00101010 wordt waargenomen.

Dit kan dus 1 pixel zijn die ineens een hele andere kleur krijgt of een plotseling "hoog" signaal op je speakers (kraak) als dat niet wenselijk is.

Ja, inderdaad, behalve dan dat ze aangeven dat dit op de lagere niveaus zal gebeuren, dus 10101010 zou kunnen veranderen in 10101011 of 10101000.

Ahh filosofie op tweakers.net!
Het is nou juist de taak van een processor dat hij alles uitrekend. Waarom zou hij het dan opeens fout mogen zijn?

Ik heb soms het idee dat deze generatie niets meer geeft om kwaliteit.
Is de taak van de processor om met een nauwkeurigheid van 100% zijn werk te doen? Een machine die producten voortbrengt die schijnbaar perfect zijn en onder dezelfde omstandigheden eideloos gereproduceerd worden?

Definieert dit goed of fout en kwaliteit?

Voor menig functie is dit waar. Zelfs in bovengenoemde beschrijving van audio en video decoderen gaat het nog om acceptabele fouten.

Daag jezelf uit om een onnauwkeurigheid niet per definitie als een fout te zien. Onze evolutie is gebaseerd op onnauwkeurigheden (of zo je wilt fouten). Zo zijn ook voor genetische algoritmes onnauwkeurigheden essentieel om tot een kwalitatief goede oplossing te komen. Crossover en mutatie hebben veel te winnen bij een machine die niet identieke resultaten produceert.

Velen geven de voorkeur aan het geluid van vinyl. De imperfecties worden tot op een zeker niveau gezien als een kwaliteit.

Tot slot is het vaak een wens om te ontkomen aan een machine-esthetiek in een computer gegenereerde omgeving. Variatie in texturen en particles zijn dan essentieel en juist dit kost de machines van nu en hun menselijke bedieners extra moeite. Gebruik de onnaukeurigheid om een menselijke wereld te creeeren met al haar imperfecties.

Velen geven de voorkeur aan het geluid van vinyl. De imperfecties worden tot op een zeker niveau gezien als een kwaliteit.
-nee- er wordt de voorkeur gegeven aan de afwezigheid van de digitale fouten. De analoge fouten worden liefst ook geminimaliseerd.

er is onderzoek geweest, in japan meen ik, waar werd aangetoont dat mensen het verschil kunnen horen tussen het al dan niet aanwezig zijn van boventonen (harmonischen) tot 50kHz. -Dat staat dus niet op een cd.-
En niet te vergeten de zweving (volume variaties) die je krijgt in de hogere tonen die in de buurt van de sample frequentie liggen.
Extreem voorbeeld: toon op halve sample frequentie: sample je op de toppen van de sinus of op de nuldoorgang?
algemeen resultaat: een wisselende fase verschuiving en een volume variatie van 0 tot 100% die afhankelijk is van het verschil met de sample frequentie

p.s. ik heb veel cd's als wav op hd staan, niet als mp3

Jij gebruikt dus nooit:
- GSM?
- een fototoestel in JPEG mode?
- een fototoestel in RAW mode (ook maar beperkt aantal bits/kleur)?
- een MP3 speler?

Wanneer je nu een processor hebt die bij dat soort taken zo kan decoderen dat je het verschil niet/nauwelijks merkt (net zoals bij een goede kwaliteit mp3/AAC/ogg in vergelijking met lossless (wat ook maar een beperkte resolutie heeft), wat maakt het dan uit? Zeker als je daarmee bijvoorbeeld 8 uur in plaats van 5 uur film kan kijken op je pmp.

Dit vind ik wel erg kort door de bocht.

In het bericht staat dat er exponentieel meer energie verbruikt wordt voor het vorhogen van de precisie. Maar neem mijn N95 telefoon, waar ik video op kijk en welke ik gebruik om MP3 op te luisteren. De batterij gaat nu een dag mee, maar als deze 2 dagen mee zou gaan, dan is dit toch een gewldige winst?

Ik zie juist veel potentie voor een ontwikkeling als deze.

Ik heb soms het idee dat deze generatie niets meer geeft om kwaliteit.
Het feit dat er Youtube filmpjes worden getoond op TV (EditieNL) ondersteunt dat idee, maar het gaat om kwaliteit waar het van nut is. Als je op de fiets of in de trein zit heeft een mp3tje met een hogere bitrate dan 128kbps toch geen nut, en zo zijn er meer dingen te bedenken.

ja, en wat is de volgende stap? Processoren die af en toe een berekening overslaan, omdat de gebruiker het toch niet merkt? Een GPU die hier en daar wat polygonen weglaat?

Een GPU die hier en daar wat polygonen weglaat?
Slecht voorbeeld ;). Idealiter laat je in je 3d-scene sowieso al zoveel mogelijk polygonen weg; dat scheelt namelijk met de framerate (die dan hoger wordt). Je rendert alles van 1 kant (normal mapping), rekent uit wat zichtbaar is en wat niet (backface/occlusion culling) en tekent alleen wat nodig is.

Nice. Ik vind dit juist geniaal bedacht. En als programmeur zit je gebakken. Als iemand bugs in jouw programmatuur vindt, kun je vanaf nu gewoon de computer de schuld geven! Lijkt me ook ideaal om te gebruiken in bijvoorbeeld pin-automaten!

gaat er 15 euro van je rekening, terwijl er maar 5 uitkomt, fijn is dat ;)

Of er gaat 5 van je rekening terwijl er 5000 uitkomt ;)

Zelf als je nauwkeurig moet rekenen kan dit nog hulp bieden.

Bij (iterative) lineare solvers A*x = b komt het vaak niet zo zeer aan op de nauwkeurigheid waarmee A bepaald. Dwz om x = inv(A)*b te benaderen, kom je ook in de buurt van de daadwerkelijke x, door A bij schatting te bepalen. Iteratieve solvers maken hier handig gebruik van. (En in de tijd dat matrix vector berekeningen nog met de hand gedaan werden, was dit ook al een welkome eigenschap)

Door nu meerdere van deze energie zuinge chips te combineren zou je A*x nog verder kunnen parralleseren, waarbij je x energie zuinig kunt benaderen.

Je zou dan nog een correctie met een "normale" energie ongunstige processor kunnen toepassen om de nauwkeurigheid van x verder te vergroten.

Kortom in een goed geparrallesisseerbare omgeving zou je deze onnauwkeurige maar energieguntige stukjes zand nog steeds kunnen gebruiken om toch uiteindelijk tot een nauwkeurig resultaat te komen.

(Hetzelfde geldt echter voor het gebruik van GPU's waarbij de memory controle achterwege blijft en waarbij een extra slag door de CPU eigenlijk gewenst is om je gevonden resultaat te verififieren, of verder te verfijnen.)

Dit zou wel eens een revolutionaire manier van rekenen kunnen worden in de toekomst. Ik heb altijd het idee gehad dat de mensch bij het maken van de geautomatiseerde versie van zichzelf (robot, computer), veels te kritisch is. Een mens werkt immers ook met fouten, je leert de beste keus te maken en de betrouwbaarste methode te kiezen. Eventueel staaf je je uitkomst nog met andere feiten om zo de kans op het juiste antwoord te verhogen. Een computer op een fiets zou zich suf rekenen, maar een mens doet een tikke links, tikkie rechts.. iets te veel, beetje corrigeren.. maar het gaat allemaal wel goed.

Over je voorbeeld met tikkie links tikiie rechts het volgende:
(a) Met fuzzy logic kan dit deels al. Het balanceren van een stok op je wijsvinger is een instabiel systeem, vooral als de stok kort is. De recht-toe-recht-aan wiskunde geeft aleen instabiele oplossingen, doordat je iedere keer "overcorrigeerd". (toegegeven je kunt stabilisrende termen toevoegen) Met fuzzy logic kun je de besturing zo inrichten dat je niet over corrigeerd. Zo hadden ze bij Omron een gecomputeriseerde "vinger" staan die een stok balanceerde

(zie bijv : http://www.newscientist.c...-ignored-in-the-west.html en / of http://omron.nl/ )

(b) je moet dan natuurlijk nog steeds wel zorgen dat de controle slag die je maakt voldoende nauwkeurig is.

Maar het idee om computers te "leren omgaan" met foutmarges/onzekerheden is een zeer boeiende gedachte, omdat het systeem dan zelf de correctie kan uitvoeren.

[Reactie gewijzigd door vladimirP op maandag 10 maart 2008 20:53]


Niet echt aan te raden dit soort initiatieven. Leuk bedacht, maar straks krijg je te lezen op de doosjes 'nauwkeurigheid 95%' 'nauwkeurigheid 50%'. En er is al zoveel keuze. Geef mij maar gewoon de oude vertrouwde manier, dan maar iets minder zuinig.

En toch werk je er al dagelijks mee zonder dat je het weet.

Wat dacht je van de zoekresultaat van google, of zelfs van GOT? Daar staat ook maar bij dat de zoekresultaten "ongeveer xxx-pagina's is, terwijl het toch xx pagina's zijn.

Dus in principe wel logisch om het op zulke manieren te doen.

Ik hoop alleen wel dat het op een wat hoger niveau aangesproken kan worden, de mate van nauwkeurigheid dan.

Dat de programmeur of OS dat regelt

Nog een voorbeeld:

Weerstanden met een tolerantie van 10% tot 0.05% in de waarde.

kleurcode weestand

En toch worden ook de minder nauwkeurige goed gebruikt..

Wat dacht je van de zoekresultaat van google, of zelfs van GOT? Daar staat ook maar bij dat de zoekresultaten "ongeveer xxx-pagina's is, terwijl het toch xx pagina's zijn
Ik heb me bij google toch redelijk vaak mateloos aan zitten ergeren en lopen zoeken naar manier om toch al die andere zoekresultaten te zien.

Ik zie ook liever dat de gebruiker dat soort zaken kan regelen.

Wat ook opgemerkt dient te worden. Men heeft het ook over regelbare spanningen. Op deze manier kun je de processor dus terugclocken op het moment dat de nauwkeurigheid niet gewenst is, en bij preciesere taken kan de spanning omhoog om de gewenste nauwkeurigheid te benaderen. Dit laat het licht nog net iets anders op de zaak vallen.

briljant in zn eenvoud eigelijk :)

Volgens mij kun je in de meeste gevallen softwarematig vaak al heel wat onnodige precisie achterwege laten.. Ik vind dat wat je vraagt gewoon betrouwbaar moet zijn uitgevoerd. Kun je het af met minder precisie dan had je de precisie waarschijnlijk ook niet nodig en had je de berekening ook met minder precisie kunnen uitvoeren

[Reactie gewijzigd door MaZeS op maandag 10 maart 2008 21:36]


Maar aan wat voor prestaties per watt denken deze wetenschappers dan? Want in sommige gevallen is het verwaarloosbaar voor de ene mens, denk ik, om toch liever de meest accurate resultaten te gebruiken dan bij de andere.

Ik heb nog een P90 met de bekende floating point unit bug.. :D

Tijd voor een upgrade dan, met een nieuwe socket 4 ULV op 45nm gebakken Pentium Classic op 60MHz.

Tja, de nauwkeurigheid die je wilt ligt volkomen aan wat je aan het doen bent met de computer. Daarnaast wordt dan ook een belangrijk punt hoe programmeurs zullen omgaan met de (on)nauwkeurigheid, welke procedures worden geschreven voor welk proces etc. Met andere woorden eerst een praktische toepassing en dan kijken we wel weer verder...
«  1  2  3  4  »

Op dit item kan niet meer gereageerd worden.

Volgende 21:31 Europa dreigt VS met WTO-zaak vanwege online gokbeleid
Vorige 19:54 TNO gaat beveiliging ov-chip opnieuw onderzoeken
VNU Media logo Hosted by True

© 1998 - 2012 Tweakers.net B.V. - Alle rechten voorbehouden - Contact - Jouw privacy - Algemene Voorwaarden

Uitgever van:

Website van het jaar 2011