A Coarse-Grain Reconfigurable Accelerator for Rocket
Abstract
Søken etter raskere og mer energi effektive data arkitekturer blir stadig vanskeligere. Dette er et resultat av slutten på Moores lov og Dennard skalering. Data arkitekter ser alternative veier for å oppnå raskere og mer energi effektiv kalkulering. Noen ser på akseleratorer som er spesialisert på spesifikke kalkuleringer. Akseleratorer er ekstremt gode og effektive, men ulempen er at de ikke blir brukt når komputeringen er i et ikke egnet domene.
Arkitekter utforsker re-konfigurerbare akseleratorer slik som Coarse-Grain Re-configurable Architecture (CGRA) for å minimere tiden disse akseleratorene ikke blir brukt. CGRA består av et nett av Prosesserings Elementer (PE) som kan utføre ord-nivå operasjoner og kan bli re-konfigurert for å minimere tiden den ikke blir brukt. Disse akseleratorene kan tilpasse seg og akselerere flere deler av en applikasjon. Denne oppgaven integrerer en CGRA, generert av CGRA-ME, inn i Rocket Chip System on Chip (SoC). Rocket Chip er en SoC generator for å produsere RISC-V SoC. Rocket-ME er kontroll modulen som kontrollerer CGRA akseleratoren og kommuniserer med CPU og L1 cache gjennom det unike Rocket Custom Co-processor (RoCC) grensesnittet i Rocket Chip. Rocket-ME er implementert i tre forskjellige versjoner med ulike egenskaper.
Avhengig av type integrasjon så viser resultatet at de fleste av implementasjonene er raskere til å akkumulere en rekke enn CPU ‘en. På grunn av konfigurasjons forsinkelse i CGRA'en er totaltiden for akseleratoren tregere enn den for CPU. Likevel, for den lengste benchmark kjøringen med parallell komputering, oppnådde vi en total hastighetsøkning på 2.6x sammenlignet med CPU. Denne benchmark'en hadde en lang nok akkumulerings lengde til å undertrykke den betydelige konfigurasjons tiden. Pursuing ever faster and more power-efficient computer architecture is becoming increasingly difficult. This results from the imminent end of Moore's Law and the end of Dennard scaling. Computer architects are looking for alternative ways to achieve faster and more efficient computation. Some are looking at accelerators that are specialized for specific calculations. Accelerators are extremely good and efficient, but the downside is that they are idling when the calculation is in a not-suited domain.
Architects are exploring reconfigurable accelerators such as Coarse-Grain Re-configurable Architecture (CGRA) to minimize the time these accelerators are idling. CGRA consists of an array of Processing Elements (PE) that are capable of executing word-level operations and can be reconfigured to minimize idling time. These accelerators can adapt and accelerate several parts of an application. This thesis integrates a CGRA, generated by CGRA-ME, into the Rocket Chip System on Chip (SoC). Rocket Chip is an SoC generator for producing RISC-V SoC. Rocket-ME is the control module that controls the CGRA accelerator and communicates to the CPU and L1 cache through the unique Rocket Custom Co-processor (RoCC) interface in Rocket Chip. Rocket-ME is implemented in three different versions with different capabilities.
Depending on the type of integration, the results show that most integrations are faster at accumulating an array than the CPU. Still, the overhead from the configuration of the CGRA makes the accelerator's total time slower than the time of the CPU. Nevertheless, For the longest benchmark run with parallel computation, we achieved a total speedup of 2.6x compared to the baseline. This benchmark was run with an accumulation length that let the CGRA's fast computation overcome its significant configuration overhead.