Projects

< Back

HORIZONT KDT 101112274 ISOLDE

Other department members involved in this project: Mihai Antonescu, Călin Bîră, Adriana Georgiana Goian, Radu Hobincu, George Vlăduț Popescu, Vlad-Gabriel Șerbu, Gheorghe M. Ştefan, Andrei-Alexandru Ulmămei, Costin-Emanuel Vasile

Other persons involved in the project

Laurențiu-Mihai IONESCU, CSII
George-Iulian MARIN, Tehnician
Alin Gheorghiță MAZĂRE, CSII
Vasile Mădălin MOISE, Responsabil Proiect
Mihaela PANTAZICĂ, CSIII
Maria PĂTULEANU, Tehnician
Ionica Florentina STĂLINESCU, Tehnician
Marius Ciprian STOIAN, CSIII

Description:

Proiectul ISOLDE va avea sisteme și platforme de procesare RISC-V de înaltă performanță cel puțin la nivel TRL 7 pentru marea majoritate a blocurilor de construcție, demonstrate pentru domenii cheie de aplicații europene, cum ar fi automotive, spațiu și IoT, cu așteptarea ca la doi ani de la finalizare, performanța ridicată a componentelor ISOLDE vor fi utilizate în produse industriale de calitate.

Scopul muncii depuse în acest proiect, de către echipa Politehnica București (UPB), este crearea de scule software pentru design, depanare și utilizare a aplicațiilor care rulează inferența de rețele neurale (rețele descrise în format ONNX)

Descrierea lucrării
WP1 este împărțit în 4 sarcini. T1.1 definește cerințele și specificațiile diferiților demonstratori ISOLDE. Rezultatul său, mai întâi în D1.1 și ulterior consolidat în D1.3, va fi folosit de sarcinile T1.2 până la T1.4 pentru, cu cerințe suplimentare specifice domeniului din domeniile respectivelor sarcini, pentru a construi specificațiile și cerințele diverse module tehnologice și IP-uri dezvoltate în ISOLDE. Rezultatul acestor 3 sarcini va fi furnizat mai întâi în D1.1 și D1.2, iar ulterior consolidat în D1.3 și D1.4. Livrabilele WP1 sunt specificații și cerințe care conduc demonstranții și activitățile de dezvoltare tehnologică din WP2 paână la WP5 și pe analiza modelelor de afaceri open-source în WP6. În calitate de furnizori ai input-ului inițial, activitățile WP1 nu depind de alte WP.

Sarcina T1.1: Culegere de cerințe ale demonstratorilor și specificațiilor SoC-urilor de nivel înalt (M1-M12, Task Leader: TASI) Fiecare dintre domeniile de aplicație alese (Automotive, Spațiu, Casă inteligentă, IoT) va furniza T1.1 toate cerințele, atât funcționale, cât și nefuncționale, cel puțin de la următoarele subiecte: arhitectură (componente, interfețe, acceleratoare), metrici măsurabile și obiective (performanțe, consumul de energie, toleranța la radiații, valorile de securitate care urmează să fie utilizate), cerințele software (stive, instrumente, caracteristici ale software-ului de sistem, SW pentru cazurile de utilizare pentru demonstratori), standardul care urmează să fie
folosit/considerat. În această fază, cerințele vor fi disponibile în D1.1. Mai mult, D1.3 (Cerințe consolidate) va rafina cerințele colectate în D1.1 și le va consolida în specificații SoC de nivel înalt pentru fiecare dintre demonstratori. Mai mult, livrabilul va defini care dintre diferitele rezultate de la WP2-WP5 (procesoare și extensii, periferice HW și SW) va fi utilizat de fiecare demonstrant. Toți partenerii implicați în proiect în calitate de dezvoltatori ai demonstranților contribuie la definirea și perfecționarea specificațiilor.

