Heterogen databehandling - Heterogeneous computing
Heterogen beräkning avser system som använder mer än en typ av processor eller kärnor . Dessa system får prestanda eller energieffektivitet inte bara genom att lägga till samma typ av processorer, utan genom att lägga till olika coprocessorer , som vanligtvis innehåller specialiserade bearbetningsmöjligheter för att hantera särskilda uppgifter.
Heterogenitet
Vanligtvis heter heterogenitet i datorsammanhang till olika instruktionsuppsättningsarkitekturer (ISA), där huvudprocessorn har en och andra processorer har en annan - vanligtvis en helt annan - arkitektur (kanske mer än en), inte bara en annan mikroarkitektur ( flytande punkt nummerbehandlings är ett specialfall av detta - oftast inte kallad heterogen).
Tidigare innebar heterogen beräkning att olika ISA måste hanteras annorlunda, medan i ett modernt exempel eliminerar Heterogenous System Architecture (HSA) -skillnaderna (för användaren) när man använder flera processortyper (vanligtvis CPU: er och GPU: er ), vanligtvis på samma integrerade krets , för att ge det bästa av två världar: allmän GPU-bearbetning (förutom GPU: s välkända 3D-grafikåtergivningsmöjligheter kan den också utföra matematiskt intensiva beräkningar på mycket stora datamängder), medan processorer kan köra operativsystemet och utföra traditionella serieuppgifter.
Nivån av heterogenitet i moderna datorsystem ökar gradvis eftersom ytterligare skalning av tillverkningsteknologi gör det möjligt för tidigare diskreta komponenter att bli integrerade delar av ett system-on-chip eller SoC. Till exempel innehåller många nya processorer nu inbyggd logik för gränssnitt med andra enheter ( SATA , PCI , Ethernet , USB , RFID , radio , UART och minneskontroller ), samt programmerbara funktionella enheter och hårdvaruacceleratorer ( GPU , kryptografi samprocessorer , programmerbara nätverksprocessorer, A/V-kodare/avkodare, etc.).
Nya fynd visar att en heterogen ISA-chip-multiprocessor som utnyttjar mångfald som erbjuds av flera ISA kan överträffa den bästa homogena ISA-arkitekturen med hela 21% med 23% energibesparingar och en minskning med 32% i Energy Delay Product (EDP) . AMDs meddelande från 2014 om sin pin-kompatibla ARM och x86 SoCs, kodnamnet Project Skybridge, föreslog en heterogen-ISA (ARM+x86) chip-multiprocessor i färd.
Heterogen CPU -topologi
Ett system med heterogen CPU -topologi är ett system där samma ISA används, men själva kärnorna har olika hastighet. Installationen liknar mer en symmetrisk multiprocessor . (Även om sådana system är tekniskt asymmetriska multiprocessorer skiljer sig inte kärnorna i roller eller åtkomst till enheter.) Det finns vanligtvis två typer av kärnor: en kärna med högre prestanda, vanligtvis känd som den "stora" eller P-kärnan och en mer energieffektiv kärna vanligtvis känd som den "lilla" eller E-kärnan.
En vanlig användning av sådan topologi är att ge bättre energieffektivitet i mobila SoC.
- ARM big.LITTLE (efterföljs av DynamIQ) är det prototypiska fallet, där snabbare högeffektkärnor kombineras med långsammare lågeffektkärnor.
- Apple har tillverkat Apple kisel ARM -kärnor med liknande organisation.
- Intel har också producerat hybrid x86-64-kärnor med kodnamnet Lakefield , men inte utan större begränsningar i stöd för instruktionsuppsättningar. Den nyare Aldersjön minskar uppoffringen genom att lägga till mer instruktionsuppsättningar till den "lilla" kärnan.
Utmaningar
Heterogena datorsystem presenterar nya utmaningar som inte finns i typiska homogena system. Förekomsten av flera bearbetningselement väcker alla frågor som rör homogena parallella bearbetningssystem, medan graden av heterogenitet i systemet kan införa icke-enhetlighet i systemutveckling, programmeringsmetoder och övergripande systemkapacitet. Områden med heterogenitet kan innefatta:
- ISA eller instruktionsuppsatt arkitektur
- Datorelement kan ha olika instruktionsuppsättningsarkitekturer, vilket leder till binär inkompatibilitet.
- ABI eller binärt gränssnitt för applikationer
- Datorelement kan tolka minnet på olika sätt. Detta kan inkludera både slutlighet , samtalskonvention och minneslayout, och beror på både arkitekturen och kompilatorn som används.
- API- eller applikationsprogrammeringsgränssnitt
- Bibliotek- och operativsystemstjänster kanske inte är enhetligt tillgängliga för alla beräkningselement.
- Lågnivåimplementering av språkfunktioner
- Språkfunktioner som funktioner och trådar implementeras ofta med hjälp av funktionspekare , en mekanism som kräver ytterligare översättning eller abstraktion när den används i heterogena miljöer.
- Minnesgränssnitt och hierarki
- Datorelement kan ha olika cachestrukturer , cachekoherensprotokoll och minnesåtkomst kan vara enhetlig eller icke-enhetlig minnesåtkomst ( NUMA ). Skillnader kan också hittas i möjligheten att läsa godtyckliga datalängder eftersom vissa processorer/enheter endast kan utföra byte-, ord- eller burst-åtkomst.
- Koppla ihop
- Datorelement kan ha olika typer av sammankopplingar bortsett från grundläggande minnes-/bussgränssnitt. Detta kan inkludera dedikerade nätverksgränssnitt, DMA- enheter ( Direct Memory Access ), brevlådor, FIFO-skivor och skrapmattor , etc. Dessutom kan vissa delar av ett heterogent system vara cachekoherent, medan andra kan kräva uttryckligt programvaruinblandning för att upprätthålla konsistens och sammanhang.
- Prestanda
- Ett heterogent system kan ha processorer som är identiska med avseende på arkitektur, men som har underliggande mikroarkitektoniska skillnader som leder till olika prestandanivåer och strömförbrukning. Asymmetri i kapacitet i kombination med ogenomskinliga programmeringsmodeller och operativsystemabstraktioner kan ibland leda till prestandaförutsägbarhetsproblem, särskilt med blandad arbetsbelastning.
- Datadelning
- Även om uppdelning av data på homogena plattformar ofta är trivialt har det visat sig att för det allmänna heterogena fallet är problemet NP-Complete. För ett litet antal partitioner har optimala partitioner som perfekt balanserar belastning och minimerar kommunikationsvolymen visat sig existera.
Exempel på hårdvara
Heterogen databehandlingshårdvara finns inom alla databaser-från avancerade servrar och högpresterande datormaskiner ända ner till inbyggda enheter med låg effekt inklusive mobiltelefoner och surfplattor.
- Dator med hög prestanda
- Cray XD1 (FPGA)
- SRC-datorer SRC-6 och SRC-7 (FPGA)
- Inbyggda system (DSP och mobila plattformar)
- Texas Instruments OMAP (Media coprocessor)
- Analoga enheter Blackfin (DSP- och mediasamarbetare)
- Qualcomm Snapdragon (GPU, DSP, image, ibland AI -coprocessor; Modem, sensorer)
- Nvidia Tegra (GPU; Modem, sensorer)
- Samsung Exynos (GPU; Modem, sensorer)
- Apples "A" -serie (CPU, GPU; Modem)
- Movidius Myriad Vision -behandlingsenheter , som innehåller flera symmetriska processorer, kompletterade med fasta funktionsenheter och ett par SPARC -baserade styrenheter.
- HiSilicon Kirin SoCs (GPU; Modem, sensorer)
- MediaTek SoCs (GPU; Modem, sensorer)
- Cadence Design Systems Tensilica DSP: er
- Omkonfigurerbar dator
- Nätverk
- Intel IXP -nätverksprocessorer
- Netronome NFP -nätverksprocessorer
- Datorer, spel och underhållningsenheter för allmänna ändamål
- Intel Sandy Bridge, Ivy Bridge och Haswell CPU: er (integrerad GPU, OpenCL-kompatibel sedan Ivy Bridge)
- AMD grävmaskin och Ryzen APU: er (integrerad GPU, OpenCL-kompatibel)
-
IBM Cell , finns i PlayStation 3 (Vector coprocessor)
- SpursEngine , en variant av IBM Cell -processorn
- Emotion Engine , som finns i PlayStation 2 (vektor- och mediasamarbetare)
-
ARM big.LITTLE/DynamIQ CPU -arkitektur (heterogen topologi)
- Nästan alla ARM -leverantörer erbjuder heterogena lösningar; ARM, Qualcomm, Nvidia, Apple, Samsung, HiSilicon, MediaTek, etc.