4. Creşterea vitezei de execuţie a algoritmilor intensiv computaţio-nali cu ajutorul coprocesoarelor ataşate, bazate pe structuri logice reconfigurabi

Documente similare
PowerPoint Presentation

Sisteme cu FPGA şi Soft Processors

PROCESOARE NUMERICE DE SEMNAL

Interfețe și Protocoale de Comunicații Arduino-Port Paralel Arduino. Laborator 1- Portul Paralel 1 Caracteristici generale Arduino UNO este o placă de

Adresarea memoriei Modurile de adresare constituie un instrument principal pentru reprezentarea în memorie a imaginii datelor, aşa cum este ace

Microsoft Word - L63 FPGA.doc

Slide 1

1

Slide 1

Lucrarea 10

Kein Folientitel

Universitatea Transilvania Braşov Facultatea de Inginerie Electrică şi Ştiinţa Calculatoarelor Catera de Electronică şi Calculatoare Construcţia şi de

Slide 1

Discipline aferente competenţelor Facultate: Facultatea de Electronică şi Telecomunicaţii Universitate: UNIVERSITATEA POLITEHNICA DIN TIMIȘOARA Domeni

FIŞA DISCIPLINEI ARHITECTURA SISTEMELOR DE CALCUL 1. Date despre program 1.1 Instituţia de învăţământ superior Universitatea POLITEHNICA din Bucureşti

Microsoft Word - 2 ES RO.doc

Microsoft Word - 4-Interfete paralele.doc

Variante ale magistralei PCI

Sisteme de calcul în timp real

Microsoft Word - Alina-Mihaela ION - TEHNOLOGIA INFORMA?IEI CU APLICA?II

Microsoft Word - Tema 06 - Convertoare analog-numerice.doc

SSC-Impartire

Cuprins

Microsoft Word - intro_msp430.doc

Microsoft Word - TIC5

Microsoft Word - Notiuni de arhitectura calculatoarelor.doc

Microsoft Word - Microcprocesoare.doc

1. ARHITECTURA MICROPROCESOARELOR 1.1. Microprocesorul. Noțiuni generale Progresele tehnologice și electronice, înregistrate în ultimele decenii, au d

Microsoft Word - Lucrarea_10_t.doc

FIŞA DISCIPLINEI ANEXA nr. 3 la metodologie 1. Date despre program 1.1 Instituţia de învăţământ superior Universitatea Politehnica din Bucureşti 1.2 F

MINISTERUL EDUCAŢIEI NAȚIONALE UNIVERSITATEA TRANSILVANIA DIN BRAŞOV BRAŞOV, EROILOR NR. 29, , TEL , FAX Univers

ALGORITMII ŞI REPREZENTAREA LOR Noţiunea de algoritm Noţiunea de algoritm este foarte veche. Ea a fost introdusă în secolele VIII-IX de către Abu Ja f

