Cos'è Intel Thread Director e come funziona

4 novembre 2021

Con Alder Lake, Intel introduce per la prima volta su larga scala un’architettura CPU ibrida su PC x86-64. Per gestirne al meglio la capacità di calcolo, però, servono alcuni accorgimenti lato software e hardware.

Ads

I concetti di architettura ibrida e di computing eterogeneo sono ormai diffusi da decenni nel campo informatico ed alcuni esempi pratici sono da anni nelle tasche di tutti. Infatti la struttura big.LITTLE presente nei processori ARM, presenti su tutti gli smartphone in commercio, è proprio uno dei primi esempi di utilizzo a livello commerciale di architetture dotate di tipi diversi di core.

Al netto di un primo tentativo nel 2020 con Lakefield, che è stata una primissima prova (alquanto fallimentare) dell’introduzione di CPU ibride da parte di Intel, è la prima volta che un’architettura eterogenea sbarca su larga scala in ambito PC. Infatti, finora, i core delle CPU x86-64 presenti su desktop e laptop sono sempre stati della stessa tipologia ed architettura: un 5800X ha 8 core Zen3 uguali tra loro, un 11900K ha 8 core Cypress Cove uguali tra loro e così via.
Su Alder Lake i core sono di due diversi tipi: Golden Cove, concettualmente simili ai core presenti nelle architetture precedenti, e Gracemont, esplicitamente pensati per avere maggiore efficienza. Coordinare il lavoro tra loro, però, non è semplice.

La suddivisione tra P-Core Golden Cove ed E-Core Gracemont [non in scala]

Dall’alba del personal computing le architetture delle CPU si sono evolute moltissimo. Inizialmente c’erano solo singoli core scalari, che con il tempo si sono evoluti in core superscalari, ovvero capaci di parallelismo a livello di singole istruzioni; più in là sono stati introdotti sia più core su singola CPU sia core capaci di eseguire più thread in contemporanea (Simultaneous MultiThreading). Ma come si dirigono al meglio le capacità di calcolo di un processore? Serve uno scheduler.

# Cos’è uno scheduler

Uno scheduler, in breve, è una componente di ogni sistema operativo che serve a pianificate e gestire l’assegnazione di processi ed istruzioni ad un processore, che poi andrà ad eseguirli per restituire dei risultati. Lo scheduler è strettamente necessario sia per consentire il miglior sfruttamento dei core, senza lasciarne porzioni “in attesa”, sia per consentire il calcolo parallelo su più core.
Il corretto funzionamento di questo insieme di algoritmi prende in considerazione l’utilizzo istantaneo di ogni porzione del core, delle cache e dei limiti di temperatura e potenza del processore.

L’introduzione di CPU multicore e multithreaded ha già portato ad evoluzioni tecnologiche in questo ambito, come ad esempio il riconoscimento di core “fisici” e core “logici” presenti su CPU dotate di SMT/HT, ma nel caso di Alder Lake ci sono degli accorgimenti in più da prendere, in quanto i core sono di due diverse tipologie.

# Cosa cambia con Intel Thread Director

Per massimizzare la resa di Alder Lake, Intel ha introdotto Intel Thread Director, ovvero una soluzione mista hardware-software che consente di smistare le operazioni verso i core più adatti allo scopo. Il Thread Director utilizza un algoritmo pre-addestrato per riconoscere il tipo di carico in arrivo per dirigerlo ai core in base a 4 diverse classi:

  • Classe 0: maggior parte degli applicativi, in cui i P-Core hanno solo un moderato vantaggio di performance per clock;
  • Classe 1: applicativi con uso di estensioni AVX o AVX2, in cui i P-Core hanno un buon vantaggio sugli E-Core;
  • Classe 2: grande vantaggio prestazionale dei P-Core sugli E-Core, massima priorità, con eventuale utilizzo di estensioni AVX-VNNI (Vector Neural Network Instruction, per accelerazione AI/DL);
  • Classe 3: applicativi non scalabili ed operazioni di busy-looping. Solitamente assegnate agli E-Core.

Esempio di scheduling da parte del Thread Director

Intel Thread Director può inoltre prioritizzare i carichi paralleli assegnando lavoro prima agli E-Core che ai thread logici presenti sui P-Core, dato che questi ultimi solitamente aggiungono solo il 20-25% delle performance del singolo core.

# Windows 11: è obbligatorio?

Ma quindi Windows 11 sarà obbligatorio? Ni: attualmente il supporto completo al Thread Director è presente solo su Windows 11, mentre su Windows 10 i processori Alder Lake sono supportati ma tramite uno scheduling più generico, chiamato HGS (Hardware Guided Scheduling). Mentre Windows 11 è capace di riconoscere come si comportino i due diversi tipi di core in base a tipologia di lavoro e frequenza, Windows 10 applica un discrimine più semplicistico trattando gli E-Core come P-Core meno capaci e senza HyperThreading.

Il supporto a Linux e Windows 10 arriverà in futuro, ma non c’è ancora nessuna data certa.