diff TaskManager/Cuda/CudaScheduler.h @ 1924:14f9fc88872c draft

fix
author Shohei KOKUBO <e105744@ie.u-ryukyu.ac.jp>
date Thu, 30 Jan 2014 16:22:51 +0900
parents e801016bd47c
children cd5bbd8ec5d6
line wrap: on
line diff
--- a/TaskManager/Cuda/CudaScheduler.h	Wed Jan 29 20:32:24 2014 +0900
+++ b/TaskManager/Cuda/CudaScheduler.h	Thu Jan 30 16:22:51 2014 +0900
@@ -16,23 +16,22 @@
  public:
     typedef struct cudabuffer {
         int allcate_size;
-        int size;
-        CUdeviceptr* buf;
+        int in_size;
+        int out_size;
+        CUdeviceptr* memin;
+        CUdeviceptr* memout;
         CUevent* event;
-        CUStream* stream;
-    } CudaBuffer;
-    cudabuffer* CudaBufferPtr;
+        CUstream stream;
+    } CudaBuffer, *CudaBufferPtr;
     CudaScheduler();
     virtual ~CudaScheduler();
     void init_gpu();
     void wait_for_event(CUevent* event, CudaBufferPtr m, TaskListPtr taskList, int cur);
     void run();
-
+    
     // platform platform;
     // platform は OpenCL が複数のメーカーの GPU に対応してるから必要
     // Cuda の場合、NVIDIA だけなので必要ない?
-    // Cuda で CPU 使うとき要るんじゃね?
-    // そもそも CPU 使えたっけ?
     CUdevice device;
     unsigned int ret_num_platforms; // たぶん要らない
     unsigned int ret_num_devices;
@@ -40,7 +39,6 @@
     // command_queue command_queue;
     // Cuda には command_queue に相当するものはない
     // Closest approximation would be the CUDA Stream mechanism. らしい...
-    CUstream stream;
     int ret;
     memaddr reply;
     // cl_kernel に相当
@@ -48,8 +46,7 @@
     // とりあえず、kernel で
     CUfunction kernel[2];
     CUevent kernel_event[2];
-    CudaBuffer memin[2];
-    CudaBuffer memout[2];
+    CudaBuffer* cudabuffer;
     HTask::htask_flag[2];
     
  privete: