Ta del av allt innehåll på Aktuell Hållbarhet
Starta din prenumeration

Prenumerera

Lördag11.07.2020

Kontakt

Annonsera

Meny

Starta din prenumeration

Prenumerera

Sök

Klimat

Slarviga datorer – blixtsnabba och energisnåla

Publicerad: 18 Januari 2011, 13:23

Om man är beredd att offra lite noggrannhet kan en dator hantera oändligt mycket mer information än den gör idag. Den gör det mycket snabbare och med mycket lägre effektförbrukning.


Det finns saker och ting som vanliga von Neumannska datorer, alltså den typ som du och jag har på skrivbordet, inte är särskilt lämpade för. En bordsdator kan mycket väl användas till videoanalys, för att till exempel se om något har ändrats från en bild till nästa, men det är inte särskilt effektivt. Detsamma gäller, proteinveckningar eller analys av virvlande flöden och kräver massor av små, enkla beräkningar. Parallellism, tänker du, med rätta.

Om man istället kunde koppla en mindre grupp av bildpunkter i videon till en kärna i en processor och ha en CPU med låt oss säga 1000 parallella kärnor som alla utför en mindre komplicerad beräkning eller jämförelse, skulle varje sådan kärna kunna göras mycket mindre och effektsnålare än om man använde en fullfjädrad pentium-nånting till det. Det är på det sättet man bygger upp massivt parallella datorer, superdatorer, idag. Dessa är visserligen utrustade med pentiumprocessorer eller dess gelikar, för att vara generella och kunna klara alla typer av beräkningar. Men eventuellt skulle vissa typer av beräkningar kunna göras mycket effektivare om man fick använda massivt parallella, primitiva processorer, i stil med hjärnans nervceller – inte särskilt kraftfulla, men det finns flera miljarder av dem. Du har gissat rätt, det handlar om neurala nätverk.

Undersökningar av videoströmmar i realtid är notoriskt processorkrävande, och ändå är det inte absolut nödvändigt att man får ett svar ned på 25:e decimalen, på frågan om huruvida bilden förändrats från en delbild till nästa.

För att visa principen med onoggrann databehandling kan man börja med att tänka sig en satellitbild, överst, som åsätts rörelseoskärpa, nederst.

Och hur ska man avgöra om bilden har ändrat sig? Vad är ”ändra sig”? Kan man formulera det en aning lösligt, kan man minska behovet av internkommunikation mellan de 1000 kärnorna betydligt. Istället för att se till att alla 1000 ska kunna kommunicera med varandra, vilket ger ett väldigt kommunikationsnät som tar upp värdefull tid från databehandlingen, och istället begränsa kommunikationen så att en kärna bara kan kommunicera med sina närmaste grannar, begränsas tiden för mellankommunikation betydligt. För att en kärna ska kunna avgöra om bilden ändrat sig i den grupp av bildpunkter den åsatts att kontrollera behöver den faktiskt inte veta om en annan grupp bildpunkter i något annat hörn av bilden ändrat sig samtidigt.

Och egentligen är det inte så viktigt att veta exakt vilka grånivåer det rör sig om, bara man vet på ett ungefär, från en bild till nästa. Kan man minska kraven på flyttalshanteringens noggrannhet, alltså i princip acceptera lite luddiga svar, minskar man effektbehoven ytterligare.

Det viktiga, i slutänden är att man kan ta alla de lite osäkra svaren och dra ihop dem i en algoritm som körs på en standardprocessor och med hjälp av de educated guesses man fått av det neurala nätverket, bestämma om bilden förändrats eller ej, med tillräckligt god noggrannhet.

Att sådana system är praktiskt hållbara finns det ett mycket bra bevis för: vår egen hjärna. Den har naturen hållit på att utveckla i flera hundra miljoner år, och till sist blev den riktigt bra. Den hanterar miljardtals samtidiga signaler, klarar av att driva en så komplicerad maskin som människokroppen och fatta beslut med hänsyn tagen till alla dessa signaler på förvånansvärt korta tider, med ganska bra resultat (vi överlever), allt till en effektförbrukning på cirka 10 watt.

För att kunna styra människokroppen, och generera den programvarustyrda funktion som vi kallar jaget eller själen är det inte möjligt och tydligen inte nödvändigt att ta absolut 100-procentigt säkra beslut, till exempel på hur man ska röra ett finger för att trycka ned en tangent på tangentbordet. Missar man tangenten lite känner fingrets sensorer detta och kan justera anslagskraften och -riktningen i realtid så att tangenten trycks ned tillräckligt. Återkopplingen i kretsen, alltså vårt ”sinne för hur det borde vara” eliminerar en oändlig massa beräkningar av hur man bör göra exakt, och ersätter det med ett ungefärligt ”vi kör lite åt det hållet” och justerar allt eftersom. Det är uppenbart att detta är en beräkningseffektivare lösning än att försöka förutsäga framtiden exakt.

Var går tankarna i dessa riktningar, om inte på Carnegie Mellon University? Där finns en forskare vid namn Joseph Bates, en adjungerad professor i datavetenskap, som i samarbete med kollegan Deb Roy vid MIT Media Lab satte sig och funderade över problemet med att söka efter händelser i hundratusentals timmar videomaterial. Roy hade utrustat sitt hem med 11 videokameror och 14 mikrofoner i avsikt att forska kring hur barn lär sig ett språk. Han ville filma alla tillfällen då barnet eller föräldrarna sade till exempel ”boll” och sedan ta reda hur barnet använde bollar. Ett otroligt komplext arbete, inte så mycket för att bilderna var så komplexa, utan för den enorma mängden material.

