› Foros › PlayStation 3 › Scene
f5inet escribió:te doy un esquema algo resumido:
- create una cuenta en developerworks de IBM: http://www.ibm.com/developerworks creeme, vas a pasar mucho tiempo en esa pagina y es donde tendras la info mas actualizada y fidedigna. la cuenta es gratuita si mal no recuerdo si es para uso no lucrativo.
- necesitas Fedora Core 9 en la PS3. puedes empezar a programar en tu PC con Fedora Core 9 (o bien, desde windows, con virtualbox/vmware y virtualizando un linux fedora core 9) e instalar el full system simulator (de esto hablaremos mas abajo). en realidad puedes usar cualquier linux, pero IBM recomienda fedora9, puesto que es la distro con la que prueban el SDK (fedora 9 y redhat enterprise linux 5.2, pero la RHEL cuesta un dinerito).
- vete a la pagina de http://www.ibm.com/developerworks y descargate el IBM MULTICORE ACCELERATION SDK 3.1 (antiguamente se llamaba el CBEA SDK-Cell Broadband Engine Arquitecture SDK), te hace falta tanto la ISO del SDK que son unos 400 megas como el installer, que es un RPM de unos 20 megas (hablo de memoria, puedo fallar en las cantidades).
- instalas FedoraCore9 y el IBM Multicore Acceleration SDK 3.1 como pone el readme (necesitas ingles, lo siento, no recuerdo el proceso exacto)
- dentro del SDK te vendra el Eclipse, que es el IDE (el entorno integrado de desarrollo) que recomiendan en IBM para empezar. no se si esto ha cambiado en el SDK 3.1, y quizas el eclipse venga en el paquete de extras de SDK, de nuevo, leete el readme y la web de developerworks de IBM
- si estas programando directamente en la PS3 (menudo suicidio, vas a tirar de trashing en la PS3 con sus escasos 256MB y las sesiones de compilacion/depuracion a poco que tengas un proyecto mediano van a ser interminables), no necesitas nada mas, sigue un tutorial sobre 'new to multicore acceleration' (si, esta en IBM/developerworks, te dije que la cuenta te ¡ba a hacer falta) sobre la creacion de tu primer proyecto SPU, PPU y el uso del full system simulator.
- a poco que hagas trabajar la PS3, se te hara interminable el constante uso de SWAP, y si metes alguna vez la pata, tendras que reiniciar la maquina si has dejado los SPE en estado inestable (el comando top y spu-top seran tus amigos mucho tiempo para matar procesos) asi que llegara el momento que querras trabajar en una maquina de trabajar de verdad como es un PC con sus buenos 2 GB de ram (eclipse chupa una barbaridad). para esto necesitaras el full system simulator, por el cual 'emularas' un cell a traves de dicho simulador para hacer pruebas en tu PC sin necesidad de tocar la PS3
- si el programa que has desarrollado en el PC corre bien en el full system simulator, pasalo tal cual a la PS3 y ya puedes ejecutarlo. para esto seria recomendable que tanto en el PC como en la PS3 tengas fedora core 9, para no andar liando con problemas de librerias ni nada mas.
puede ser que me deje algo, pero vamos, bucea en el developerworks de IBM, que realmente ahi esta todo...
Psmaniaco escribió:Gracias por la ayuda,ya me he registrado en la web y ya he descargado el IBM MULTICORE ACCELERATION SDK 3.1 y el installer;el Fedora Core 9 ¿hay que instalarlo por fuerza en la PS3?lo digo por que ya tengo instalado el Yellow Dog 6.1(que esta basado en Fedora)¿no me serviria este mismo?
Voy a bajarme el Fedora Core para el PC a ver que puedo empezar a hacer.
Un saludo.
Psmaniaco escribió:Muchas gracias,voy a bajarme la Fedora Core 9 para x86 si esta me permite compilar para PPC mejor que mejor;acabo de hacer mis primeras pruebas del Cell en la PS3(algo sencillo por supuesto)lo he sacado de esta web:
http://www-128.ibm.com/developerworks/p ... index.html
y consiste en hacer pruebas con los vectores en la SPU(creo) e hice esto:
segui los pasos cree un archivo de texto llamado vec_test.c con este contenido:
#include <spu_intrinsics.h>
void print_vector(char *var, vector unsigned int val) {
printf("Vector %s is: {%d, %d, %d, %d}\n", var, spu_extract(val, 0),
spu_extract(val, 1), spu_extract(val, 2), spu_extract(val, 3));
}
int main() {
/* Create four vectors */
vector unsigned int a = (vector unsigned int){1, 2, 3, 4};
vector unsigned int b;
vector unsigned int c;
vector unsigned int d;
/* b is identical to a, but the last element is changed to 9 */
b = spu_insert(9, a, 3);
/* c has all four values set to 20 */
c = spu_splats((unsigned int) 20);
/* d has the second value set to to 5, and the others are garbage */
/* (in this case they will all be set to 5, but that should not be relied upon) */
d = spu_promote((unsigned int)5, 1);
/* Show Results */
print_vector("a", a);
print_vector("b", b);
print_vector("c", c);
print_vector("d", d);
return 0;
}
despues crear ese archivo use este comando creo que para crear un ejecutable:
spu-gcc vec_test.c -o vec_test
y despues ejecute el ejecutable con el comando bash:
./vec_test
y me respondio esto:
[root@dhcppc1 include]# ./vec_test
Vector a is: {1, 2, 3, 4}
Vector b is: {1, 2, 3, 9}
Vector c is: {20, 20, 20, 20}
Vector d is: {5, 5, 5, 5}
no se exactamente que es lo que habre hecho pero de momento parece que empiezo por buen camino.
Un saludo.
/* Create four vectors */
vector unsigned int a = (vector unsigned int){1, 2, 3, 4};
/* b is identical to a, but the last element is changed to 9 */
/* c has all four values set to 20 */
/* d has the second value set to to 5, and the others are garbage */
/* (in this case they will all be set to 5, but that should not be relied upon) */
Psmaniaco escribió:Pues no,no estoy muy puesto en la programacion en C,respecto a programar en x86 usando MMX/SSE/3DNOW pues no,nunca he compilado nada,de hay que no me aclare¿Que me recomiendas hacer?
Un saludo.