Sarcina T1.2: Cerințe și specificații privind nucleele de fundație, interfețe, periferice și NoC (M1-M15, Task Leader: GSL). T1.2 va genera cerințe și specificații de nivel înalt pentru miezurile de fundație care vor fi dezvoltate în cadrul WP2 și verificarea acestora. Cerințele și specificațiile vor defini funcționalitatea minimă care trebuie furnizată de miezurile de fundație. T1.2 va specifica, de asemenea, extensiile specifice domeniului care sunt necesare pentru nucleele de fundație atunci când sunt aplicate în demonstratoarele ISOLDE, inclusiv definirea caracteristicilor de siguranță și securitate, interfețele dintre nucleele de bază care vor fi dezvoltate în cadrul WP2 și acceleratoarele care sunt dezvoltate în WP3 (contribuții la nivel de bază și interfață la lista de verificare pre-certificare). Primul set de cerințe va fi furnizat în D1.2. Pe măsură ce lucrările progresează în cadrul WP2, cerințele și specificațiile vor fi îmbunătățite și consolidate în D1.4.

Politehnica București: Specificație pentru lanțul de instrumente SW

Sarcina T1.3: Cerințe și specificații ale acceleratoarelor și extensiilor (M1-M15, Task Leader: UNITBV) T1.3 va defini cerințele și specificațiile specifice necesare pentru proiectarea și verificarea acceleratoarelor, extensiilor, caracteristicilor de siguranță și securitate personalizate în WP3. Cerințele funcționale și nefuncționale se referă la performanța acceleratoarelor și a extensiilor, operațiuni specifice care trebuie suportate în HW și alte posibile constrângeri care trebuie luate în considerare la definirea Arhitecturii setului de instrucțiuni a acceleratoarelor care vor fi proiectate. în WP3 și interfețe între acceleratoare și miezurile de fundație. În plus, pot exista informații suplimentare cu privire la domeniile de aplicație alese care trebuie transmise către WP3, cum ar fi oportunitățile de execuție în paralel, tipurile de paralelism găsite în aplicațiile țintă (de exemplu, Paralelism la nivel de date sau Paralelism la nivel de fir), precizia necesară pentru calcule (de exemplu, virgulă mobilă, virgulă fixă sau precizie mixtă). În plus, siguranța și aspectele de securitate ale aplicațiilor țintă vor fi analizate (inclusiv contribuțiile la nivel de extensie la lista de verificare pre-certificare) pentru a defini domeniile de interes pentru WP3. Primul set de cerințe va fi prezentat în D1.2. Cerințele consolidate vor fi prezentate în D1.4.

Politehnica București: Specificație pentru instrumente avansate pentru acceleratorul paralel cu mai multe nuclee
Politehnica București: Documentație pentru implementarea ONNX
Politehnica București: Specificație pentru mediu de rulare pentru utilizatorii finali

Sarcina T1.4: Cerințe și specificații pentru sistemele de operare și aplicații SW (M1-M15, Task Leader: FEN) T1.4 va defini cerințele și specificațiile legate de SW care urmează să fie dezvoltate în WP4 și planul său de testare. Acestea includ hipervizoare, sisteme de operare, drivere, biblioteci specifice aplicației, compilatoare, benchmark-uri, simulatoare și alte instrumente. Cerințele vor specifica modul în care SW va suporta nucleele RISC-V (NOEL-V și CVA6), interfețele,
acceleratoare, extensii și alte IP-uri HW. Această sarcină nu va defini doar cerințele funcționale SW, ci și cerințele nefuncționale pentru SW, în special siguranță și securitate, pentru aplicațiile și demonstratorii vizați, acoperind specificațiile pentru dezvoltarea de modele funcționale suplimentare necesare pentru proiectarea-explorarea spațiului, siguranță și aplicații de securitate, inclusiv contribuții la nivel SW la lista de verificare pre-certificare. Pentru specificarea cerințelor SW, va fi necesară intrarea din T1.1 referitoare la cerințele specifice domeniului. D1.2 va colecta o listă preliminară de cerințe pentru a facilita munca timpurie în WP4, în timp ce D1.4 va furniza versiunea consolidată a cerințelor.