2 BAZE TEORETICE ALE REȚELELOR DE CALCULATOARE CAPITOLUL 2 BAZE TEORETICE ALE REŢELELOR DE CALCULATOARE 2.1. Necesitatea standardizării (referenţierii

Microsoft Word - Laboratorul 3.doc

Capitole Speciale de Informatică Curs 1: Extragerea informaţiilor. Modelul boolean şi modelul boolean extins 27 septembrie 2018 Extragerea informaţiil

PowerPoint Presentation

Interfețe seriale

Microsoft Word - 5_ _Eval_ ETC_master_ESI_AnI-II_completat.doc

SCD-Procesoare-1

De la BIT la procesor

Microsoft Word - Curs1.docx

Sistem de supraveghere video inteligent cu localizarea automata a evenimentelor de interes SCOUTER, cod proiect PN-II-IN-DPST , contract nr

LUMINIŢA SCRIPCARIU

Ch

Proiectarea Sistemelor Software Complexe

Cartelele telefonice

PROCESOARE NUMERICE DE SEMNAL

METODE NUMERICE ÎN INGINERIE

FIŞA UNITĂŢII DE CURS/MODULULUI MD-2004, CHIŞINĂU, BD. ȘTEFAN CEL MARE, 168, TEL: , TEHNOLOGII INFORMAŢIONALE APLICATE 1. Date

Informatică aplicată TEST GRILA TEST GRILĂ - REZOLVAT 1.Structura de principiu a unui sistem de calcul contine urmatoarele componente principale: A. u

ALGORITMICĂ. Seminar 3: Analiza eficienţei algoritmilor - estimarea timpului de execuţie şi notaţii asimptotice. Problema 1 (L) Să se determine număru

SSC-Introducere-2

Nr

Microsoft Word - Ghid_practica_2009.doc

Fâciu N. Maria-Ema CASA CORPULUI DIDACTIC BRĂILA PROGRAM DE FORMARE INFORMATICĂ ȘI TIC PENTRU GIMNAZIU CLASA A V-A SERIA 1 GRUPA 2 CURSANT: Fâciu N. M

Operatorii in C Expresii Operatori aritmetici Operatori de asignare Operatori de incrementare si decrementare Operatori relationali Operatori logici O

MD-2045, CHIŞINĂU, MD – 2004, bd

5_2012_2013_AC_PI_C_Anii_III-IV.xls

1. Operatii cu matrici 1 Cerinte: Sa se realizeze functii pentru operatii cu matrici patratice (de dimensiune maxima 10x10). Operatiile cerute sunt: A

programă şcolară pentru clasa a 11a, liceu

Microsoft Word - 11_Evaluare ETC_master_Master_ESI.doc

Cuantizare Vectoriala.doc

PowerPoint-Präsentation

Școala: Clasa a V-a Nr. ore pe săptămână: 4 Profesor: MATEMATICĂ Clasa a V-a Aviz director PLANIFICARE CALENDARISTICĂ ORIENTATIVĂ Nr. crt. Unitatea de

Ministerul Educaţiei al Republicii Moldova Centrul de Excelenţă în Informatică şi Tehnologii Informaţionale "Aprob" Directorul Centrului de Excelenţă

Document2

Ghid de referinţă rapidă pentru Seria ZT400™

Paradigme de programare

Microsoft Word - 1_ILUMINATUL ELECTRIC_Marimi & unitati fotometrice_corectat_ulterior.doc

Slide 1

Microsoft Word - Prelegere 1 - Bratu C. - Microcontrolerul.doc

I. DATE STATISTICE PRIVIND ACTIVITATEA INSTANŢEI ÎN ANUL 2018 I.1. Volumul de activitate I.1. Volumul de activitate la nivelul instanţei În anul 2018,

Concepte de bază ale Tehnologiei Informației

Microsoft Word - 2 Filtre neliniare.doc

COMISIA EUROPEANĂ Bruxelles, C(2019) 1294 final REGULAMENTUL (UE) / AL COMISIEI din de modificare a Regulamentului (UE) 2017/2400

METODE PRACTICE DE IMPLEMENTARE A LABORATOARELOR VIRTUALE ONLINE PENTRU DOMENIUL ELECTRONICII SAU AUTOMATICII METHODS FOR THE IMPLEMENTATION OF ONLINE

Microsoft PowerPoint prezentare strategie MHz.ppt

Anexa Invitație de participare (CO-B) Proiectul privind Învățământul Secundar (ROSE) Schema de Granturi pentru Licee Beneficiar: LICEUL TEOLOGIC

FIŞA DISCIPLINEI

Gateway Cloud Turck

MINISTERUL EDUCAŢIEI AL REPUBLICII MOLDOVA COORDONAT: _ J _ 2016 Nr. de înregistrare a olanului de UNIVERSITATEA DE STAT DIN MOLDOVA APROBAT: SENATUL

Advance CAD 2016 SP1 Acest document descrie îmbunătățirile pentru Advance CAD 2016 Service Pack 1. Notă: Advance CAD 2016 Service Pack 1 este compatib

Slide 1

Realizarea fizică a dispozitivelor optoeletronice

Microsoft Word - Lansare proiect POSDRU (2)

L4. TEOREMELE ALGEBREI BINARE. FUNCȚII LOGICE ELEMENTARE. OPERAȚII LOGICE PE BIT. SINTEZA FUNCȚIILOR LOGICE DIN TABELE DE ADEVĂR 1. Obiective Prin par

Modul Modbus ASCII SISTEME DE COMUNICATIE CURS 5 - Constantinescu Catalin Atunci cand se foloseste modul MODBUS ASCII fiecare octet din mesaj

PROGRAMARE ORIENTATA PE OBIECTE

XPS Configurare şi specificaţii

Soclu cu temporizator încorporat pentru seria 34 Elevatoare și macarale Mașini de împachetare Semaforizare SЕRIA 93 Mașini de îmbuteliere Depozite gli

Project Work-Based Learning in the Field of Mechatronics: Introducing VET Multipliers to Alternate Work-Based Learning in Romania and Macedonia PROIEC

PLAN DE ÎNVĂŢĂMÂNT începând cu anul universitar Fundaţia Sapientia - Universitatea Sapientia din Cluj-Napoca Facultatea: Ştiinţe Tehnice şi

Microsoft Word - O problema cu bits.doc

Microsoft Word - TIC_tehnoredactare_12.doc

GHERCĂ MAGDA CASA CORPULUI DIDACTIC BRĂILA PORTOFOLIU EVALUARE INFORMATICĂ ȘI TIC PENTRU GIMNAZIU CLASA A V-A Neamț SERIA 1 GRUPA 1 CURSANT: GHERCĂ G

NPC

AMPLASAREA STAŢIILOR ELECTRICE Acest capitol reprezintă o descriere succintă a procesului de proiectare a unei staţii electrice de transformare sau de

UNIVERSITATEA DE ŞJATJTIN MOLDO' APROBAT: SENATUL USM din Proces verbal nr. Facultatea de FIZICĂ şi INGINERIE PLAN DE ÎNVĂŢĂMÂNT Nivelul calificării c

LUCRAREA 8 PROGRAMAREA NELINIARĂ ÎN REZOLVAREA PROBLEMELOR DIN ENERGETICĂ. METODE DE ORDINUL Aspecte generale Programarea neliniară are o foart

Transcriere:

4. Creşterea vitezei de execuţie a algoritmilor intensiv computaţio-nali cu ajutorul coprocesoarelor ataşate, bazate pe structuri logice reconfigurabile (FPGA). 4.1.Introducere. Având în vedere limitările ce caracterizează prelucrarea serială, încă de la început, cercetările în domeniul Calculului de Înaltă Performanţă (CIP) s-au orientat către noi abordari, bazate pe procesaore mai performante, pe sisteme multiprocesor, pe prelucrarea paralelă s.a. Aceste noi abordari s-au lovit, iniţial, de o serie obstacole în privinţa paralelizării limitate şi a vitezei scăzute a comunicaţiilor între procesoare. Toate acestea au condus, în etapa de început a CIP, la realizarea de sisteme cu un număr redus de procesoare, de ordinul zecilor. Pe măsura dezvoltarii cercetărilor în domeniu s-au găsit soluţii pentru obstacolele menţionate mai sus: legături de bandă largă între procesoare, noi algoritmi care au condus la un schimb de date mai puţin intens între procesoare, paralelism grosier, procesoare performante la costuri scăzute, soluţii care au facilitat apariţia unor sisteme de prelucrare constituite din sute de procesoare. Cu toate că stadiul actual al domeniului CIP se caracterizează prin existenţa unor sisteme formate din mii de procesoare, cu interconexiuni de bandă largă şi latenţă redusă, aceste sisteme prezintă limitări pentru anumite aplicaţii. Astfel, în cele din urmă, regia impusă de calculul paralel prevalează în raport cu avantajele aduse de multiprelucrare, performanţa tinzând asimptotic către o limită dată. În dorinţa de a depăsi limitările amintite, cercetătorii s-au orientat către noi tipuri de procesoare, bazate pe Arii de Porţi Reprogramabile (Field Programmable Gate Array- FPGA). Acestea, spre deosebire de paralelismul grosier, implementat pe sisteme multiprocesor, oferă noi oportunităţi de implementare a calculului: paralelism fin-masiv şi bandă de asamblare, în cadrul procesorului FPGA individual. FPGA permite realizarea temporară a unui circuit la cerere, care soluţioneaza o problemă concretă, în condiţiile generării unor resurse hardware suficiente, pentru a exploata paralelismul intrinsec, la nivelul fluxului de date, al algoritmului. Astfel, într-un singur ciclu de ceas se pot executa toate calculele pentru care datele sunt disponibile, ceea ce ofera avantaje substanţiale în raport cu prelucrarea serială tradiţională. Procesoarele bazate pe FPGA nu sunt lipsite de inconveniente. Acestea se manifestă prin dificultăţile de implementare a sarcinilor microprocesoarelor convenţionale, legate de rularea sistemelor de operare şi execuţia de operaţii seriale cum ar fi conectarea la reţele, citirea şi scrierea de la/ la unităţile de discuri. Astfel, se explică prezenţa unui microprocesor/microcontroler în asociere cu un circuit FPGA, pe 1

aceeaţi plachetă, pentru implementarea acestor operaţii. Placheta se conectează la un sistem gazdă prin porturi diferite (serial, paralel, USB, ethernet etc) sau pe magistrale de tip ISA, PCI s.a., jucând rolul de coprocesor accelerator. În vederea evaluarii corecte a soluţiei coprocesor FPGA, pentru o aplicaţie dată, trebuie examinate limitările de bandă, atât ale hardware-lui, cât şi ale algoritmului, în ceea ce priveşte transferul datelor între sistemul gazda şi coprocesorul FPGA. Dacă acesta din urmă este lent, nu se pot pune în valoare avantajele utilizarii coprocesorului FPGA, pentru accelerarea calculelor. În cele ce urmează se vor examina câteva tehnici de evaluare a unor asemenea soluţii. 4.2. Decizii privitoare la hardware. Circuitele FPGA au fost iniţial utilizate în sistemele încorporate (embedded) pentru înlocuirea logicii convenţionale, realizată cu circuite integrate pe scară simplă/medie, cu un singur circuit FPGA. Pe măsura ce complexitatea circuitelor FPGA a crescut, ele au fost plasate pe plachete dedicate, în scopul cuplării lor la sisteme gazdă, construite cu ajutorul microprocesoarelor convenţionale. Astfel, s-a conturat ideea utilizării acestor plachete ataşate pentru a accelera unele taskuri ale aplicaţiilor rulate pe sistemul gazdă, taskuri caracterizate prin posibilităţi de paralelizare. Aceste posibilităţi nu ar fi putut sa fie exploatate de procesorul serial, din sistemul gazda. Pentru a obţine performanţa impusă de aplicaţie, este necesar să se asigure o conexiune cu lărgime mare de bandă între placheta ataşata şi sistemul gazdă. Plachetele ataşate, conectate la sistemele gazdă, prin magistrale relativ lente (VME, PCI), care nu suportă operaţii aritmetice pe 64 de biţi, din cauza resurselor hardware limitate, nu satisfac necesităţile impuse de CIP. Stadiul actual al dezvoltării domeniului FPGA asigură resursele hardware necesare pentru implementarea a zeci de unităţi funcţionale pe 64 de biţi. Astfel, utilizând circuitul Xilinx- Virtex-4 LX200 se pot implementa, teoretic, circa 70 unităţi de înmultire în virgulă mobilă sau 128 de sumatoare în virgulă mobilă [42], [43]. În ceea ce priveşte conexiunea de bandă largă între sistemul gazda şi placheta ataşată, s-a apelat la interfeţe mai rapide cum sunt PCI-X sau HT (Hyper Transport). Dacă în cazul interfeţei PCI se lucra la o frecvenţă de 33MHz şi o lungime de cuvânt de 32 de biţi, ceea ce asigura o lărgime totală de bandă de 133MB/s, în cazul interfeţei PCI-X frecvenţa de lucru este de 133MHz, cu cuvinte de lungime de 64 de biţi, ceea ce conduce la o lărgime totală de bandă de 1.064 MB/s. 2

Interfaţa HT, care se bazează pe un protocol de conectare a dispozitivelor direct la procesor, avand o latenţă minimă, asigurăo lărgime de bandă de 1,6 GB/s, în fiecare direcţie. În continuare se vor evalua performanţele teoretice ale celor trei interfeţe: PCI, PCI-X şi HT [44]. Se va presupune că în memoria sistemului gazdă se află stocate 1.000 de numere în virgulă mobilă, pe 64 de biţi, la care se intenţionează să se adune, cu ajutorul plachetei ataşate un numar constant, pe 64 de biţi, în virgulă mobilă. Un număr va avea 8 octeţi, deci la transferul cu placheta ataşată se vor transmite 8.000 octeţi într-un sens şi tot atâţia în sens invers. Pentru a calcula durata transferurilor, în ambele sensuri, se va folosi formula: ceea ce se va concretiza în: T interfaţă = 2 x N r. Octeţi/Lărgimea_de_bandă interfaţă (4.1) T PCI = 2 x N r. Octeţi/Lărgimea_de_bandă PCI = 2 x (8.000/133)/( 1024 x1024) 114,73 μs T PCI-X = 2 x N r. Octeţi/Lărgimea_de_bandă PCI-X = 2 x (8.000/1.064)/(1024 x 1024) 14,34 μs Interfaţa HT poate transfera simultan în ambele direcţii: T HT = N r. Octeţi/Lărgimea _de_bandă HT = (8.000/1,6)/(1024 x 1024 x1024) 4,65 μs În continuare se neglijează timpul de adunare în circuitele implementate pe placheta ataşată. Se consideră că operaţiile vor avea loc în sistemul convenţional gazdă, care: funcţionează la o frecvenţă de 2,5 GHz, manipulează numere de 64 de biţi şi execută o operaţie de adunare într-un ciclu de ceas. Astfel, în procesorul gazdă 1.000 de adunări vor fi efectuate în 0,4 μs, în condiţiile disponibilitaţii operandului într-un ciclu de ceas. Lărgimea de bandă procesor- memorie este de 6,4 GB/s, ceea ce conduce la un timp total de transfer, în ambele sensuri, dat mai jos: T P-M = 2 x N r. Octeţi/Lărgimea_de_bandă P-M = 2 x (8.000/6,4)/(1024 x 1024 x1024) 2,33 μs 3

Fig. 4.1. Timpii de transfer şi calcul pentru diverse arhitecturi de interconectare. Din acest exemplu, simplificat, se poate constata că soluţia bazată pe procesorul convenţional, din sistemul gazdă, în ipoteza că timpul de calcul pe placheta ataşată este neglijabil, va fi mai performantă. Performanţa poate fi puternic influenţată de lungimea cuvintelor transferate şi prelucrate. Dacă în locul cuvintelor în virgula mobilă, pe 64 de biţi, vor fi utilizate cuvinte întregi pe 8 biţi, timpii de transfer între sistemul gazdă şi placheta ataşată se vor reduce de 8 ori: T PCI = 14,34 μs T PCI-X = 1,79 μs T HT = 0,58 μs Astfel, soluţiile PCI-X şi HT devin mai performante decât soluţia bazată pe sistemul convenţional. În practică performanţa soluţiei Magistrală Procesor-Memorie este dată de modul în care microprocesorul manipulează datele pe 8 biţi. De exemplu, datele pot fi împachetate câte 8 pe un cuvânt de 64 de biţi, ceea ce presupune efectuarea de deplasări şi mascări, pentru accesul la nivel de cuvânt de 8 biţi. Toate acestea vor contribui la reducerea performanţei soluţiei Magistrala Procesor-Memorie, favorizând utilizarea plachetei ataşate, echipate cu circuit FPGA. 4.3. Cerinţele aplicaţiei. Avantajele utilizării FPGA-urilor ataşate sunt evidente în cazul algoritmilor intensivcomputaţionali, când ponderea timpilor de transfer este mică în comparaţie cu timpul de calcul. În scopul ilustrării observaţiei de mai sus se vor compara performanţele celor trei tipuri de interfeţe: PCI, PCI-X şi HT, în condiţiile implementării pe placheta ataşată, care conţine un 4

circuit FPGA, a doua subrutine DAXPY şi DGEMM, din BLAS (Basic Linear Algebra Subroutines). Algoritmii care stau la baza acestor subrutine sunt descrişi mai jos. DAXPY este o operaţie, pe 64 de biţi din BLAS, în care un vector X este înmulţit cu o constantă a şi adunat cu alt vector Y, având forma de mai jos, unde n este numărul de componente ale vectorilor: for i = 1 to n y(i)=a*x(i)+y(i) end Pentru fiecare rezultat individual se vor efectua: doua transferuri (x(i), y(i)), doua operaţii aritmetice ( *, +) şi un transfer al rezultatului (y(i)). Dacă se ia pentru n valoarea 1000, se pot utiliza argumentaţia şi rezultatele calculelor de la paragraful 4.2, pentru tansferurile operanzilor şi ale rezultatului se obţin, în cazul arhitecturilor PCI, PCI-X, HT, următoarele valori: T PCI = 172,2 μs T PCI-X = 21,6 μs T HT = 9,2 μs S-au neglijat întârzierile asociate operaţiilor aritmetice în FPGA, deoarece au loc în circuite combinaţionale şi se suprapun cu operaţiile de transfer. Pe de altă parte, dacă microprocesorul este organizat în bandă de asamblare, se poate considera că operaţiile de înmulţire şi adunare au loc într-un ciclu de ceas. Timpul total al operaţiilor aritmetice fiind de 0,4 μs. La o lărgime de bandă a magistralei Procesor-Memorie de 6,4 GB/s se obţine pentru transferul a 1000 de valori pe 64 de biţi un timp de 1,2 μs. Astfel, timpul total de transfer şi calcul pentru sistemul gazdă va fi de: 3 x 1,2 μs + 0,4 μs = 4 μs. Rezultatele obţinute sunt prezentate mai jos: Fig. 4.2. Timpii de transfer si calcul al DAXPY-BLAS, pentru diverse arhitecturi de interconectare. Soluţia care presupune efectuarea operaţiilor la nivelul sistemului gazdă este mai eficientă în 5

condiţiile unor algoritmi mai puţin intensivi-computaţionali şi cu date mai puţine. Pentru a exemplifica influenţa algoritmilor intensivi-computaţionali asupra performanţei, se va considera subrutina DGEMM-BLAS, care asigură înmulţirea a două matrici n x n cu operanzi pe 64 de biţi. Se observă că algoritmul posedă doua bucle imbricate: for i = 1 to n for j = 1 to n c(i,j) = 0 for k = 1 to n c(i,j) = c(i,j) + a(i,k) * b(k,j) end end end Matricile care se înmulţesc sunt A şi B, cu dimensiunile n x n; matricea care rezulta C are aceeaşi dimensiune n x n. Astfel, pentru a se citi operanzii A şi B sunt necesare 2.n 2 transferuri spre circuitul FPGA, iar pentru stocarea rezultatului C în memoria sistemului gazda, alte n 2 transferuri. În ceea ce priveşte calculul propriu-zis, acesta constă într-o înmulţire şi o adunare, în bucla internă triplu imbricată, ceea ce conduce la 2.n 3 operaţii. Aceasta subrutina este evident computaţional-intensivă. Evaluarea timpilor de transfer pentru încărcarea componentelor matricilor A şi B (2 x 8000 2 octeţi), cât şi pentru stocarea componentelor matricei produs C (8000 2 octeţi), utilâzand interfeţele PCI, PCI-X şi HT, în situaţia n = 1000, conduce la următoarele valori: 1080 ms, 115 ms, 75.2 ms. În implementarea pe sistemul gazdă se obţin următoarele rezultate: timpul de transfer al datelor iniţiale din memorie la procesor şi al rezultatului de la procesor la memorie: 28 ms şi 800 ms. Admiţând că se neglijează timpul de calcul în FPGA, soluţia bazată pe sistemul gazdă este comparabilă cu cea în care se foloseşte interfaţa PCI, dupa cum reiese din tabelul de mai jos, şi devine net dezavantajoasă în cazul prelucrării matricilor cu n > 1000. Fig. 4.3. Timpii de transfer si calcul al DGEMM BLAS, pentru diverse arhitecturi de interconectare. 6

Până acum s-a neglijat timpul de calcul în circuitele FPGA, ceea ce nu corespunde realităţii, cu toate că acest timp de calcul este sensibil mai mic decât timpul de calcul al procesorului. 4.4. Calculul vitezei de operare a circuitelor FPGA. Numărul de operaţii realizate de către un circuit FPGA, într-un ciclu de ceas, depinde de lărgimea de bandă a memoriei din structura acestuia. Circuitul Xilinx Virtex-4 LX200 posedă 336 Blocuri RAM (BRAM), cu porturi duale, la o capacitate de 1024 cuvinte de 18 biţi/bram. Pentru a obţine un operand de 64 de biţi trebuie efectuate două citiri, din două blocuri BRAM, adică 4 cuvinte de 18 biţi. Astfel, lărgimea de bandă BRAM, pentru cuvinte de 64 de biţi, este de 336/2 = 168 cuvinte într-un ciclu de ceas. Fiecare parcurgere a buclei interioare a subrutinei DGEMM necesită citirea a două cuvinte a(i,k), b(k,j) şi stocarea unui rezultat c(i,j), ceea ce conduce la execuţia a 168/3 = 56 de bucle interioare, într-un ciclu de ceas. Circuitul LX200 dispune de resure hardware capabile sa implementeze 128 de sumatoare sau 70 multiplicatoare pe 64 de biţi, cu condiţia să nu mai fie necesară realizarea altor circuite logice în FPGA-ul dat. Astfel, se poate aprecia că circuitul LX200 dispune de 30 sumatoare şi de 30 multiplicatoare pe 64 biţi. Subrutina DAGEMM necesită 2 x 1.000 3 operaţii. În situaţia în care se efectuează 56 de operaţii într-un ciclu de ceas, la o frecvenţă a ceasului de 200MHz, pentru circuitul dat, vor fi necesare 2 x 1.000 3 /56 x 200 x 10 6 = 178,6 ms, în vederea efectuării tuturor calculelor. Dacă la această valoare se adaugă durata transferului HT, de 112,8 ms se obţine un timp total (calcul + transfer) de 291,3 ms, sensibil mai mic decât cel înregistrat în cazul soluţiei bazate pe sistemul gazdă, de 828 ms. Mai jos se dau timpii: transfer + calcul şi reducera timpului total faţă de soluţia gazdă ai execuţiei subrutinei DGEMM -BLAS, pentru diverse arhitecturi de interconectare placheta FPGA- calculator gazdă.. Examinarea tabelului de mai sus evidentiază faptul că numai arhitectura bazată pe interfaţa PCI este inferioară ca performanţa soluţiei convenţionale, în timp ce soluţiile PCI-X şi HT sunt de circa 2,4 şi, respectiv, 3 ori mai rapide. În măsura în care intensitatea calculelor creşte, reducerile timpilor totali vor fi mult mai accentuate. Producătorii de circuite FPGA sunt într-o continuă competiţie pentru a mări 7

cantitatea de resurse hardware pe circuit, cât şi pentru a mări frecvenţa de lucru a ceasului. Toate acestea contribuie la alegerea unor soluţii bazate pe circuite FPGA, pentru implementarea algoritmilor intensivi- computaţionali. Spre exemplu, algoritmii caracterizaţi prin manipularea de octeţi nealiniaţi impun ca procesorul să efectueze operaţii de deplasare şi mascare, pentru extragerea grupului dat de biţi, la nivelul fiecărui cuvânt. Fig. 4.4. Timpii transfer + calcul şi reducera timpului total faţă de soluţia gazdă ai DGEMM -BLAS, pentru diverse arhitecturi de interconectare. În cazul soluţiei FPGA operaţiile se pot efectua în paralel, pe grupuri. În lucrarea [45], care se referă la implementarea FPGA a algoritmului Smith-Waterman, folosit pentru decodificarea codului genetic, se arată o creştere de viteză a calculelor, de 64 de ori, faţă de soluţia convenţională. Datele despre amino-acizi, reprezentate pe 5 biţi, au fost prelucrate cu 24 de unităţi pentru întregi. În scopul utilizării avantajoase a FPGA-urilor, uneori, se apelează la reducerea preciziei, pentru a scădea cantitatea de date transferate şi a creşte numărul de operaţii efectuate într-un ciclu de ceas. Cantitatea de date transferate se va reduce la jumatate, numărul de unităţi funcţionale şi de BRAM-uri implementate în FPGA se va dubla, în condiţiile utilizării preciziei simple pe 32 de biţi. Lucrarea [46] prezintă o aplicaţie în care datele pe 32 de biţi, în virgula mobilă, precizie simplă, au fost convertite în virgulă fixă pe 16 biţi, pentru a se calcula Transformata Fourier Rapidă. Rezultatele reprezentate ca întregi pe 32 de biţi au fost trunchiate pentru a se obţine mantisele de 23 de biţi, ale reprezentărilor în virgula mobilă, precizie simplă. În urma comparării acestor rezultate cu cele obţinute prin soluţia clasică, folosind aritmetica în virgulă mobilă, precizie simplă, s-a constatat aceeaşi precizie. 8

4.4. Consideraţii de ordin practic. Utilizarea circuitelor FPGA pe plachete ataşate, pentru accelerarea unor algoritmi intensivicomputaţionali, presupune un proces de evaluare, care trebuie sa aibă în vedere aspecte ca: - lărgimea benzii căii dintre memoria microprocesorului şi FPGA; - dimensiunea şi viteza de lucru ale FPGA; - cantitatea de memorie asociată circuitului FPGA; - cerinţele algoritmului care va fi mapat în circuitul FPGA. După ce s-a ajuns la concluzia că o soluţie bazată pe FPGA conduce la o accelerare a calculului, trebuie să se aibe în vedere alţi factori, care sunt de natură să creeze dificultăţi în procesul de implementare optimă, în vederea obţinerii performanţei aşteptate: - selectarea uneltelor de proiectare potrivite; - lipsa de experienţă a dezvoltatorului, care nu poate scrie un cod eficient. Dezvoltatorul se poate confrunta cu o multitudine de platforme de proiectare, elaborate de numeroase companii [47]. La nivelul cel mai de jos, dezvoltatorul poate elabora proiectul într-un limbaj de descriere hardware (HDL), cum ar fi VHDL sau Verilog, care oferă un control direct asupra proiectului, pentru a obţine cea mai bună performanţă. Aceşti dezvoltatori sunt experţi în hardware şi nu în programarea aplicaţiilor din domeniul CIP. La capătul superior al ierarhiei de niveluri de descriere sa află limbajele de nivel înalt, care estompează complexitatea HDL, uşurând programarea FPGA, pentru programatorii din domeniul CIP. Aceste facilităţi pot anula, în unele cazuri, avantajele soluţiilor bazate pe FPGA. Circuitele configurabile sunt în continuă dezvoltare şi inovare, ceea ce necesită, din partea proiectanţilor urmărirea cu atenţie a apariţiei de noi circuite, cât şi a platformelor de dezvoltare. 9