Mercurial > hg > Game > Cerium
changeset 1714:7cb9f93aa51f draft
merge
author | Shohei KOKUBO <e105744@ie.u-ryukyu.ac.jp> |
---|---|
date | Tue, 08 Oct 2013 18:39:30 +0900 |
parents | 4dfcd6d74592 (diff) c8c45e5b4a1c (current diff) |
children | 996d216c837a |
files | example/fft/output.pgm |
diffstat | 7 files changed, 12 insertions(+), 73 deletions(-) [+] |
line wrap: on
line diff
--- a/TaskManager/Cell/CellTaskManagerImpl.cc Tue Oct 08 18:04:49 2013 +0900 +++ b/TaskManager/Cell/CellTaskManagerImpl.cc Tue Oct 08 18:39:30 2013 +0900 @@ -363,7 +363,7 @@ void CellTaskManagerImpl::show_profile() { #ifdef __CERIUM_GPU__ - for (int id = 0; i < gpuNum; id++) { + for (int id = 0; id < gpuNum; id++) { HTaskPtr t = schedTaskManager->create_task(ShowTime, 0, 0, 0, 0); t->set_cpu((CPU_TYPE) (id + GPU_0)); t->spawn(); @@ -378,7 +378,7 @@ void CellTaskManagerImpl::start_profile() { #ifdef __CERIUM_GPU__ - for (int id = 0; i < gpuNum; id++) { + for (int id = 0; id < gpuNum; id++) { HTaskPtr t = schedTaskManager->create_task(StartProfile, 0, 0, 0, 0); t->set_cpu((CPU_TYPE) (id + GPU_0)); t->spawn();
--- a/TaskManager/Gpu/GpuScheduler.cc Tue Oct 08 18:04:49 2013 +0900 +++ b/TaskManager/Gpu/GpuScheduler.cc Tue Oct 08 18:39:30 2013 +0900 @@ -6,6 +6,7 @@ #include "stdio.h" #include "GpuError.h" #include "ListData.h" +#include "SysFunc.h" #include <fcntl.h> #include <sys/stat.h> #include <string.h> @@ -289,7 +290,7 @@ wait_for_event(event,reply,cur); //clFlush(command_queue); // waiting for queued task //clFinish(command_queue); // waiting for queued task - (*connector->end_dmawait_profile)(); + (*connector->end_dmawait_profile)(&connector->global_busy_time); connector->mail_write((memaddr)MY_SPE_STATUS_READY); } // TaskArrayの処理
--- a/TaskManager/kernel/schedule/DmaManager.h Tue Oct 08 18:04:49 2013 +0900 +++ b/TaskManager/kernel/schedule/DmaManager.h Tue Oct 08 18:39:30 2013 +0900 @@ -31,6 +31,7 @@ virtual void dma_wait(uint32 mask) {} virtual void show_dma_wait(Scheduler *s, int cpu) {} virtual void start_profile() {} + virtual void show_profile() {} void (*start_dmawait_profile)(); void (*end_dmawait_profile)(unsigned long long* global_busy_time); unsigned long long global_busy_time;
--- a/example/fft/gpu/gpu_task_init.cc Tue Oct 08 18:04:49 2013 +0900 +++ b/example/fft/gpu/gpu_task_init.cc Tue Oct 08 18:39:30 2013 +0900 @@ -4,10 +4,10 @@ void gpu_task_init(void) { - /* GpuSchedRegister(SPIN_FACT, "gpu/spinFact.cl", "spinFact"); + GpuSchedRegister(SPIN_FACT, "gpu/spinFact.cl", "spinFact"); GpuSchedRegister(BIT_REVERSE, "gpu/bitReverse.cl", "bitReverse"); GpuSchedRegister(NORMALIZATION, "gpu/norm.cl", "norm"); GpuSchedRegister(BUTTERFLY, "gpu/butterfly.cl", "butterfly"); GpuSchedRegister(TRANSPOSE, "gpu/transpose.cl", "transpose"); - GpuSchedRegister(HIGH_PASS_FILTER, "gpu/highPassFilter.cl", "highPassFilter");*/ + GpuSchedRegister(HIGH_PASS_FILTER, "gpu/highPassFilter.cl", "highPassFilter"); }
--- a/example/fft/task_init.cc.orig Tue Oct 08 18:04:49 2013 +0900 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,32 +0,0 @@ -#include "Func.h" -#include "Scheduler.h" -#include "GpuScheduler.h" - -#ifndef __CERIUM_GPU__ -SchedExternTask(spinFact); -SchedExternTask(bitReverse); -SchedExternTask(norm); -SchedExternTask(butterfly); -SchedExternTask(transpose); -SchedExternTask(highPassFilter); -#endif // not __CERIUM_GPU__ - -void -task_init(void) -{ -#ifdef __CERIUM_GPU__ - GpuSchedRegister(SPIN_FACT, "gpu/fft.cl", "spinFact"); - GpuSchedRegister(BIT_REVERSE, "gpu/fft.cl", "bitReverse"); - GpuSchedRegister(NORMALIZATION, "gpu/fft.cl", "norm"); - GpuSchedRegister(BUTTERFLY, "gpu/fft.cl", "butterfly"); - GpuSchedRegister(TRANSEPOSE, "gpu/fft.cl", "transpose"); - GpuSchedRegister(HIGH_PASS_FILTER, "gpu/fft.cl", "highPassFilter"); -#else - SchedRegisterTask(SPIN_FACT,spinFact); - SchedRegisterTask(NORMALIZATION, norm); - SchedRegisterTask(BIT_REVERSE, bitReverse); - SchedRegisterTask(BUTTERFLY, butterfly); - SchedRegisterTask(TRANSEPOSE, transpose); - SchedRegisterTask(HIGH_PASS_FILTER, highPassFilter); -#endif -}
--- a/example/multiply/gpu/gpu_task_init.cc Tue Oct 08 18:04:49 2013 +0900 +++ b/example/multiply/gpu/gpu_task_init.cc Tue Oct 08 18:39:30 2013 +0900 @@ -12,5 +12,5 @@ void gpu_task_init(void) { - //GpuSchedRegister(MULTIPLY_TASK, "gpu/Multi.cl","multi"); + GpuSchedRegister(MULTIPLY_TASK, "gpu/Multi.cl","multi"); }
--- a/example/regex_mas/main.cc Tue Oct 08 18:04:49 2013 +0900 +++ b/example/regex_mas/main.cc Tue Oct 08 18:39:30 2013 +0900 @@ -57,12 +57,10 @@ static st_mmap_t -my_mmap(char *filename) +my_read(TaskManager *manager,char *filename) { - /*マッピングだよ!*/ int fd = -1; - int map = MAP_PRIVATE; st_mmap_t st_mmap; struct stat sb; @@ -76,39 +74,10 @@ /*sizeをページングサイズの倍数にあわせる*/ st_mmap.size = fix_byte(sb.st_size,4096); - - st_mmap.file_mmap = (char*)mmap(NULL,st_mmap.size,PROT_READ,map,fd,(off_t)0); - if (st_mmap.file_mmap == (caddr_t)-1) { - fprintf(stderr,"Can't mmap file\n"); - perror(NULL); - exit(0); - } - - return st_mmap; - -} + st_mmap.file_mmap = (char*)manager->allocate(st_mmap.size); -static st_mmap_t -my_fread(TaskManager *manager,char *filename) -{ - /*マッピングだよ!*/ - FILE *fd; - st_mmap_t st_mmap; - struct stat sb; + read(fd,st_mmap.file_mmap,st_mmap.size); - if ((fd=fopen(filename,"r"))==NULL) { - fprintf(stderr,"can't open %s\n",filename); - } - - if (fstat(fileno(fd),&sb)) { - fprintf(stderr,"can't fstat %s\n",filename); - } - - /*sizeをページングサイズの倍数にあわせる*/ - st_mmap.size = fix_byte(sb.st_size,4096); - - st_mmap.file_mmap = (char*)manager->allocate(st_mmap.size); - fread(st_mmap.file_mmap,st_mmap.size,1,fd); if (st_mmap.file_mmap == (caddr_t)-1) { fprintf(stderr,"Can't mmap file\n"); perror(NULL); @@ -285,7 +254,7 @@ st_mmap_t st_mmap; //st_mmap = my_mmap(filename); - st_mmap = my_fread(manager,filename); + st_mmap = my_read(manager,filename); WordCount *w = (WordCount*)manager->allocate(sizeof(WordCount)); // bzero(w,sizeof(WordCount));