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));