Format: HTML | BibTeX | DC | EndNote | NLM | MARC | Journal | MARCXML
Thesis / ROMDOC-THESIS-2017-1307

Programming environment for parallel accelerators

Bîră, Călin
2013-12-13

Abstract: This thesis presents OPINCAA, a new programming environment truly cross-platform and future-proof, for emerging (parallel) accelerators, with enhancements to support debug and optimization (profiling and benchmarking tools including an auto-tuner) of host-accelerator systems. During the development of an architecture there is a need to see the impact of the design decisions on the software running time, but it is very time-consuming to develop every time a good-enough compiler. Using an assembler has its drawbacks. How to get the best out of both, sacrificing as little as possible but still being able to program a parallel machine in a convenient way ? This is the question this thesis answers. The core idea of this thesis is to use the host’s compiler to assemble JIT (just-in-time) or AOT (ahead-of-time) the instructions for the accelerator. The assembler syntax used to describe the kernels (program running on accelerator) is based on overloading of common C++ operators (+, -, *, &, ^, !, |, >>, <<) keeping the source-code portable across different hardware architectures. The decision tasks are performed via compiler, on host, but the intensive computation part is offloaded to the accelerator. Only one C++ program is needed, and only the host C++ compiler is needed for the whole system even if the host’s architecture differs strongly from the proprietary accelerator architecture: this feature makes OPINCAA truly cross-platform, and future-proof. The price paid for this flexibility is the need for manual register allocation on the accelerator. The hardware used for experiments was a Connex-S system (based on Zedboard development board and Zynq 7020 IC containing a Cortex-A9 dual core and FPGA in the same chip). The OS running on the Zynq was Xillinux, a simpler version of Ubuntu linux. Multiple hardware improvements were implemented in the SIMD accelerator built inside the FPGA. Benchmarking for AES128-ECB, SAD (sum of absolute differences) and SSD (sum of squared differences) revealed 4…6x improvement on a Connex-S system with 128 Execution Units against a Cortex-A9 (both systems consume similar electrical power, about 1.2W and are manufactured in 28 nm process) Această teză prezintă OPINCAA, un mediu de programare nou cu adevărat cross-platform și rezistent la schimbări exterioare viitoare, pentru noi acceleratoare (paralele), cu îmbunătațiri pentru a ajuta depanarea și optimizarea (scule software pentru caracterizarea și măsurarea aplicațiilor, inclusiv scule de auto-optimizare) sistemelor gazdă-accelerator. În timpul dezvoltării unei arhitecturi, apare nevoia de a vedea impactul deciziilor de design asupra timpului de execuție: dar este foarte consumator de timp să se dezvolte un compilator suficient de bun. Folosirea unui asamblor are dezavantajele sale. Cum să preluăm cele mai bune trăsături din ambele unelte, sacrificând foarte puțin, dar fiind capabili să programăm mașina paralelă într-o manieră convenabilă ? Aceasta este întrebarea la care această teză răspunde. Ideea de bază a acestei teze este de a folosi compilatorul gazdei pentru a asambla JIT (just-in-time) sau AOT (ahead-of-time) instrucțiuni pentru accelerator. Sintaxa asamblorului, folosită pentru a descrie kerneluri (programe ce rulează pe accelerator) este bazată pe supraîncărcarea unor operatori obișnuiți de C++ păstrând codul sursă portabil între arhitecturi hardware diferite. Task-urile de decizie sunt rezolvate de compilatorul de pe gazdă, dar partea de computație intensă este rulată pe accelerator. Doar un singur program C++ este necesar, și doar un compilator de C+ (cel de pe gazdă) este necesar pentru tot sistemul chiar dacă arhitectura gazdei diferă puternic de cea a acceleratorului: această trăsătură face OPINCAA cu adevărat cross-platform și tolerantă la schimbări viitoare. Prețul plătit pentru o asemenea flexibilitate este necesitatea alocării manuale de registre pe accelerator. Hardware-ul folosit pentru experimente este un sistem Connex-S (bazat pe placa de dezvoltare Zedboard si circuitul integrat Zynq 7020 ce conține un Cortex-A9 dual-core cu FPGA în acelașii cip). Sistemul de operare ce sulrează pe Zynq este Xillinux, o versiune mai simplă de Ubuntu linux. Mai multe modificări au fost aduse hardware-ului din acceleratorul SIMD de pe FPGA. Rularea benchmark-urilor AES128-ECB, SAD (sumă de diferențe absolute) și SSD (sumă de diferențe pătratice) a dezvăluit o creștere de performanță de 4 până la 6 ori pe un sistem Connex-S cu 128 unități de execuție față de un dual-core Cortex-A9 ce consumă acceași putere electrică de 1.2 W

Keyword(s): Calculatoare -- Programare -- Teză de doctorat ; Arhitectura calculatoarelor -- Prelucrare în paralel (Calculatoare) -- Teză de doctorat
OPAC: See record in BC-UPB Web OPAC
Full Text: see files

Record created 2017-05-26, last modified 2017-05-26

Similar records


 
People who viewed this page also viewed:
(254)  Optimizarea conceptuală şi operaţională a instalaţiilor chimice multiscop - Voinescu, Sorin - ROMDOC-BC_UPB-THESIS-2003-000000054
(249)  Tehnologiile informării şi comunicării : suport de curs - Curta, Olimpia - ROMDOC-BOOK-2007-005
(247)  Scientific Bulletin Series C:Electrical engineering - ROMDOC-Journal-2007-003
(243)  Managementul congestiilor în sistemele electroenergetice în prezenţa surselor regenerabile - Boambă, Claudia-Elena - ROMDOC-THESIS-2021-2325
(243)  Sisteme electronice de control automat a proceselor tehnologice din industria cimentului - Bernea, Florin George - ROMDOC-THESIS-2021-2312

 
Rate this document:
Be the first to review this document.


Discuss this document:
Start a discussion about any aspect of this document.