Kunstig intelligens kræver helt nyt chipdesign


Hvis forbrugere og virksomheder i stigende grad skal have gavn af kunstig intelligens (AI), kræver det et helt nyt design af de chips, der foretager de tunge matematiske beregninger bag teknologier som machine learning og deep learning.
Skal machine learning og neurale netværk gøre høreapparater, smartphones, robotter eller trådløse sensorer i industrien mere intelligente, så dur de eksisterende chip-løsninger nemlig ikke.
[box]
- emailE-mail
- linkKopier link

Fortsæt din læsning
- Sortér efter chevron_right
- Trådet debat
"Man bliver nødt til at komme ud over det problem, at man flytter data fra hukommelsen til CPU’en (processoren, hvor den faktiske beregning udføres, red.) og tilbage igen. Det forbrænder alt for meget energi"
I moderne CPU'er flyttes data oftest ikke. En typisk opgave består af flere instruktioner, der udføres efter hinanden. Disse instruktioner, har hver deres ALU. Når disse ALU'er får n instruktioner, så vil dataene ikke blive gemt i registre, men forwardes direkte imellem ALU'erne. Data når aldrig registeret. Kun de data, der skal bruges længere inde i fremtiden skrives til registre. Når mange ALU'er sættes til at udføre instruktionerne, og forwarder data mellem hinanden, så opstår afhængigheder, der kan gøre at den samlede instruktion tager længere tid. Det kan løses på to måder: Man kan enten regne afhængighedens dybde ud, og afsætte tid efter dette. Eller, man kan anvende ALU'er, der giver besked om, hvornår data er færdig. Der er lavet forsøg med at udføre mange instruktioner samtidigt, og det viser sig, at dybden ikke bliver meget større.
Når data flyttes så sker det ikke ud til ram lageret, men til en lille cache, der er anbragt tæt på CPU'en. Der er blandt andet en cache, der husker data fra forrige instruktion, så der også kan forwardes direkte fra den.
Alt i alt, er der flere cacher efter hindanden, også på registre, der gør at data ikke skal transporteres så langt. I nogle tilfælde, sker det ved forwarding, og nogle registre niveauer, så det bliver til en lille cache. Det har den fordel, at man kan flytte logik ind i cachen, så beregning og cache blandes.
Mange har den opfattelse at når en CPU udfører en instruktion, at den så skal hente data fra et register, og skrive det tilbage igen. Det sker ikke i virkeligheden. I virkeligheden, er der flere CPU'er, der arbejder sammen, og CPU'erne forwarder dataene direkte imellem dem, så der er ingen registre. Udgangen kobles direkte til indgangen på den efterfølgende instruktions CPU, således der er så lidt forsinkelse som muligt. Ofte giver en almindelig D-register større forsinkelse end udregningen. En normal CPU kan derfor udføre langt flere instruktioner i sekundet, end den tid det tager, at flytte data til et register, og hente dem tilbage igen.
Når man udvikler CPU'er, så har man software, så man direkte opskriver hvor mange ALU'er der skal til for at udføre en enkelt tråd, og hastigheden er stort set proportional med antallet af ALU'er.
Alt i alt, leder man derfor ikke data hen i et register og tilbage igen. Der er forwarding mellem ALU'erne der udfører opgaven, der er cache/forwarding, hvor logikken er flyttet ind i, så CPU og cache smelter sammen.
This is interesting...Hopefully, Denmark invests more on this.
Check our current projects on Neuromorphic chip design in CMOS and beyond:
https://ing.dk/artikel/dansk-chip-skal-traene-nyt-hjernevaev-at-kurere-epilepsi-226122
https://ing.dk/artikel/neuromorphic-computing-fremtidens-computer-skal-arbejde-menneskehjerne-225922