Bates hade konstruerat en chip som kunde utföra tiotusentals samtidiga beräkningar med slarvig aritmetik (alltså fuzzy logic) och letade efter program som lämpade sig för detta. De två passade som hand i handske.

Roy och Bates visste att algoritmer för behandling av visuella data ofta är ganska felbenägna. Ett system som identifierar föremål i statiska bilder, till exempel, anses vara bra om det har rätt ungefär hälften av tiden. Om man ökade felmarginalen hos bildigenkänningsalgoritmen aldrig så lite, resonerade forskarna, skulle det förmodligen inte påverka dess prestanda allt för mycket. Och om resultatet var förmågan att göra tusentals beräkningar parallellt, kanske Roy och hans kolleger kunde utföra analyser av videodata de inte hade kunnat drömma om tidigare. Ett fel på en procent visade sig vara fullt acceptabelt i videobehandling.

Det hela verkar fungera väldigt bra när det gäller video, men Bates har funnit några andra problem som hans chip också klarar av väldigt bra. Det ena är ett vanligt problem inom datalogin som kallas "nearest-neighbor search" där man har en uppsättning objekt som vart och ett beskrivs med hundratals eller tusentals kriterier, och man vill hitta ett som bäst passar ett nytillkommet objekt, mycket vanligt i databassöknignar. Ett annat är datoriserad analys av proteinveckning, där man måste beräkna alla de olika sätt på vilka olika delar av en lång biologisk molekyl kan samverka,  princip passa i varandras form, hål och gropar.

Bilden analysseras och skärps i efterhand med Lucy-Richardsons algoritm, överst med en helt vanlig flyttalsprocessor och nederst med en förenklad processor med cirka 1% fel. Den undre bilden är acceptabel, eller hur?

Här kan det hjälpa att förenkla elektroniken och noggrannheten. Bates formulerar själv detta i en längre text, som går igenom utvecklingen från datorteknikens början fram till dagsläget. Vi saxar lite:

”Således har maskinen en ganska enkel SIMD-arkitektur (single instruction stream, multiple data stream), en typ som studerats och tillverkats i decennier (MasPar, Goodyear MPP, Connection Machine, DAP och andra). De viktigaste skillnaderna är att varje kärna kan göra en sorts flyttalsaritmetik med ungefär en cykel per operation, och att de låga kraven på aritmetisk noggrannhet medger att maskinvaran kan konstrueras så att varje kärna kan byggas upp med så få transistorer att hundratusentals kärnor får plats på en enda modern chip. Således får vi en enda krets som kan komma i närheten av en petaflop, köras på ca 100 watt, och rymmas i en apparat i storlek med en bordsdator. En maskin med ett par sådana kretsar skulle kunna ge vem som helst kraften hos världens snabbaste superdator. Ett datacenter uppbyggt med sådana kretsar skulle innehålla mera datakraft än resten av Jorden sammantaget. Alternativt skulle man kunna välja en mindre krets med samma kraft som en bordsdators grafikkort, alltså en GPU i teraflopklassen, i en handhållen dator som kan dra mindre än en watt.”

”Maskinens ovanligaste egenskap är dess ungefärliga aritmetik. Numeriska analytiker har studerat effekten av varierande precision på olika algoritmer, men det tenderar att röra sig om numeriska algoritmer. Om AI, robotteknik, perception, inlärning och liknande uppgifter kan komma att genomföras med hjälp av ungefärlig aritmetik är inte helt klart, åtminstone för mig. Jag föreställer mig att algoritmerna för dessa uppgifter måste vara robusta vad gäller hantering av brus i data, onoggranna modeller, omvärldens komplexitet och andra felkällor, och att den ungefärliga aritmetiken kanske inte orsakar så många extra svårigheter. De experiment jag och andra vid MIT gjort. tyder på att detta ofta är fallet.

Vi har utforskat en mängd olika områden och har funnit att kända algoritmer ofta kan modifieras för att köras på en maskin av den typ jag föreslagit och ändå ge användbara resultat. De områden som vi har utforskat omfattar bildbehandling, tomografi, maskinell inlärning, mönsterigenkänning, molekyldynamik, genforskning och taligenkänning. På MIT Media Lab forskar vi främst i att spåra människor i video.”

Så det handlar inte om att addera ett och ett och få det till tre, utan med tillräckligt många enkla datorer kan vi addera ett och ett och få det till två, miljardtals gånger i sekunden och de fåtal gånger det inte blir två kan man högaktningsfullt ignorera. Det är enklare än att vara absolut bergsäker varenda gång.

Läs mer

Trots att rubriken är fel är texten intressant: http://web.mit.edu/newsoffice/2010/fuzzy-logic-0103.html
Och här är Bates powerppoint, som är en bra sammanfattning: http://web.media.mit.edu/~bates/Summary_files/BatesTalk.pdf
Olika typer av bildskärpning, bland dem Lucy-Richardson: http://www.ee.usyd.edu.au/~jlay/elec5613/tut1/ipt-debluring.pdf

Jörgen Städje

Dela artikeln:


Håll dig uppdaterad med vårt nyhetsbrev

Genom att skicka in mina uppgifter godkänner jag Bonnier Business Media AB:s (BBM) allmänna villkor. Jag har även tagit del av BBM:s personuppgiftspolicy.