Page 1 of 1

Cell BE-PS3

Posted: 02 May 2012, 19:54
by iobalan
Am urmatorul cod ce va rula pe SPE-ul unui PS3:

#include<stdio.h>
#include<spu_mfcio.h>
#include<libmisc.h>

int nrjoburi __attribute__((aligned(12));

typedef struct {
int *forme;
int *pemasini;
int *diferenta;
} MYSTRUCT;


int main(unsigned long long speid,unsigned long long argp,unsigned long long envp) {
MYSTRUCT mystruct __attribute__((aligned(12));
nrjoburi=50;

int pemasini __attribute__((aligned(12));
int diferenta __attribute__((aligned(12));
int *forme;

unsigned int spu_id = spu_read_in_mbox();
int tag = 1, tag_mask = 1<<tag;
mfc_get(&mystruct,(unsigned int) argp,envp,tag,0,0);
mfc_write_tag_mask(tag_mask);
mfc_read_tag_status_all();
if(spu_id<7) mfc_get(&pemasini,(unsigned long int)mystruct.pemasini,4,tag,0,0);
if(spu_id==7) mfc_get(&pemasini,(unsigned long int)mystruct.diferenta,4,tag,0,0);

mfc_read_tag_status_all();
// printf("\n cucu ");

printf("End of SPU %i thread cu dimensiune %d\n",spu_id,pemasini);
return 0;
////.................................................. .....


Se observa prezenta comentariului la printf("\n cucu ");. Daca decomentez linia primesc o serie de erori. Acest cod va fi executat de pe PPE de un numar de ori (in functie de anumite criterii).
Erorile care apar datorita printf("\n cucu "); sunt:


-Illegal instruction- de obicei apare (in anumite cazuri) la prima rulare pe spe a codului(se executa codul doar pe cateva noduri)


-blocare program- apare dupa mai multe executii a fisierului spu

-de foarte putine ori functioneaza fara eroare


Ma poate ajuta cineva cu aceasta problema??

Multumesc!!!

Re: Cell BE-PS3

Posted: 03 May 2012, 14:40
by iobalan
alinierea e de 128 ...nu de 12