Calcul eterogen - Heterogeneous computing

Calculul eterogen se referă la sistemele care utilizează mai multe tipuri de procesor sau nuclee . Aceste sisteme câștigă performanță sau eficiență energetică nu doar prin adăugarea aceluiași tip de procesoare, ci prin adăugarea de coprocesoare diferite , încorporând de obicei capabilități de procesare specializate pentru a gestiona anumite sarcini.

Heterogenitate

De obicei, eterogenitatea în contextul calculelor se referea la diferite arhitecturi de seturi de instrucțiuni (ISA), unde procesorul principal are unul și alți procesoare au o altă arhitectură - de obicei o foarte diferită - (poate mai mult decât una), nu doar o microarhitectură diferită ( plutitoare) procesarea numărului de puncte este un caz special - nu este denumită de obicei eterogenă).

În trecut, calculul eterogen însemna că ISA-urile diferite trebuiau tratate diferit, în timp ce într-un exemplu modern, sistemele Heterogeneous System Architecture (HSA) elimină diferența (pentru utilizator) în timp ce utilizează mai multe tipuri de procesoare (de obicei CPU și GPU ), de obicei pe același circuit integrat , pentru a oferi cele mai bune dintre ambele lumi: procesare GPU generală (în afară de binecunoscutele capabilități de redare grafică 3D ale GPU, poate efectua și calcule intensive matematic pe seturi de date foarte mari), în timp ce CPU-urile pot rula sistemul de operare și să efectueze sarcini seriale tradiționale.

Nivelul de eterogenitate în sistemele de calcul moderne crește treptat, pe măsură ce scalarea ulterioară a tehnologiilor de fabricație permite componentelor anterioare discrete să devină părți integrate ale unui sistem pe cip sau SoC. De exemplu, multe procesoare noi includ acum logică încorporată pentru interfața cu alte dispozitive ( SATA , PCI , Ethernet , USB , RFID , radiouri , UART-uri și controlere de memorie ), precum și unități funcționale programabile și acceleratoare hardware ( GPU-uri , criptografie coprocesoare , procesoare de rețea programabile, codificatoare / decodoare A / V etc.).

Descoperirile recente arată că un multiprocesor cu cip ISA eterogen care exploatează diversitatea oferită de mai multe ISA poate depăși cea mai bună arhitectură omogenă cu același ISA cu până la 21% cu economii de energie de 23% și o reducere de 32% a produsului de întârziere a energiei (EDP) . Anunțul AMD din 2014 pe SoC-urile ARM și x86 compatibile cu pin, numele de cod Project Skybridge, a sugerat un multiprocesor cu cipuri ISA (ARM + x86) eterogene în curs de realizare.

Topologie eterogenă a procesorului

Un sistem cu topologie eterogenă a procesorului este un sistem în care se utilizează același ISA, dar nucleele în sine sunt diferite în ceea ce privește viteza. Setarea este mai asemănătoare cu un multiprocesor simetric . (Deși astfel de sisteme sunt multiprocesoare asimetrice din punct de vedere tehnic , nucleele nu diferă în funcție de roluri sau acces la dispozitiv.) Există, de obicei, două tipuri de nuclee: un nucleu de performanță mai înaltă, cunoscut de obicei ca „mare” sau nucleu P și un nucleu mai eficient din punct de vedere energetic cunoscut de obicei sub numele de „mic” sau E-core.

O utilizare obișnuită a unei astfel de topologii este de a oferi o eficiență energetică mai bună în SoC-uri mobile.

  • ARM big .
  • Apple a produs nuclee ARM din siliciu Apple cu o organizație similară.
  • Intel a produs, de asemenea, nuclee hibride x86-64 cu numele de cod Lakefield , deși nu fără limitări majore în suportul setului de instrucțiuni. Noul Alder Lake reduce sacrificiul prin adăugarea mai multor suporturi de instrucțiuni la nucleul „mic”.

Provocări

Sistemele de calcul eterogene prezintă noi provocări care nu se găsesc în sistemele omogene tipice. Prezența mai multor elemente de procesare ridică toate problemele legate de sistemele de procesare paralele omogene, în timp ce nivelul de eterogenitate din sistem poate introduce neuniformitate în dezvoltarea sistemului, practicile de programare și capacitatea generală a sistemului. Domeniile de eterogenitate pot include:

ISA sau arhitectură set de instrucțiuni
Elementele de calcul pot avea arhitecturi diferite de seturi de instrucțiuni, ceea ce duce la incompatibilitate binară.
ABI sau interfață binară a aplicației
Elementele de calcul pot interpreta memoria în moduri diferite. Aceasta poate include atât endianitatea , convenția de apelare , cât și aspectul memoriei și depinde atât de arhitectura cât și de compilatorul utilizat.
API sau interfață de programare a aplicației
Este posibil ca serviciile de bibliotecă și sisteme de operare să nu fie disponibile în mod uniform pentru toate elementele de calcul.
Implementarea la nivel scăzut a caracteristicilor lingvistice
Caracteristicile limbajului, cum ar fi funcțiile și firele de execuție, sunt adesea implementate folosind indicatori de funcții , un mecanism care necesită o traducere sau o abstractizare suplimentară atunci când este utilizat în medii eterogene.
Interfață de memorie și ierarhie
Elementele de calcul pot avea structuri de cache diferite , protocoale de coerență a cache-ului , iar accesul la memorie poate fi acces de memorie uniform sau neuniform ( NUMA ). Diferențele pot fi, de asemenea, găsite în capacitatea de a citi lungimi de date arbitrare, deoarece unele procesoare / unități pot efectua doar accesuri de octet, cuvânt sau rafală.
Interconectare
Elementele de calcul pot avea diferite tipuri de interconectare, în afară de interfețele de bază de memorie / magistrală. Acestea pot include interfețe de rețea dedicate, dispozitive de acces direct la memorie ( DMA ), cutii poștale, FIFO și memorii de tip scratchpad , etc. și coerență.
Performanţă
Un sistem eterogen poate avea procesoare identice din punct de vedere al arhitecturii, dar care prezintă diferențe micro-arhitecturale care conduc la diferite niveluri de performanță și consum de energie. Asimetriile în capabilități asociate cu modele de programare opace și abstractizări ale sistemului de operare pot duce uneori la probleme de predictibilitate a performanței, în special cu sarcini de lucru mixte.
Partiționarea datelor
În timp ce partiționarea datelor pe platforme omogene este adesea banală, s-a demonstrat că, în cazul eterogen general, problema este NP-Complete. Pentru un număr mic de partiții, s-a demonstrat că există partiții optime care echilibrează perfect sarcina și minimizează volumul de comunicații.

Exemplu de hardware

Hardware-ul de calcul eterogen poate fi găsit în orice domeniu de calcul - de la servere de ultimă generație și mașini de calcul performante până la dispozitive încorporate de mică putere, inclusiv telefoane mobile și tablete.

Vezi si

Referințe