(no subject)

Jun 28, 2009 18:06

Ура! наконец то руки дошли покодить что-нибудь для PS3.
бедной фантазии хватило только на цикл с умножением, зато результаты странные получились.
я совсем обленился: вычисления делаются в одном цикле, никакого распараллеливания :(


Если сформулировать тест человеческим языком: сколько нужно времени что бы миллиард раз выполнить 4 умножения.

#include "stdio.h"
#include "time.h"

long int timing = 0;
void print_timing(char*comment){
printf("%0.2lf s\t%s\n", (time(0) - timing + 0.0)/1, comment);
timing = time(0);
}

int main(){
timing = time(0);
print_timing("started");
int i;
float f1=1, f2=1, f3=1, f4=1;
float f5 =1.000001, f6=0.99999999, f7=1.000001, f8=0.9999999;
int steps = 1000*1000*1000;
for(i = 0; i< steps; i++){
;
}
print_timing("empty");
for(i = 0; i< steps; i++){
;
f1 = f1 * f5;
f2 = f2 * f6;
f3 = f3 * f7;
f4 = f4 * f8;
}
print_timing("stopped");
return 0;
}

результаты под PS3:

[prog@ps3 sputest]$ gcc test.c
[prog@ps3 sputest]$ ./a.out
0.00 s started
17.00 s empty
47.00 s stopped
[prog@ps3 sputest]$ spu-gcc test.c
[prog@ps3 sputest]$ ./a.out
0.00 s started
16.00 s empty
44.00 s stopped

а вот результаты для Core 2 Duo E4300(1,8 ГГц) озадачили :

>cellcompare.exe
0.00 s started
4.00 s empty
350.00 s stopped

еще сильнее повеселил Xeon 5030 (2,6 ГГц)

>cellcompare.exe
0.00 s started
3.00 s empty
745.00 s stopped

тест идиотский, и так понятно, что процессор, аппаратно реализующий арифметику с плавающей точкой будет быстрее.
теперь нужно придумать какую пользу из этого можно извлечь :)

cell

Previous post Next post
Up