Politehnica București: Specificații și documentație pentru biblioteci de nivel scăzut (accelerator paralel cu mai multe nuclee)

Descrierea lucrării în WP4

Consorțiul a identificat 3 grupuri diferite de SW care urmează să fie dezvoltate. Sarcinile din cadrul WP4 au fost definite în continuare acest criteriu, acesta este:

  • Sarcina 4.1 Proiectarea, implementarea și testarea software-ului sistemului;
  • Sarcina 4.2 Proiectarea, implementarea și testarea instrumentelor de dezvoltare a aplicațiilor;
  • Sarcina 4.3 SW pentru proiectarea și validarea HW.

Fiecare sarcină are subsarcini care vor fi coordonate de liderul sarcinii. WP4 va primi intrări de la WP1, WP2, WP3 și WP6, livrând ieșirile către WP5. Sarcina 1.4 din WP1 va furniza cerințele și specificațiile legate de SW pentru a acoperi toate nivelurile SW care urmează să fie dezvoltate în WP4. WP2 va oferi nuclee îmbunătățite bazate pe RISC-V, iar WP3 va furniza acceleratoare și extensii care îmbogățesc ecosistemul RISC-V, pe care SW îl va folosi. WP6 va oferi feedback către WP4 dacă ar putea apărea unele probleme legate de licențele software.

Rezultatele WP4 vor fi stimulate de WP5, unde integrarea diferitelor niveluri de SW va fi produsă sub formă de cazuri de utilizare/demonstratoare. De asemenea, va exista feedback în unele subsarcini pentru WP2 și WP3.

Sarcina T4.1 Proiectare, implementare și testare software de sistem (M3-M33, Task Leader: Politehnica București)

Această sarcină se va concentra pe proiectarea, implementarea și testarea software-ului de nivel scăzut executat de procesor și controlul acceleratoarelor și extensiilor. Această sarcină include sisteme de operare, hipervizoare și drivere, deci    au fost definite următoarele subsarcini.

4.1.1 Sisteme de operare
Această subsarcină este axată pe dezvoltarea și portarea sistemelor de operare în general pentru a fi utilizate de cazurile de utilizare și adaptările pentru gestionarea toleranței la erori (de exemplu, detectarea și recuperarea evenimentelor individuale cu sincronizare garantată). Vor fi abordate atât sistemele de operare cu uz general, cât și sistemele de operare în timp real.

4.1.2 Hypervisori
Un hypervisor care vizează dispozitivele încorporate securizate RISC-V va fi portat pentru aplicații securizate. Caracteristica distinctivă este „multitenancy”, ceea ce înseamnă că hypervisorul rulează mai multe aplicații dezvoltate de mai mulți furnizori de software, păstrând în același timp IP-ul respectiv. Cu alte cuvinte, un furnizor SW A poate avea încredere că un furnizor SW B nu va putea observa aplicația A, chiar dacă depanează aplicația B prin intermediul partiției spațiului. Hipervizorul va oferi, de asemenea, izolare temporală datorită politicii de programare.

4.1.3 Șoferi
Driverele vor fi dezvoltate în această subsarcină, sprijinind acceleratoarele și extensiile de inteligență artificială/învățare automată, prin urmare legat de WP3.

Contribuțiile partenerilor la sarcina T4.1
Politehnica București: Mediu de rulare pentru utilizatorii finali

Sarcina T4.2 Proiectarea, implementarea și testarea instrumentelor de dezvoltare a aplicațiilor (M3-M33, Task Leader: NXP-CZ)
Această sarcină abordează proiectarea, implementarea și testarea unui alt nivel de SW în raport cu T4.1, inclusiv compilatoare, biblioteci, SW pentru fluxul de proiectare și verificare și SW pentru acceleratoare, având sub-sarcina corespunzătoare:

