Kunstig intelligens kræver helt nyt chipdesign

Plus7. juni 2019 kl. 05:182
Kunstig intelligens kræver helt nyt chipdesign
Illustration: Lasse Gorm Jensen.
Kraftige og specialdesignede computerchips snarere end algoritmer og software er afgørende for fortsat udvikling inden for kunstig intelligens, lyder det fra forskere og industrifolk.
Artiklen er ældre end 30 dage

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]

Gratis adgang i 30 dage

Tegn et gratis prøveabonnement og få adgang til alt PLUS-indhold på Ing.dk, Version2 og Radar, helt uden binding eller betalingsoplysninger.

Alternativt kan du købe et abonnement
remove_circle
Har du allerede et PLUS-abonnement eller klip?
close

Velkommen til PLUS

Da du er ved at tilmelde dig en gratis prøve beder vi dig hjælpe os med at gøre vores indhold mere relevant for dig, ved at vælge et eller flere emner der interesserer dig.

Vælg mindst et emne *
Du skal vælge en adgangskode til når du fremover skal logge ind på din brugerkonto.
visibility
Dit medlemskab giver adgang
Som medlem af IDA har du gratis adgang til PLUS-indhold, som en del af dit medlemskab. Fortsæt med MitIDA for at aktivere din adgang til indholdet.
Oplever du problemer med login, så skriv til os på websupport@ing.dk
Abonnementsfordele
vpn_key
Fuld adgang til Ing.dk, Version2 og Radar
Fuld digital adgang til PLUS-indhold på Ing.dk, Version2 og Radar, tilgængeligt på din computer, tablet og mobil.
drafts
Kuraterede nyhedsbreve
Det seneste nye fra branchen, leveret til din indbakke.
Adgang til andre medier
Hver måned får du 6 klip, som kan bruges til permanent at låse op for indhold på vores andre medier.
thumb_up
Adgang til debatten
Deltag i debatten med andre kloge læsere.
2 kommentarer.  Hop til debatten
Debatten
Log ind eller opret en bruger for at deltage i debatten.
settingsDebatindstillinger
2
7. juni 2019 kl. 20:45

"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.