PPU Code #include #include #include #include #include #include "common.h" #include #include #include #include #include #include ¡­ void *ppu_pthread_function(void *arg) { spe_context_ptr_t ctx; unsigned int entry = SPE_DEFAULT_ENTRY; ctx = *((spe_context_ptr_t *)arg); if (spe_context_run(ctx, &entry, 0, NULL, NULL, NULL) < 0) { perror ("Failed running context"); exit (1); } pthread_exit(NULL); } int main() { float *A, *B, *C; struct tms tbuf; int gtime; double elapsed_time; A = (float *)malloc_align(MATRIX_MEMSIZE, 7); B = (float *)malloc_align(MATRIX_MEMSIZE, 7); C = (float *)malloc_align(MATRIX_MEMSIZE, 7); ¡­ int i, spu_threads; spe_context_ptr_t ctxs[MAX_SPU_THREADS]; pthread_t threads[MAX_SPU_THREADS]; // Determine the number of SPE threads to create. spu_threads = spe_cpu_info_get(SPE_COUNT_USABLE_SPES, -1); if (spu_threads > MAX_SPU_THREADS) spu_threads = MAX_SPU_THREADS; gtime = times(&tbuf); // Creat several SPE-threads for(i=0; i