Sunteți pe pagina 1din 11

UNIVERSITATEA TEFAN CEL MARE SUCEAVA

FACULTATEA DE INGINERIE ELECTRIC I


TIINA CALCULATOARELOR

Implementarea algoritmilor de
calcul n analiza matematic pe
platforma CELL/B.E

ndrumtor :
S. L. Dr. Ing Tnase Andy Cristian

Masterand:
Pavl Costel Bogdan

CUPRINS

Cap1.
Cap2.
Cap3.
Cap4.
Cap5.

Tema Proiectului
Cell Broadband Engine Prezentare general
Procesare Power Element (PPE)
Matematica Computaional pe platforma CBEA
Grafic vectorial pe SPU (Synergistic Processing Units)

Cap6. Optimizarea programelor SPU


Cap7. Calculul line-of-sight
Cap8. Determinarea structurii PDF
Cap9. Enumerarea Polytope
Cap10. VLSI Design i Automatizare
Cap11. Organizarea VLSI
Cap12. Estimarea puterii VLSI
Cap13. Aplicaii
Cap14. Concluzii
Cap15. Bibliografie
Cap16. Anexe

2/11

Tema proiectului
Acest proiect const n practica de programare pe
Cell Broadband Engine precum i prezentarea unor
aplicaii. Se va porni de la proiectarea arhitecturii
Cell/B.E, ajungndu-se pn la aplicaiile specifice,
prezentate

cu

ajutorul

mediului

de

PlayStation 3, sub platforma Fedora Linux.

3/11

dezvoltare

Cell Broadband Engine Prezentare general


Cell Broadband Engine (CBE) const ntr-un nucleu principal PowerPC
Processing Element (PPE) care suport 8 Elemente de Procesare (SPE)
conectate mpreun la o memorie de mare capacitate al unui Element
Interconectat Bus (EIB).
n tabelul de mai jos avem msurtorile de performan Cell/B.E:

4/11

Matematica Computaional pe platforma


Cell Broadband Engine Arhitecture (CBEA)
Cele mai multe dintre lucrrile realizate pe platforma Cell Broadband
Engine au fost rulate n modul calculelor numerice de simpl-precizie n
contextul de prelucrare a imaginii, a calculelor matriciale i de procesare a
semnalului digital.
Aceast platform are capacitatea de a obine rezultate impresionante
datorit noului cip PowerXCell 8i care va mbunt i performanele ajungnd la
dublu-precizie.

5/11

Grafica vectorial
Acest capitol reprezint proiectarea i implementarea unor algoritmi
computaionali pentru paralelism n geometrie, sub forma unei zone unice de
instruciuni multiple de date. Aplicaiile de calcul de nalt performan n
geometrie utilizeaz Emotion Engine pe un cip consol de joc PlayStation 3.
Lum n considerare un polinom simplu rectilinear aa cum avem n figura
de mai jos. Acest polinom se ntlnete adesea n aplicaii CAD pentru VLSI i
arat a fi dou polinoame care se suprapun.

6/11

Organizarea VLSI
n acest capitol se va discuta despre problema organizrii VLSI (Very
Large Scale Integration) standard-cell, despre cum vom putea modela
aceast problem i implementarea la nivelul unei por i netlist BLIF
(Berkeley Logic Interchange Format).
Aceste modele BLIF sunt mapate utiliznd poarta la nivel de netlist
care sunt citite de ctre software-ul nostru apoi convertite ntr-un grafic
controlat de 6 SPU-uri. SPU (Synergistic Processing Units) poate rula
ntr-un mod cooperativ sau competitiv. n modul cooperativ SPU rezolv
diferite modele BLIF, iar n modul competitiv rezolv aceea i problem de
mai multe ori i cea mai bun soluie este aleas de ctre PPE (Power
Processing Element).

7/11

Aplicaie
Calcularea lui PI ()
Calcularea lui PI este raportul dintre numrul de puncte ce se afl ntr-un
cerc de raz r, atunci cnd acestea au fost generate ca puncte aleatorii i
situate pe suprafaa ptratului cu raza 2r.
Vom lua n considerare un ptrat cu
latura 2r apoi generm n puncte aleatorii
n acest ptrat. Pentru fiecare punct vom
calcula, de asemenea, dac acesta se
afl ntr-un cerc de raz r centrat n
ptrat. n cazul n care generatorul de
numere aleatorii este activat, numrul de
puncte care se afl n cerc trebuie s fie
proporional cu zona sa r2 i rezult:
sau echivalent:

8/11

n continuare vom scrie un program pentru a


genera puncte n pe fiecare din cele 6 SPU-uri i
apoi se va returna numrul de puncte care se afl
n interiorul cercului. Codul pentru simpl-precizie
este afiat n partea dreapt:

Pentru realizarea acestei aplicaii se deschide


maina virtual sub platforma Fedora Linux, apoi
se adaug sursa codului C++ n programul de
simulare Eclipse.

#include <spu_mfcio.h>
#include <stdio.h>
#include <math.h>
#include <mc_rand.h>
#include <spu_intrinsics.h>
#include "../util.h"
inline vec_float4 grx() {return
mc_rand_mt_minus1_to_1_f4();}
inline vec_float4 gry() {return
mc_rand_mt_minus1_to_1_f4();}
#define N 100000000
vec_uint4 CalcPI(int n) {
int i;
vec_uint4 Z=(vec_uint4){0,0,0,0};
vec_uint4 O=(vec_uint4){1,1,1,1};
vec_uint4 r=Z;
vec_float4 C=(vec_float4){0.25,0.25,0.25,0.25};
for(i=0;i<n;++i) {
vec_float4 x = grx(), y = gry();
vec_float4 x2 = spu_mul( x,x ),y2 = spu_mul( y,y
);
vec_float4 d2 = spu_add( x2,y2);vec_uint4 igt=
spu_cmpgt(d2,C);
vec_uint4 off = spu_sel(O,Z,igt); r = spu_add(r,
off);
}
return r;
}
int main( unsigned long long spuid,
unsigned long long argp ) {
int rc;
printf(" Hello, World! from %d with %d \n", spuid,
argp );
mc_rand_mt_init( spuid );
vec_uint4 r = CalcPI(N);
print_vector("r",&r);
int ans=spu_extract(r,0); ans +=
spu_extract(r,1);
ans += spu_extract(r,2); ans += spu_extract(r,3);
float apx_pi = 4*(float)ans/(float)(N);
printf("\n PI %f = %d/%d\n",apx_pi,ans,4*N);
return (0);
}

9/11

Concluzii

Implemetarea algoritmilor de calcul n analiza matematic pe


platforma CELL/B.E. const n practica de programare pe Cell
Broadband Engine avnd ca simulator programul Eclipse;

Generarea problemei de organizare Cell este realizat de


netlist i librria standard Cell;
Rezultatele experimentale privind circuitele ISCAS 89 arat
obinerea unor rezultate fiabile, ntr-un timp scurt dect cele
solicitate de la simulare;
Liniile tehnice de estimare a puterii i metodele pentru
calcularea activitii de comutare pot fi, de asemenea,
mprite n dou clase largi: dinamic i static.
10/11

V mulumesc !

11/11