4.2.1 Compilatoare
Pentru a permite utilizarea eficientă a unităților aritmetice personalizate, compilatorul LLVM va fi extins cu pluginuri pentru a gestiona automat precizia de calcul, precum și cu politici de reglare pentru a selecta cel mai bun compromis de precizie. Pentru a evalua vulnerabilitatea regiunilor de cod care manipulează secretele împotriva atacurilor de implementare, valorile definite în WP1 vor fi evaluate automat la nivel de compilator (LLVM). De asemenea, va fi abordată testarea compilatoarelor dezvoltate. Un timp de rulare și suport pentru compilator pentru OpenMP pentru RISC-V și suport pentru compilator pentru SIMD/Vector Accelerator și memoriile scratchpad.

4.2.2 Biblioteci
Bibliotecile pe mai multe niveluri (de exemplu, bibliotecă de matematică și control motor conform siguranței RISC-V) vor fi necesare pentru a interfața cu aplicațiile finale sau cu alte biblioteci pentru a accesa facilitățile HW subiacente. Această sarcină va aborda proiectarea și implementarea acestora, precum și testarea acestora.

4.2.3 SW pentru fluxul de proiectare și verificare
Nefiind punctul central al acestui proiect, instrumentele EDA open-source reprezintă un pilon important pentru suveranitatea tehnologică a Europei. Prin urmare, această sarcină secundară va furniza fluxuri open-source pentru proiectarea și implementarea nucleelor ISOLDE și a SoC-urilor demonstrative. Subsarcina va aborda furnizarea de instrumente open-source pentru verificarea nucleelor fundației RISC-V și a altor elemente de proiectare. Un flux R2G open-source va fi furnizat pentru a sintetiza și aranja nucleele, dar și demonstranții.

4.2.4 SW pentru acceleratoare
Această subsarcină va aborda proiectarea, implementarea și testarea software-ului pentru acceleratoare, inclusiv (dar fără a se limita la) pluginuri pentru LLVM, stratul de abstractizare HW pentru unitatea de procesare a tensorului și unitatea rădăcină de încredere, testarea unității rădăcină de încredere, proiectarea unui limbaj de afirmare la nivel HDL pentru modelele de flux de securitate în nuclee RISC-V sau extinderea instrumentelor LLVM pentru a sprijini utilizarea eficientă a acceleratoarelor.

Contribuțiile partenerilor la sarcina T4.2
Politehnica București: lanț de instrumente de bază pentru acceleratorul paralel cu mai multe nuclee (asamblare, depanare). Componente ale bibliotecilor de nivel scăzut pentru acceleratorul paralel cu mai multe nuclee pentru a sprijini calculul algebrei liniare. Instrumente avansate pentru acceleratorul paralel cu mai multe nuclee (profiler, tuner, simulator bazat pe modelul de aur). Implementarea funcțiilor din standardul ONNX.

Stack-ul SW are un SDK (SW Development Kit) și RTE (Run-Time Environment).

  • SDK va conține toate componentele pentru a depana și dezvolta aplicații pe deasupra acceleratorului HW: asamblator, depanator, profiler, tuner și biblioteci.
  • RTE va fi mediul livrat utilizatorului final.

D4.4 Implementarea instrumentelor de dezvoltare a aplicațiilor.

Livrarea instrumentelor de dezvoltare a aplicațiilor open-source și raportul listei de instrumente – WP4 M33

În concluzie, Politehnica București ar trebui să facă următoarele:


T1.2:
Specificații pentru lanțul de instrumente SW

T1.3:
Politehnica București: Specificație pentru instrumente avansate pentru acceleratorul paralel cu mai multe nuclee
Politehnica București: Documentație pentru implementarea ONNX
Politehnica București: Specificație pentru mediu de rulare pentru utilizatorii finali

T4.1: Mediu de rulare pentru utilizatorii finali

T4.2: Lanț de instrumente de bază pentru acceleratorul paralel cu mai multe nuclee (asamblator, depanator). Componente ale bibliotecilor de nivel scăzut pentru acceleratorul paralel cu mai multe nuclee pentru a sprijini calculul algebrei liniare. Instrumente avansate pentru acceleratorul paralel cu mai multe nuclee (profiler, tuner, simulator bazat pe modelul de aur). Implementarea funcțiilor din standardul ONNX.